diff --git a/Telegram/BUILD b/Telegram/BUILD index 5c375fe768..166d2c6f6e 100644 --- a/Telegram/BUILD +++ b/Telegram/BUILD @@ -1692,6 +1692,8 @@ plist_fragment( UIAppFonts SFCompactRounded-Semibold.otf + AremacFS-Regular.otf + AremacFS-Semibold.otf UIBackgroundModes diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index 1192cce349..214e01026c 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -6571,3 +6571,8 @@ Sorry for the inconvenience."; "TwoFactorRemember.Done.Title" = "Perfect!"; "TwoFactorRemember.Done.Text" = "You still remember your password."; "TwoFactorRemember.Done.Action" = "Back to Settings"; + +"VoiceChat.VideoPreviewFrontCamera" = "Front Camera"; +"VoiceChat.VideoPreviewBackCamera" = "Back Camera"; +"VoiceChat.VideoPreviewContinue" = "Continue"; +"VoiceChat.VideoPreviewShareScreenInfo" = "Everything on your screen, including notifications, will be shared."; diff --git a/submodules/LegacyComponents/LegacyImages.xcassets/Camera/Cancel.imageset/Contents.json b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/Cancel.imageset/Contents.json new file mode 100644 index 0000000000..1e9abf3aa5 --- /dev/null +++ b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/Cancel.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "ic_cam_close.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/LegacyComponents/LegacyImages.xcassets/Camera/Cancel.imageset/ic_cam_close.pdf b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/Cancel.imageset/ic_cam_close.pdf new file mode 100644 index 0000000000..e6a89ea929 Binary files /dev/null and b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/Cancel.imageset/ic_cam_close.pdf differ diff --git a/submodules/LegacyComponents/LegacyImages.xcassets/Camera/Contents.json b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/Contents.json new file mode 100644 index 0000000000..6e965652df --- /dev/null +++ b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/Contents.json @@ -0,0 +1,9 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "provides-namespace" : true + } +} diff --git a/submodules/LegacyComponents/LegacyImages.xcassets/Camera/FlashOff.imageset/Contents.json b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/FlashOff.imageset/Contents.json new file mode 100644 index 0000000000..3d7da8444b --- /dev/null +++ b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/FlashOff.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "ic_cam_flashoff (1).pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/LegacyComponents/LegacyImages.xcassets/Camera/FlashOff.imageset/ic_cam_flashoff (1).pdf b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/FlashOff.imageset/ic_cam_flashoff (1).pdf new file mode 100644 index 0000000000..883bcd2938 Binary files /dev/null and b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/FlashOff.imageset/ic_cam_flashoff (1).pdf differ diff --git a/submodules/LegacyComponents/LegacyImages.xcassets/Camera/FlashOn.imageset/Contents.json b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/FlashOn.imageset/Contents.json new file mode 100644 index 0000000000..8aacf1b5de --- /dev/null +++ b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/FlashOn.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "ic_cam_flashon.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/LegacyComponents/LegacyImages.xcassets/Camera/FlashOn.imageset/ic_cam_flashon.pdf b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/FlashOn.imageset/ic_cam_flashon.pdf new file mode 100644 index 0000000000..25896a3a6e Binary files /dev/null and b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/FlashOn.imageset/ic_cam_flashon.pdf differ diff --git a/submodules/LegacyComponents/LegacyImages.xcassets/Camera/Flip.imageset/Contents.json b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/Flip.imageset/Contents.json new file mode 100644 index 0000000000..e6f1b93d3e --- /dev/null +++ b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/Flip.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "ic_cam_flip.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/LegacyComponents/LegacyImages.xcassets/Camera/Flip.imageset/ic_cam_flip.pdf b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/Flip.imageset/ic_cam_flip.pdf new file mode 100644 index 0000000000..5084218a29 Binary files /dev/null and b/submodules/LegacyComponents/LegacyImages.xcassets/Camera/Flip.imageset/ic_cam_flip.pdf differ diff --git a/submodules/LegacyComponents/LegacyImages.xcassets/Contents.json b/submodules/LegacyComponents/LegacyImages.xcassets/Contents.json index da4a164c91..73c00596a7 100644 --- a/submodules/LegacyComponents/LegacyImages.xcassets/Contents.json +++ b/submodules/LegacyComponents/LegacyImages.xcassets/Contents.json @@ -1,6 +1,6 @@ { "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/LegacyComponents.h b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/LegacyComponents.h index 92120ba582..df30d859e9 100644 --- a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/LegacyComponents.h +++ b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/LegacyComponents.h @@ -80,7 +80,6 @@ #import #import #import -#import #import #import #import diff --git a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGCamera.h b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGCamera.h index 23ac166b8d..b6465ca803 100644 --- a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGCamera.h +++ b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGCamera.h @@ -26,7 +26,8 @@ typedef enum PGCameraModeVideo, PGCameraModeSquarePhoto, PGCameraModeSquareVideo, - PGCameraModeSquareSwing + PGCameraModeSquareSwing, + PGCameraModePhotoScan } PGCameraMode; typedef enum @@ -132,4 +133,7 @@ typedef enum + (PGCameraAuthorizationStatus)cameraAuthorizationStatus; + (PGMicrophoneAuthorizationStatus)microphoneAuthorizationStatus; ++ (bool)isPhotoCameraMode:(PGCameraMode)mode; ++ (bool)isVideoCameraMode:(PGCameraMode)mode; + @end diff --git a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGCameraCaptureSession.h b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGCameraCaptureSession.h index 92c90b3592..9269470d96 100644 --- a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGCameraCaptureSession.h +++ b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGCameraCaptureSession.h @@ -3,6 +3,7 @@ #import @class PGCameraMovieWriter; +@class PGRectangleDetector; @interface PGCameraCaptureSession : AVCaptureSession @@ -12,6 +13,7 @@ @property (nonatomic, readonly) AVCaptureAudioDataOutput *audioOutput; @property (nonatomic, readonly) AVCaptureMetadataOutput *metadataOutput; @property (nonatomic, readonly) PGCameraMovieWriter *movieWriter; +@property (nonatomic, readonly) PGRectangleDetector *rectangleDetector; @property (nonatomic, assign) bool alwaysSetFlash; @property (nonatomic, assign) PGCameraMode currentMode; diff --git a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGCameraShotMetadata.h b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGCameraShotMetadata.h index 59a07a7051..7243b67cf3 100644 --- a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGCameraShotMetadata.h +++ b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGCameraShotMetadata.h @@ -1,9 +1,12 @@ #import #import +@class PGRectangle; + @interface PGCameraShotMetadata : NSObject @property (nonatomic, assign) CGFloat deviceAngle; +@property (nonatomic, strong) PGRectangle *rectangle; + (CGFloat)relativeDeviceAngleFromAngle:(CGFloat)angle orientation:(UIInterfaceOrientation)orientation; diff --git a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGPhotoEditorValues.h b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGPhotoEditorValues.h index 3e01cb40f6..12a0296d78 100644 --- a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGPhotoEditorValues.h +++ b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/PGPhotoEditorValues.h @@ -1,9 +1,16 @@ #import @class TGPaintingData; +@class PGRectangle; @interface PGPhotoEditorValues : NSObject +@property (nonatomic, readonly) PGRectangle *cropRectangle; +@property (nonatomic, readonly) CGSize cropSize; +@property (nonatomic, readonly) bool enhanceDocument; + ++ (instancetype)editorValuesWithOriginalSize:(CGSize)originalSize cropRectangle:(PGRectangle *)cropRectangle cropOrientation:(UIImageOrientation)cropOrientation cropSize:(CGSize)cropSize enhanceDocument:(bool)enhanceDocument paintingData:(TGPaintingData *)paintingData; + + (instancetype)editorValuesWithOriginalSize:(CGSize)originalSize cropRect:(CGRect)cropRect cropRotation:(CGFloat)cropRotation cropOrientation:(UIImageOrientation)cropOrientation cropLockedAspectRatio:(CGFloat)cropLockedAspectRatio cropMirrored:(bool)cropMirrored toolValues:(NSDictionary *)toolValues paintingData:(TGPaintingData *)paintingData sendAsGif:(bool)sendAsGif; @end diff --git a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraCapturedPhoto.h b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraCapturedPhoto.h index 251ff85651..0eb043274a 100644 --- a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraCapturedPhoto.h +++ b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraCapturedPhoto.h @@ -3,15 +3,19 @@ #import @class PGCameraShotMetadata; +@class PGRectangle; @interface TGCameraCapturedPhoto : NSObject @property (nonatomic, readonly) NSURL *url; @property (nonatomic, readonly) PGCameraShotMetadata *metadata; +@property (nonatomic, readonly) PGRectangle *rectangle; - (instancetype)initWithImage:(UIImage *)image metadata:(PGCameraShotMetadata *)metadata; - (instancetype)initWithExistingImage:(UIImage *)image; +- (instancetype)initWithImage:(UIImage *)image rectangle:(PGRectangle *)rectangle; + - (void)_cleanUp; @end diff --git a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraFlipButton.h b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraFlipButton.h index f774b427b9..6cc971ee6b 100644 --- a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraFlipButton.h +++ b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraFlipButton.h @@ -2,7 +2,12 @@ @interface TGCameraFlipButton : TGModernButton -- (instancetype)initWithFrame:(CGRect)frame large:(bool)large; +- (void)setHidden:(bool)hidden animated:(bool)animated; + +@end + +@interface TGCameraCancelButton : TGModernButton + - (void)setHidden:(bool)hidden animated:(bool)animated; @end diff --git a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraInterfaceAssets.h b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraInterfaceAssets.h index ab8c131569..727ade0b88 100644 --- a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraInterfaceAssets.h +++ b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraInterfaceAssets.h @@ -10,7 +10,9 @@ + (UIColor *)panelBackgroundColor; + (UIColor *)transparentPanelBackgroundColor; + (UIColor *)transparentOverlayBackgroundColor; ++ (UIColor *)buttonColor; -+ (UIFont *)normalFontOfSize:(CGFloat)size; ++ (UIFont *)regularFontOfSize:(CGFloat)size; ++ (UIFont *)boldFontOfSize:(CGFloat)size; @end diff --git a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraMainView.h b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraMainView.h index ab2a225b1e..c116134d7d 100644 --- a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraMainView.h +++ b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraMainView.h @@ -10,7 +10,7 @@ @class TGCameraFlipButton; @class TGCameraTimeCodeView; @class TGCameraZoomView; -@class TGCameraSegmentsView; +@class TGCameraToastView; @class TGMediaPickerPhotoCounterButton; @class TGMediaPickerPhotoStripView; @class TGMediaPickerGallerySelectedItemsModel; @@ -26,6 +26,8 @@ TGCameraFlipButton *_flipButton; TGCameraTimeCodeView *_timecodeView; + TGCameraToastView *_toastView; + TGMediaPickerPhotoCounterButton *_photoCounterButton; TGMediaPickerPhotoStripView *_selectedPhotosView; @@ -51,8 +53,6 @@ @property (nonatomic, copy) void(^resultPressed)(NSInteger index); @property (nonatomic, copy) void(^itemRemoved)(NSInteger index); -@property (nonatomic, copy) void (^deleteSegmentButtonPressed)(void); - @property (nonatomic, copy) NSTimeInterval(^requestedVideoRecordingDuration)(void); @property (nonatomic, assign) CGRect previewViewFrame; @@ -64,6 +64,8 @@ - (void)updateForCameraModeChangeWithPreviousMode:(PGCameraMode)previousMode; - (void)updateForCameraModeChangeAfterResize; +- (void)setToastMessage:(NSString *)message animated:(bool)animated; + - (void)setFlashMode:(PGCameraFlashMode)mode; - (void)setFlashActive:(bool)active; - (void)setFlashUnavailable:(bool)unavailable; diff --git a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraSegmentsView.h b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraSegmentsView.h deleted file mode 100644 index b2f0c2ba73..0000000000 --- a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGCameraSegmentsView.h +++ /dev/null @@ -1,20 +0,0 @@ -#import - -@interface TGCameraSegmentsView : UIView - -@property (nonatomic, copy) void (^deletePressed)(void); - -- (void)setSegments:(NSArray *)segments; - -- (void)startCurrentSegment; -- (void)setCurrentSegment:(CGFloat)length; -- (void)commitCurrentSegmentWithCompletion:(void (^)(void))completion; - -- (void)highlightLastSegment; -- (void)removeLastSegment; - -- (void)setHidden:(bool)hidden animated:(bool)animated delay:(NSTimeInterval)delay; - -- (void)setDeleteButtonHidden:(bool)hidden animated:(bool)animated; - -@end diff --git a/submodules/LegacyComponents/Sources/PGCamera.m b/submodules/LegacyComponents/Sources/PGCamera.m index 6431e15773..d8088a1124 100644 --- a/submodules/LegacyComponents/Sources/PGCamera.m +++ b/submodules/LegacyComponents/Sources/PGCamera.m @@ -843,4 +843,14 @@ NSString *const PGCameraAdjustingFocusKey = @"adjustingFocus"; } } ++ (bool)isPhotoCameraMode:(PGCameraMode)mode +{ + return mode == PGCameraModePhoto || mode == PGCameraModeSquarePhoto || mode == PGCameraModePhotoScan; +} + ++ (bool)isVideoCameraMode:(PGCameraMode)mode +{ + return mode == PGCameraModeVideo || mode == PGCameraModeSquareVideo; +} + @end diff --git a/submodules/LegacyComponents/Sources/PGCameraCaptureSession.m b/submodules/LegacyComponents/Sources/PGCameraCaptureSession.m index e651da1ae3..ade29d5063 100644 --- a/submodules/LegacyComponents/Sources/PGCameraCaptureSession.m +++ b/submodules/LegacyComponents/Sources/PGCameraCaptureSession.m @@ -1,5 +1,6 @@ #import "PGCameraCaptureSession.h" #import "PGCameraMovieWriter.h" +#import "PGRectangleDetector.h" #import #import @@ -261,10 +262,15 @@ const NSInteger PGCameraFrameRate = 30; { case PGCameraModePhoto: case PGCameraModeSquarePhoto: + case PGCameraModePhotoScan: { [self _removeAudioInputEndAudioSession:true]; self.sessionPreset = AVCaptureSessionPresetPhoto; [self setFrameRate:0 forDevice:_videoDevice]; + + if (mode == PGCameraModePhotoScan) { + [self setCurrentCameraPosition:PGCameraPositionRear]; + } } break; @@ -287,6 +293,14 @@ const NSInteger PGCameraFrameRate = 30; [self _enableVideoStabilization]; [self commitConfiguration]; + + if (mode == PGCameraModePhotoScan) { + if (_rectangleDetector == nil) { + _rectangleDetector = [[PGRectangleDetector alloc] init]; + } + } else { + _rectangleDetector = nil; + } } - (void)switchToBestVideoFormatForDevice:(AVCaptureDevice *)device @@ -630,9 +644,11 @@ const NSInteger PGCameraFrameRate = 30; - (void)setCurrentCameraPosition:(PGCameraPosition)position { - NSError *error; - AVCaptureDevice *deviceForTargetPosition = [PGCameraCaptureSession _deviceWithCameraPosition:position]; + if ([_videoDevice isEqual:deviceForTargetPosition]) + return; + + NSError *error; AVCaptureDeviceInput *newVideoInput = [[AVCaptureDeviceInput alloc] initWithDevice:deviceForTargetPosition error:&error]; if (newVideoInput != nil) @@ -924,6 +940,11 @@ static UIImageOrientation TGSnapshotOrientationForVideoOrientation(bool mirrored if (_movieWriter.isRecording) [_movieWriter _processSampleBuffer:sampleBuffer]; + if (_rectangleDetector != nil) { + CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer); + [_rectangleDetector detectRectangle:imageBuffer]; + } + if (!_captureNextFrame || captureOutput != _videoOutput) return; diff --git a/submodules/LegacyComponents/Sources/PGPhotoEditorValues.m b/submodules/LegacyComponents/Sources/PGPhotoEditorValues.m index ffb2aa828c..3257dd4b08 100644 --- a/submodules/LegacyComponents/Sources/PGPhotoEditorValues.m +++ b/submodules/LegacyComponents/Sources/PGPhotoEditorValues.m @@ -15,6 +15,20 @@ @synthesize sendAsGif = _sendAsGif; @synthesize toolValues = _toolValues; ++ (instancetype)editorValuesWithOriginalSize:(CGSize)originalSize cropRectangle:(PGRectangle *)cropRectangle cropOrientation:(UIImageOrientation)cropOrientation cropSize:(CGSize)cropSize enhanceDocument:(bool)enhanceDocument paintingData:(TGPaintingData *)paintingData +{ + PGPhotoEditorValues *values = [[PGPhotoEditorValues alloc] init]; + values->_originalSize = originalSize; + values->_cropRect = CGRectMake(0.0, 0.0, cropSize.width, cropSize.height); + values->_cropSize = cropSize; + values->_cropRectangle = cropRectangle; + values->_cropOrientation = cropOrientation; + values->_enhanceDocument = enhanceDocument; + values->_paintingData = paintingData; + return values; +} + + + (instancetype)editorValuesWithOriginalSize:(CGSize)originalSize cropRect:(CGRect)cropRect cropRotation:(CGFloat)cropRotation cropOrientation:(UIImageOrientation)cropOrientation cropLockedAspectRatio:(CGFloat)cropLockedAspectRatio cropMirrored:(bool)cropMirrored toolValues:(NSDictionary *)toolValues paintingData:(TGPaintingData *)paintingData sendAsGif:(bool)sendAsGif { PGPhotoEditorValues *values = [[PGPhotoEditorValues alloc] init]; @@ -27,7 +41,6 @@ values->_toolValues = toolValues; values->_paintingData = paintingData; values->_sendAsGif = sendAsGif; - return values; } @@ -38,6 +51,9 @@ - (bool)cropAppliedForAvatar:(bool)forAvatar { + if (_cropRectangle != nil) + return true; + CGRect defaultCropRect = CGRectMake(0, 0, _originalSize.width, _originalSize.height); if (forAvatar) { @@ -65,6 +81,9 @@ - (bool)toolsApplied { + if (_enhanceDocument) + return true; + if (self.toolValues.count > 0) return true; @@ -112,6 +131,9 @@ if (self.paintingData != values.paintingData && ![self.paintingData isEqual:values.paintingData]) return false; + if (self.enhanceDocument != values.enhanceDocument) + return false; + return true; } diff --git a/submodules/LegacyComponents/Sources/PGRectangleDetector.h b/submodules/LegacyComponents/Sources/PGRectangleDetector.h new file mode 100644 index 0000000000..1c68d5938f --- /dev/null +++ b/submodules/LegacyComponents/Sources/PGRectangleDetector.h @@ -0,0 +1,24 @@ +#import + +@interface PGRectangle : NSObject + +@property (nonatomic, readonly) CGPoint topLeft; +@property (nonatomic, readonly) CGPoint topRight; +@property (nonatomic, readonly) CGPoint bottomLeft; +@property (nonatomic, readonly) CGPoint bottomRight; + +- (PGRectangle *)transform:(CGAffineTransform)transform; +- (PGRectangle *)rotate90; +- (PGRectangle *)sort; +- (PGRectangle *)cartesian:(CGFloat)height; + +@end + +@interface PGRectangleDetector : NSObject + +@property (nonatomic, copy) void(^update)(bool, PGRectangle *); + +- (void)detectRectangle:(CVPixelBufferRef)pixelBuffer; + +@end + diff --git a/submodules/LegacyComponents/Sources/PGRectangleDetector.m b/submodules/LegacyComponents/Sources/PGRectangleDetector.m new file mode 100644 index 0000000000..aa41ae4b90 --- /dev/null +++ b/submodules/LegacyComponents/Sources/PGRectangleDetector.m @@ -0,0 +1,362 @@ +#import "PGRectangleDetector.h" +#import "LegacyComponentsInternal.h" + +#import +#import + +#import + +@interface PGRectangle () + +- (instancetype)initWithRectangleFeature:(CIRectangleFeature *)rectangleFeature; +- (instancetype)initWithRectangleObservation:(VNRectangleObservation *)rectangleObservation API_AVAILABLE(ios(11.0)); + +- (CGFloat)size; + +@end + +@interface PGRectangleEntry : NSObject + +@property (nonatomic, readonly) PGRectangle *rectangle; +@property (nonatomic, assign) NSInteger rate; + +- (instancetype)initWithRectangle:(PGRectangle *)rectangle; + +@end + +@implementation PGRectangleEntry + +- (instancetype)initWithRectangle:(PGRectangle *)rectangle +{ + self = [super init]; + if (self != nil) + { + _rectangle = rectangle; + _rate = 0; + } + return self; +} + +@end + +@implementation PGRectangle + +- (instancetype)initWithRectangleFeature:(CIRectangleFeature *)rectangleFeature +{ + self = [super init]; + if (self != nil) { + _topLeft = rectangleFeature.topLeft; + _topRight = rectangleFeature.topRight; + _bottomLeft = rectangleFeature.bottomLeft; + _bottomRight = rectangleFeature.bottomRight; + } + return self; +} + +- (instancetype)initWithRectangleObservation:(VNRectangleObservation *)rectangleObservation API_AVAILABLE(ios(11.0)) +{ + self = [super init]; + if (self != nil) { + _topLeft = rectangleObservation.topLeft; + _topRight = rectangleObservation.topRight; + _bottomLeft = rectangleObservation.bottomLeft; + _bottomRight = rectangleObservation.bottomRight; + } + return self; +} + +- (PGRectangle *)transform:(CGAffineTransform)transform +{ + PGRectangle *rectangle = [[PGRectangle alloc] init]; + rectangle->_topLeft = CGPointApplyAffineTransform(_topLeft, transform); + rectangle->_topRight = CGPointApplyAffineTransform(_topRight, transform); + rectangle->_bottomLeft = CGPointApplyAffineTransform(_bottomLeft, transform); + rectangle->_bottomRight = CGPointApplyAffineTransform(_bottomRight, transform); + return rectangle; +} + +- (PGRectangle *)rotate90 +{ + PGRectangle *rectangle = [[PGRectangle alloc] init]; + rectangle->_topLeft = CGPointMake(_topLeft.y, _topLeft.x); + rectangle->_topRight = CGPointMake(_topRight.y, _topRight.x); + rectangle->_bottomLeft = CGPointMake(_bottomLeft.y, _bottomLeft.x); + rectangle->_bottomRight = CGPointMake(_bottomRight.y, _bottomRight.x); + return rectangle; +} + +- (PGRectangle *)sort +{ + NSArray *points = @[ [NSValue valueWithCGPoint:_topLeft], [NSValue valueWithCGPoint:_topRight], [NSValue valueWithCGPoint:_bottomLeft], [NSValue valueWithCGPoint:_bottomRight] ]; + + NSArray *ySorted = [points sortedArrayUsingComparator:^NSComparisonResult(id firstObject, id secondObject) { + CGPoint firstPoint = [firstObject CGPointValue]; + CGPoint secondPoint = [secondObject CGPointValue]; + if (firstPoint.y < secondPoint.y) { + return NSOrderedAscending; + } else { + return NSOrderedDescending; + } + }]; + + NSArray *top = [ySorted subarrayWithRange:NSMakeRange(0, 2)]; + NSArray *bottom = [ySorted subarrayWithRange:NSMakeRange(2, 2)]; + + NSArray *xSortedTop = [top sortedArrayUsingComparator:^NSComparisonResult(id firstObject, id secondObject) { + CGPoint firstPoint = [firstObject CGPointValue]; + CGPoint secondPoint = [secondObject CGPointValue]; + if (firstPoint.x < secondPoint.x) { + return NSOrderedAscending; + } else { + return NSOrderedDescending; + } + }]; + + NSArray *xSortedBottom = [bottom sortedArrayUsingComparator:^NSComparisonResult(id firstObject, id secondObject) { + CGPoint firstPoint = [firstObject CGPointValue]; + CGPoint secondPoint = [secondObject CGPointValue]; + if (firstPoint.x < secondPoint.x) { + return NSOrderedAscending; + } else { + return NSOrderedDescending; + } + }]; + + PGRectangle *rectangle = [[PGRectangle alloc] init]; + rectangle->_topLeft = [xSortedTop[0] CGPointValue]; + rectangle->_topRight = [xSortedTop[1] CGPointValue]; + rectangle->_bottomLeft = [xSortedBottom[0] CGPointValue]; + rectangle->_bottomRight = [xSortedBottom[1] CGPointValue]; + return rectangle; +} + +- (PGRectangle *)cartesian:(CGFloat)height +{ + PGRectangle *rectangle = [[PGRectangle alloc] init]; + rectangle->_topLeft = CGPointMake(_topLeft.x, height - _topLeft.y); + rectangle->_topRight = CGPointMake(_topRight.x, height - _topRight.y); + rectangle->_bottomLeft = CGPointMake(_bottomLeft.x, height - _bottomLeft.y); + rectangle->_bottomRight = CGPointMake(_bottomRight.x, height - _bottomRight.y); + return rectangle; +} + +- (PGRectangle *)normalize:(CGSize)size +{ + return [self transform:CGAffineTransformMakeScale(1.0 / size.width, 1.0 / size.height)]; +} + ++ (CGFloat)distance:(CGPoint)a to:(CGPoint)b +{ + return hypot(a.x - b.x, a.y - b.y); +} + +- (CGFloat)size +{ + CGFloat sum = 0.0f; + sum += [PGRectangle distance:self.topLeft to:self.topRight]; + sum += [PGRectangle distance:self.topRight to:self.bottomRight]; + sum += [PGRectangle distance:self.bottomRight to:self.bottomLeft]; + sum += [PGRectangle distance:self.bottomLeft to:self.topLeft]; + return sum; +} + ++ (CGRect)pointSquare:(CGPoint)point size:(CGFloat)size +{ + return CGRectMake(point.x - size / 2.0, point.y - size / 2.0, size, size); +} + +- (bool)matches:(PGRectangle *)other threshold:(CGFloat)threshold +{ + if (!CGRectContainsPoint([PGRectangle pointSquare:self.topLeft size:threshold], other.topLeft)) + return false; + + if (!CGRectContainsPoint([PGRectangle pointSquare:self.topRight size:threshold], other.topRight)) + return false; + + if (!CGRectContainsPoint([PGRectangle pointSquare:self.bottomLeft size:threshold], other.bottomLeft)) + return false; + + if (!CGRectContainsPoint([PGRectangle pointSquare:self.bottomRight size:threshold], other.bottomRight)) + return false; + + return true; +} + +@end + +@implementation PGRectangleDetector +{ + SQueue *_queue; + CIDetector *_detector; + + bool _disabled; + + CGSize _imageSize; + NSInteger _notFoundCount; + NSMutableArray *_rectangles; + + PGRectangle *_detectedRectangle; + NSInteger _autoscanCount; +} + +- (instancetype)init +{ + self = [super init]; + if (self != nil) { + _queue = [[SQueue alloc] init]; + _rectangles = [[NSMutableArray alloc] init]; + } + return self; +} + +- (void)updateEntries +{ + for (PGRectangleEntry *entry in _rectangles) { + entry.rate = 1; + } + + for (NSInteger i = 0; i < _rectangles.count; i++) { + for (NSInteger j = 0; i < _rectangles.count; i++) { + if (j > i && [[_rectangles[i] rectangle] matches:_rectangles[j] threshold:40.0]) { + ((PGRectangleEntry *)_rectangles[i]).rate += 1; + ((PGRectangleEntry *)_rectangles[j]).rate += 1; + } + } + } +} + +- (void)addRectangle:(PGRectangle *)rectangle +{ + if (_disabled) + return; + + PGRectangleEntry *entry = [[PGRectangleEntry alloc] initWithRectangle:rectangle]; + [_rectangles addObject:entry]; + + if (_rectangles.count < 3) + return; + + if (_rectangles.count > 8) + [_rectangles removeObjectAtIndex:0]; + + [self updateEntries]; + + __block PGRectangleEntry *best = nil; + [_rectangles enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(PGRectangleEntry *rectangle, NSUInteger idx, BOOL * stop) { + if (best == nil) { + best = rectangle; + return; + } + + if (rectangle.rate > best.rate) { + best = rectangle; + } else if (rectangle.rate == best.rate) { + if (_detectedRectangle != nil) { + if ([rectangle.rectangle matches:_detectedRectangle threshold:40.0]) { + best = rectangle; + } + } + } + }]; + + if (_detectedRectangle != nil && [best.rectangle matches:_detectedRectangle threshold:24.0f]) { + _autoscanCount += 1; + _detectedRectangle = best.rectangle; + if (_autoscanCount > 20) { + _autoscanCount = 0; + self.update(true, [_detectedRectangle normalize:_imageSize]); + + _detectedRectangle = nil; + + _disabled = true; + TGDispatchAfter(2.0, _queue._dispatch_queue, ^{ + _disabled = false; + }); + } + } else { + _autoscanCount = 0; + _detectedRectangle = best.rectangle; + self.update(false, [_detectedRectangle normalize:_imageSize]); + } +} + +- (void)processRectangle:(PGRectangle *)rectangle imageSize:(CGSize)imageSize +{ + _imageSize = imageSize; + + if (rectangle != nil) { + _notFoundCount = 0; + + [self addRectangle:rectangle]; + } else { + _notFoundCount += 1; + + if (_notFoundCount > 3) { + _autoscanCount = 0; + _detectedRectangle = nil; + + self.update(false, nil); + } + } +} + +- (void)detectRectangle:(CVPixelBufferRef)pixelBuffer +{ + CGSize size = CGSizeMake(CVPixelBufferGetWidth(pixelBuffer), CVPixelBufferGetHeight(pixelBuffer)); + if (@available(iOS 11.0, *)) { + CVPixelBufferRetain(pixelBuffer); + NSError *error; + VNImageRequestHandler *handler = [[VNImageRequestHandler alloc] initWithCVPixelBuffer:pixelBuffer options:@{}]; + VNDetectRectanglesRequest *request = [[VNDetectRectanglesRequest alloc] initWithCompletionHandler:^(VNRequest * _Nonnull request, NSError * _Nullable error) { + CVPixelBufferRelease(pixelBuffer); + + [_queue dispatch:^{ + if (error == nil && request.results.count > 0) { + PGRectangle *largestRectangle = nil; + for (VNRectangleObservation *result in request.results) { + if (![result isKindOfClass:[VNRectangleObservation class]]) + continue; + + PGRectangle *rectangle = [[PGRectangle alloc] initWithRectangleObservation:result]; + if (largestRectangle == nil || largestRectangle.size < rectangle.size) { + largestRectangle = rectangle; + } + } + [self processRectangle:[largestRectangle transform:CGAffineTransformMakeScale(size.width, size.height)] imageSize:size]; + } else { + [self processRectangle:nil imageSize:size]; + } + }]; + }]; + request.minimumConfidence = 0.85f; + request.maximumObservations = 15; + request.minimumAspectRatio = 0.33; + request.minimumSize = 0.4; + [handler performRequests:@[request] error:&error]; + } else { + CVPixelBufferRetain(pixelBuffer); + [_queue dispatch:^{ + if (_detector == nil) { + _detector = [CIDetector detectorOfType:CIDetectorTypeRectangle context:[CIContext contextWithOptions:nil] options:@{ CIDetectorAccuracy: CIDetectorAccuracyHigh }]; + } + + CIImage *image = [[CIImage alloc] initWithCVPixelBuffer:pixelBuffer]; + NSArray *results = [_detector featuresInImage:image]; + CVPixelBufferRelease(pixelBuffer); + + PGRectangle *largestRectangle = nil; + for (CIRectangleFeature *result in results) { + if (![result isKindOfClass:[CIRectangleFeature class]]) + continue; + + PGRectangle *rectangle = [[PGRectangle alloc] initWithRectangleFeature:result]; + if (largestRectangle == nil || largestRectangle.size < rectangle.size) { + largestRectangle = rectangle; + } + } + [self processRectangle:largestRectangle imageSize:size]; + }]; + } +} + +@end diff --git a/submodules/LegacyComponents/Sources/TGCameraCapturedPhoto.m b/submodules/LegacyComponents/Sources/TGCameraCapturedPhoto.m index 88cb73db87..445a794977 100644 --- a/submodules/LegacyComponents/Sources/TGCameraCapturedPhoto.m +++ b/submodules/LegacyComponents/Sources/TGCameraCapturedPhoto.m @@ -32,6 +32,23 @@ return self; } +- (instancetype)initWithImage:(UIImage *)image rectangle:(PGRectangle *)rectangle +{ + self = [super init]; + if (self != nil) + { + _identifier = [NSString stringWithFormat:@"%ld", lrand48()]; + _dimensions = CGSizeMake(image.size.width * image.scale, image.size.height * image.scale); + PGCameraShotMetadata *metadata = [[PGCameraShotMetadata alloc] init]; + metadata.rectangle = rectangle; + _metadata = metadata; + _thumbnail = [[SVariable alloc] init]; + + [self _saveToDisk:image]; + } + return self; +} + - (instancetype)initWithExistingImage:(UIImage *)image { self = [super init]; @@ -110,6 +127,11 @@ return [NSTemporaryDirectory() stringByAppendingPathComponent:[[NSString alloc] initWithFormat:@"camphoto_%@.jpg", _identifier]]; } +- (PGRectangle *)rectangle +{ + return _metadata.rectangle; +} + - (NSURL *)url { return [NSURL fileURLWithPath:[self filePath]]; diff --git a/submodules/LegacyComponents/Sources/TGCameraController.m b/submodules/LegacyComponents/Sources/TGCameraController.m index f4c5f28c0e..5ab43a29e8 100644 --- a/submodules/LegacyComponents/Sources/TGCameraController.m +++ b/submodules/LegacyComponents/Sources/TGCameraController.m @@ -17,6 +17,7 @@ #import #import #import "TGCameraFocusCrosshairsControl.h" +#import "TGCameraRectangleView.h" #import #import @@ -50,6 +51,8 @@ #import "TGCameraCapturedVideo.h" #import "PGPhotoEditor.h" +#import "PGRectangleDetector.h" +#import "TGWarpedView.h" #import "TGAnimationUtils.h" @@ -106,9 +109,7 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus TGCameraMainView *_interfaceView; UIView *_overlayView; TGCameraFocusCrosshairsControl *_focusControl; - - TGModernGalleryVideoView *_segmentPreviewView; - bool _previewingSegment; + TGCameraRectangleView *_rectangleView; UISwipeGestureRecognizer *_photoSwipeGestureRecognizer; UISwipeGestureRecognizer *_videoSwipeGestureRecognizer; @@ -281,6 +282,11 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus [_focusControl setInterfaceOrientation:interfaceOrientation animated:false]; [_overlayView addSubview:_focusControl]; + _rectangleView = [[TGCameraRectangleView alloc] initWithFrame:_overlayView.bounds]; + _rectangleView.previewView = _previewView; + _rectangleView.hidden = true; + [_overlayView addSubview:_rectangleView]; + if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { _panGestureRecognizer = [[TGModernGalleryZoomableScrollViewSwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; @@ -360,7 +366,7 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus if (strongSelf == nil) return; - [strongSelf->_camera setCameraMode:mode]; + [strongSelf _updateCameraMode:mode updateInterface:false]; }; _interfaceView.flashModeChanged = ^(PGCameraFlashMode mode) @@ -478,6 +484,25 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus [self _configureCamera]; } +- (void)_updateCameraMode:(PGCameraMode)mode updateInterface:(bool)updateInterface { + [_camera setCameraMode:mode]; + if (updateInterface) + [_interfaceView setCameraMode:mode]; + + _focusControl.hidden = mode == PGCameraModePhotoScan; + _rectangleView.hidden = mode != PGCameraModePhotoScan; + + if (mode == PGCameraModePhotoScan) { + [self _createContextsIfNeeded]; + + if (_items.count == 0) { + [_interfaceView setToastMessage:@"Position the document in view" animated:true]; + } else { + + } + } +} + - (void)_configureCamera { __weak TGCameraController *weakSelf = self; @@ -514,9 +539,11 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus strongSelf.view.userInteractionEnabled = false; PGCameraMode currentMode = strongSelf->_camera.cameraMode; - bool generalModeNotChanged = (mode == PGCameraModePhoto && currentMode == PGCameraModeSquarePhoto) || (mode == PGCameraModeSquarePhoto && currentMode == PGCameraModePhoto) || (mode == PGCameraModeVideo && currentMode == PGCameraModeSquareVideo) || (mode == PGCameraModeSquareVideo && currentMode == PGCameraModeVideo); - - if ((mode == PGCameraModeVideo || mode == PGCameraModeSquareVideo) && !generalModeNotChanged) + bool generalModeNotChanged = [PGCamera isPhotoCameraMode:mode] == [PGCamera isPhotoCameraMode:currentMode]; + if (strongSelf->_camera.captureSession.currentCameraPosition == PGCameraPositionFront && mode == PGCameraModePhotoScan) { + generalModeNotChanged = false; + } + if ([PGCamera isVideoCameraMode:mode] && !generalModeNotChanged) { [[LegacyComponentsGlobals provider] pauseMusicPlayback]; } @@ -570,6 +597,21 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus [[[LegacyComponentsGlobals provider] accessChecker] checkMicrophoneAuthorizationStatusForIntent:TGMicrophoneAccessIntentVideo alertDismissCompletion:nil]; strongSelf->_shownMicrophoneAlert = true; } + + if (strongSelf->_camera.cameraMode == PGCameraModePhotoScan) { + strongSelf->_camera.captureSession.rectangleDetector.update = ^(bool capture, PGRectangle *rectangle) { + __strong TGCameraController *strongSelf = weakSelf; + if (strongSelf == nil) + return; + + TGDispatchOnMainThread(^{ + [strongSelf->_rectangleView drawRectangle:rectangle]; + if (capture) { + [strongSelf _makeScan:rectangle]; + } + }); + }; + } } }); }; @@ -874,9 +916,7 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus }]; }; _camera.autoStartVideoRecording = true; - - [_camera setCameraMode:PGCameraModeVideo]; - [_interfaceView setCameraMode:PGCameraModeVideo]; + [self _updateCameraMode:PGCameraModeVideo updateInterface:true]; } else if (_camera.cameraMode == PGCameraModeVideo) { @@ -968,7 +1008,7 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus __weak TGCameraController *weakSelf = self; PGCameraMode cameraMode = _camera.cameraMode; - if (cameraMode == PGCameraModePhoto || cameraMode == PGCameraModeSquarePhoto) + if (cameraMode == PGCameraModePhoto || cameraMode == PGCameraModeSquarePhoto || cameraMode == PGCameraModePhotoScan) { _camera.disabled = true; @@ -987,7 +1027,7 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus _buttonHandler.enabled = false; [_buttonHandler ignoreEventsFor:1.5f andDisable:true]; } - + [_camera takePhotoWithCompletion:^(UIImage *result, PGCameraShotMetadata *metadata) { __strong TGCameraController *strongSelf = weakSelf; @@ -1060,6 +1100,140 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus } } +- (void)_makeScan:(PGRectangle *)rectangle +{ + if (_shutterIsBusy) + return; + + _camera.disabled = true; + _shutterIsBusy = true; + + __weak TGCameraController *weakSelf = self; + [_camera takePhotoWithCompletion:^(UIImage *result, PGCameraShotMetadata *metadata) + { + __strong TGCameraController *strongSelf = weakSelf; + if (strongSelf == nil) + return; + + TGDispatchOnMainThread(^ + { + [strongSelf->_interfaceView setToastMessage:nil animated:true]; + + strongSelf->_shutterIsBusy = false; + + [strongSelf->_rectangleView drawRectangle:nil]; + strongSelf->_rectangleView.enabled = false; + + TGDispatchAfter(2.0, dispatch_get_main_queue(), ^{ + strongSelf->_rectangleView.enabled = true; + }); + + TGCameraCapturedPhoto *capturedPhoto = [[TGCameraCapturedPhoto alloc] initWithImage:result rectangle:rectangle]; + [strongSelf addResultItem:capturedPhoto]; + + PGRectangle *cropRectangle = [[rectangle rotate90] transform:CGAffineTransformMakeScale(result.size.width, result.size.height)]; + PGRectangle *convertedRectangle = [cropRectangle sort]; + convertedRectangle = [convertedRectangle cartesian:result.size.height]; + + CIImage *ciImage = [[CIImage alloc] initWithImage:result]; + CIImage *croppedImage = [ciImage imageByApplyingFilter:@"CIPerspectiveCorrection" withInputParameters:@{ + @"inputTopLeft": [CIVector vectorWithCGPoint:convertedRectangle.topLeft], + @"inputTopRight": [CIVector vectorWithCGPoint:convertedRectangle.topRight], + @"inputBottomLeft": [CIVector vectorWithCGPoint:convertedRectangle.bottomLeft], + @"inputBottomRight": [CIVector vectorWithCGPoint:convertedRectangle.bottomRight] + }]; + CIImage *enhancedImage = [croppedImage imageByApplyingFilter:@"CIDocumentEnhancer" withInputParameters:@{}]; + + CIContext *context = [CIContext contextWithOptions:nil]; + UIImage *editedImage = [UIImage imageWithCGImage:[context createCGImage:enhancedImage fromRect:enhancedImage.extent]]; + UIImage *thumbnailImage = TGScaleImage(editedImage, TGScaleToFillSize(editedImage.size, TGPhotoThumbnailSizeForCurrentScreen())); + [strongSelf->_editingContext setImage:editedImage thumbnailImage:thumbnailImage forItem:capturedPhoto synchronous:true]; + [strongSelf->_editingContext setAdjustments:[PGPhotoEditorValues editorValuesWithOriginalSize:result.size cropRectangle:cropRectangle cropOrientation:UIImageOrientationUp cropSize:editedImage.size enhanceDocument:true paintingData:nil] forItem:capturedPhoto]; + + [strongSelf _playScanAnimation:editedImage rectangle:rectangle completion:^{ + [strongSelf->_selectedItemsModel addSelectedItem:capturedPhoto]; + [strongSelf->_selectionContext setItem:capturedPhoto selected:true]; + [strongSelf->_interfaceView setResults:[strongSelf->_items copy]]; + + TGDispatchAfter(0.5, dispatch_get_main_queue(), ^{ + [strongSelf->_interfaceView setToastMessage:@"Ready for next scan" animated:true]; + }); + }]; + + strongSelf->_camera.disabled = false; + }); + }]; +} + +- (void)_playScanAnimation:(UIImage *)image rectangle:(PGRectangle *)rectangle completion:(void(^)(void))completion +{ + TGWarpedView *warpedView = [[TGWarpedView alloc] initWithImage:image]; + warpedView.layer.anchorPoint = CGPointMake(0, 0); + warpedView.frame = _rectangleView.frame; + [_rectangleView.superview addSubview:warpedView]; + + CGAffineTransform transform = CGAffineTransformMakeScale(_previewView.frame.size.width, _previewView.frame.size.height); + PGRectangle *displayRectangle = [[[rectangle rotate90] transform:transform] sort]; + [warpedView transformToFitQuadTopLeft:displayRectangle.topLeft topRight:displayRectangle.topRight bottomLeft:displayRectangle.bottomLeft bottomRight:displayRectangle.bottomRight]; + + CGFloat inset = 16.0f; + CGSize targetSize = TGScaleToFit(image.size, CGSizeMake(_previewView.frame.size.width - inset * 2.0, _previewView.frame.size.height - inset * 2.0)); + CGRect targetRect = CGRectMake(floor((_previewView.frame.size.width - targetSize.width) / 2.0), floor((_previewView.frame.size.height - targetSize.height) / 2.0), targetSize.width, targetSize.height); + + [UIView animateWithDuration:0.3 delay:0.0 options:(7 << 16) animations:^{ + [warpedView transformToFitQuadTopLeft:CGPointMake(targetRect.origin.x, targetRect.origin.y) topRight:CGPointMake(targetRect.origin.x + targetRect.size.width, targetRect.origin.y) bottomLeft:CGPointMake(targetRect.origin.x, targetRect.origin.y + targetRect.size.height) bottomRight:CGPointMake(targetRect.origin.x + targetRect.size.width, targetRect.origin.y + targetRect.size.height)]; + } completion:^(BOOL finished) { + UIImageView *outView = [[UIImageView alloc] initWithImage:image]; + outView.frame = targetRect; + [warpedView.superview addSubview:outView]; + [warpedView removeFromSuperview]; + + TGDispatchAfter(0.2, dispatch_get_main_queue(), ^{ + CGPoint sourcePoint = outView.center; + CGPoint targetPoint = CGPointMake(_previewView.frame.size.width - 44.0, _previewView.frame.size.height - 44.0); + CGPoint midPoint = CGPointMake((sourcePoint.x + targetPoint.x) / 2.0, sourcePoint.y - 30.0); + + CGFloat x1 = sourcePoint.x; + CGFloat y1 = sourcePoint.y; + CGFloat x2 = midPoint.x; + CGFloat y2 = midPoint.y; + CGFloat x3 = targetPoint.x; + CGFloat y3 = targetPoint.y; + + CGFloat a = (x3 * (y2 - y1) + x2 * (y1 - y3) + x1 * (y3 - y2)) / ((x1 - x2) * (x1 - x3) * (x2 - x3)); + CGFloat b = (x1 * x1 * (y2 - y3) + x3 * x3 * (y1 - y2) + x2 * x2 * (y3 - y1)) / ((x1 - x2) * (x1 - x3) * (x2 - x3)); + CGFloat c = (x2 * x2 * (x3 * y1 - x1 * y3) + x2 * (x1 * x1 * y3 - x3 * x3 * y1) + x1 * x3 * (x3 - x1) * y2) / ((x1 - x2) * (x1 - x3) * (x2 - x3)); + + [UIView animateWithDuration:0.3 animations:^{ + outView.transform = CGAffineTransformMakeScale(0.1, 0.1); + } completion:^(BOOL finished) { + [outView removeFromSuperview]; + }]; + + TGDispatchAfter(0.28, dispatch_get_main_queue(), ^{ + completion(); + }); + + CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; + NSMutableArray *values = [[NSMutableArray alloc] init]; + NSMutableArray *keyTimes = [[NSMutableArray alloc] init]; + for (NSInteger i = 0; i < 10; i++) { + CGFloat k = (CGFloat)i / (CGFloat)(10 - 1); + CGFloat x = sourcePoint.x * (1.0 - k) + targetPoint.x * k; + CGFloat y = a * x * x + b * x + c; + + [values addObject:[NSValue valueWithCGPoint:CGPointMake(x, y)]]; + [keyTimes addObject:@(k)]; + } + animation.values = values; + animation.keyTimes = keyTimes; + animation.duration = 0.35; + animation.removedOnCompletion = false; + [outView.layer addAnimation:animation forKey:@"position"]; + }); + }]; +} + - (void)cancelPressed { if (_items.count > 0) @@ -1182,27 +1356,34 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus return galleryItems; } +- (void)_createContextsIfNeeded +{ + TGMediaEditingContext *editingContext = _editingContext; + if (editingContext == nil) + { + editingContext = [[TGMediaEditingContext alloc] init]; + if (self.forcedCaption != nil) + [editingContext setForcedCaption:self.forcedCaption entities:self.forcedEntities]; + _editingContext = editingContext; + _interfaceView.editingContext = editingContext; + } + TGMediaSelectionContext *selectionContext = _selectionContext; + if (selectionContext == nil) + { + selectionContext = [[TGMediaSelectionContext alloc] initWithGroupingAllowed:self.allowGrouping selectionLimit:100]; + if (self.allowGrouping) + selectionContext.grouping = true; + _selectionContext = selectionContext; + } +} + - (void)presentResultControllerForItem:(id)editableItemValue completion:(void (^)(void))completion { __block id editableItem = editableItemValue; UIViewController *(^begin)(id) = ^(id windowContext) { + [self _createContextsIfNeeded]; TGMediaEditingContext *editingContext = _editingContext; - if (editingContext == nil) - { - editingContext = [[TGMediaEditingContext alloc] init]; - if (self.forcedCaption != nil) - [editingContext setForcedCaption:self.forcedCaption entities:self.forcedEntities]; - _editingContext = editingContext; - _interfaceView.editingContext = editingContext; - } TGMediaSelectionContext *selectionContext = _selectionContext; - if (selectionContext == nil) - { - selectionContext = [[TGMediaSelectionContext alloc] initWithGroupingAllowed:self.allowGrouping selectionLimit:100]; - if (self.allowGrouping) - selectionContext.grouping = true; - _selectionContext = selectionContext; - } if (editableItem == nil) editableItem = _items.lastObject; @@ -1989,6 +2170,7 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus self.view.userInteractionEnabled = false; _focusControl.active = false; + _rectangleView.hidden = true; [UIView animateWithDuration:0.3f animations:^ { @@ -2256,21 +2438,27 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus PGCameraMode newMode = PGCameraModeUndefined; if (gestureRecognizer == _photoSwipeGestureRecognizer) { - newMode = PGCameraModePhoto; + if (_camera.cameraMode == PGCameraModePhoto && _intent == TGCameraControllerGenericIntent) + newMode = PGCameraModePhotoScan; + else if (_camera.cameraMode != PGCameraModePhotoScan) + newMode = PGCameraModePhoto; } else if (gestureRecognizer == _videoSwipeGestureRecognizer) { - if (_intent == TGCameraControllerAvatarIntent) { - newMode = PGCameraModeSquareVideo; + if (_camera.cameraMode == PGCameraModePhotoScan) { + if (_items.count == 0) + newMode = PGCameraModePhoto; } else { - newMode = PGCameraModeVideo; + if (_intent == TGCameraControllerAvatarIntent) { + newMode = PGCameraModeSquareVideo; + } else { + newMode = PGCameraModeVideo; + } } } - if (newMode != PGCameraModeUndefined && _camera.cameraMode != newMode) - { - [_camera setCameraMode:newMode]; - [_interfaceView setCameraMode:newMode]; + if (newMode != PGCameraModeUndefined && _camera.cameraMode != newMode) { + [self _updateCameraMode:newMode updateInterface:true]; } } @@ -2403,6 +2591,8 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus { if (widescreenWidth == 896.0f) return CGRectMake(0, 121, screenSize.width, screenSize.height - 121 - 223); + else if (widescreenWidth == 844.0f) + return CGRectMake(0, 77, screenSize.width, screenSize.height - 77 - 191); else if (widescreenWidth == 812.0f) return CGRectMake(0, 121, screenSize.width, screenSize.height - 121 - 191); else if (widescreenWidth >= 736.0f - FLT_EPSILON) @@ -2459,11 +2649,22 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus if (selectedItems.count == 0 && currentItem != nil) [selectedItems addObject:currentItem]; - if (storeAssets) - { + bool isScan = false; + for (id item in selectedItems) { + if ([item isKindOfClass:[TGCameraCapturedPhoto class]] && ((TGCameraCapturedPhoto *)item).rectangle != nil) { + isScan = true; + break; + } + } + + if (storeAssets && !isScan) { NSMutableArray *fullSizeSignals = [[NSMutableArray alloc] init]; for (id item in selectedItems) { + if ([item isKindOfClass:[TGCameraCapturedPhoto class]] && ((TGCameraCapturedPhoto *)item).rectangle != nil) { + isScan = true; + } + if ([editingContext timerForItem:item] == nil) { SSignal *saveMedia = [SSignal defer:^SSignal * @@ -2583,9 +2784,15 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus dict[@"timer"] = timer; else if (groupedId != nil && !hasAnyTimers) dict[@"groupedId"] = groupedId; - - id generatedItem = descriptionGenerator(dict, caption, entities, nil); - return generatedItem; + + if (isScan) { + if (caption != nil) + dict[@"caption"] = caption; + return dict; + } else { + id generatedItem = descriptionGenerator(dict, caption, entities, nil); + return generatedItem; + } }]; SSignal *assetSignal = inlineSignal; @@ -2611,12 +2818,13 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus return [SSignal complete]; }] onCompletion:^ { - __strong TGMediaEditingContext *strongEditingContext = editingContext; - [strongEditingContext description]; + }]; + } else { + NSLog(@"Editing context is nil"); } - [signals addObject:[[imageSignal map:^NSDictionary *(UIImage *image) + [signals addObject:[[[imageSignal map:^NSDictionary *(UIImage *image) { NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; dict[@"type"] = @"editedPhoto"; @@ -2663,11 +2871,19 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus else if (groupedId != nil && !hasAnyTimers) dict[@"groupedId"] = groupedId; - id generatedItem = descriptionGenerator(dict, caption, entities, nil); - return generatedItem; + if (isScan) { + if (caption != nil) + dict[@"caption"] = caption; + return dict; + } else { + id generatedItem = descriptionGenerator(dict, caption, entities, nil); + return generatedItem; + } }] catch:^SSignal *(__unused id error) { return inlineSignal; + }] onCompletion:^{ + [editingContext description]; }]]; i++; @@ -2750,6 +2966,54 @@ static CGPoint TGCameraControllerClampPointToScreenSize(__unused id self, __unus groupedId = @([TGCameraController generateGroupedId]); } } + + if (isScan) { + SSignal *scanSignal = [[SSignal combineSignals:signals] map:^NSDictionary *(NSArray *results) { + NSMutableData *data = [[NSMutableData alloc] init]; + UIImage *previewImage = nil; + UIGraphicsBeginPDFContextToData(data, CGRectZero, nil); + for (NSDictionary *dict in results) { + if ([dict[@"type"] isEqual:@"editedPhoto"]) { + UIImage *image = dict[@"image"]; + if (previewImage == nil) { + previewImage = image; + } + if (image != nil) { + CGRect rect = CGRectMake(0, 0, image.size.width, image.size.height); + UIGraphicsBeginPDFPageWithInfo(rect, nil); + CGContextRef pdfContext = UIGraphicsGetCurrentContext(); + + CGContextTranslateCTM(pdfContext, 0, image.size.height); + CGContextScaleCTM(pdfContext, 1.0, -1.0); + + NSData *jpegData = UIImageJPEGRepresentation(image, 0.65); + CGDataProviderRef dataProvider = CGDataProviderCreateWithCFData((__bridge CFDataRef)jpegData); + CGImageRef cgImage = CGImageCreateWithJPEGDataProvider(dataProvider, NULL, true, kCGRenderingIntentDefault); + CGContextDrawImage(pdfContext, rect, cgImage); + + CGDataProviderRelease(dataProvider); + CGImageRelease(cgImage); + } + } + } + UIGraphicsEndPDFContext(); + + NSString *filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:[[NSString alloc] initWithFormat:@"scan_%x.pdf", (int)arc4random()]]; + [data writeToFile:filePath atomically:true]; + + NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; + dict[@"type"] = @"file"; + dict[@"previewImage"] = previewImage; + dict[@"tempFileUrl"] = [NSURL fileURLWithPath:filePath]; + dict[@"fileName"] = @"Document Scan.pdf"; + dict[@"mimeType"] = @"application/pdf"; + + id generatedItem = descriptionGenerator(dict, dict[@"caption"], nil, nil); + return generatedItem; + }]; + signals = [NSMutableArray arrayWithObject:scanSignal]; + } + return signals; } diff --git a/submodules/LegacyComponents/Sources/TGCameraFlashControl.m b/submodules/LegacyComponents/Sources/TGCameraFlashControl.m index 4962d217f6..65bec10499 100644 --- a/submodules/LegacyComponents/Sources/TGCameraFlashControl.m +++ b/submodules/LegacyComponents/Sources/TGCameraFlashControl.m @@ -29,79 +29,16 @@ const CGFloat TGCameraFlashControlHeight = 44.0f; { self.hitTestEdgeInsets = UIEdgeInsetsMake(-10, -10, -10, -10); - _flashIconView = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 34, 44)]; + _flashIconView = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44)]; _flashIconView.adjustsImageWhenHighlighted = false; _flashIconView.contentMode = UIViewContentModeCenter; _flashIconView.exclusiveTouch = true; _flashIconView.hitTestEdgeInsets = UIEdgeInsetsMake(0, -10, 0, -10); _flashIconView.tag = -1; - [_flashIconView setImage:TGComponentsImageNamed(@"CameraFlashButton") forState:UIControlStateNormal]; + [_flashIconView setImage:[UIImage imageNamed:@"Camera/FlashOff"] forState:UIControlStateNormal]; [_flashIconView addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:_flashIconView]; - - static UIImage *highlightedIconImage = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^ - { - UIImage *image = TGComponentsImageNamed(@"CameraFlashButton"); - UIGraphicsBeginImageContextWithOptions(image.size, false, 0.0f); - CGContextRef context = UIGraphicsGetCurrentContext(); - [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)]; - CGContextSetBlendMode (context, kCGBlendModeSourceAtop); - CGContextSetFillColorWithColor(context, [TGCameraInterfaceAssets accentColor].CGColor); - CGContextFillRect(context, CGRectMake(0, 0, image.size.width, image.size.height)); - - highlightedIconImage = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - }); - [_flashIconView setImage:highlightedIconImage forState:UIControlStateSelected]; - [_flashIconView setImage:highlightedIconImage forState:UIControlStateHighlighted | UIControlStateSelected]; - - _autoButton = [[UIButton alloc] init]; - _autoButton.backgroundColor = [UIColor clearColor]; - _autoButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; - _autoButton.exclusiveTouch = true; - _autoButton.hitTestEdgeInsets = UIEdgeInsetsMake(-10, -15, -10, -15); - _autoButton.tag = PGCameraFlashModeAuto; - _autoButton.titleLabel.font = [TGCameraInterfaceAssets normalFontOfSize:13]; - [_autoButton setAttributedTitle:[[NSAttributedString alloc] initWithString:TGLocalized(@"Camera.FlashAuto") attributes:@{ NSForegroundColorAttributeName: [TGCameraInterfaceAssets normalColor], NSKernAttributeName: @2 }] forState:UIControlStateNormal]; - [_autoButton setAttributedTitle:[[NSAttributedString alloc] initWithString:TGLocalized(@"Camera.FlashAuto") attributes:@{ NSForegroundColorAttributeName: [TGCameraInterfaceAssets accentColor], NSKernAttributeName: @2 }] forState:UIControlStateSelected]; - [_autoButton setAttributedTitle:[_autoButton attributedTitleForState:UIControlStateSelected] forState:UIControlStateHighlighted | UIControlStateSelected]; - [_autoButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; - [_autoButton sizeToFit]; - _autoButton.frame = (CGRect){ CGPointZero, [TGCameraFlashControl _sizeForModeButtonWithTitle:[_autoButton attributedTitleForState:UIControlStateNormal]] }; - [self addSubview:_autoButton]; - - _onButton = [[UIButton alloc] init]; - _onButton.backgroundColor = [UIColor clearColor]; - _onButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; - _onButton.exclusiveTouch = true; - _onButton.hitTestEdgeInsets = UIEdgeInsetsMake(-10, -15, -10, -15); - _onButton.tag = PGCameraFlashModeOn; - _onButton.titleLabel.font = [TGCameraInterfaceAssets normalFontOfSize:13]; - [_onButton setAttributedTitle:[[NSAttributedString alloc] initWithString:TGLocalized(@"Camera.FlashOn") attributes:@{ NSForegroundColorAttributeName: [TGCameraInterfaceAssets normalColor], NSKernAttributeName: @2 }] forState:UIControlStateNormal]; - [_onButton setAttributedTitle:[[NSAttributedString alloc] initWithString:TGLocalized(@"Camera.FlashOn") attributes:@{ NSForegroundColorAttributeName: [TGCameraInterfaceAssets accentColor], NSKernAttributeName: @2 }] forState:UIControlStateSelected]; - [_onButton setAttributedTitle:[_onButton attributedTitleForState:UIControlStateSelected] forState:UIControlStateHighlighted | UIControlStateSelected]; - [_onButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; - [_onButton sizeToFit]; - _onButton.frame = (CGRect){ CGPointZero, [TGCameraFlashControl _sizeForModeButtonWithTitle:[_onButton attributedTitleForState:UIControlStateNormal]] }; - [self addSubview:_onButton]; - - _offButton = [[UIButton alloc] init]; - _offButton.backgroundColor = [UIColor clearColor]; - _offButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; - _offButton.exclusiveTouch = true; - _offButton.hitTestEdgeInsets = UIEdgeInsetsMake(-10, -15, -10, -15); - _offButton.tag = PGCameraFlashModeOff; - _offButton.titleLabel.font = [TGCameraInterfaceAssets normalFontOfSize:13]; - [_offButton setAttributedTitle:[[NSAttributedString alloc] initWithString:TGLocalized(@"Camera.FlashOff") attributes:@{ NSForegroundColorAttributeName: [TGCameraInterfaceAssets normalColor], NSKernAttributeName: @2 }] forState:UIControlStateNormal]; - [_offButton setAttributedTitle:[[NSAttributedString alloc] initWithString:TGLocalized(@"Camera.FlashOff") attributes:@{ NSForegroundColorAttributeName: [TGCameraInterfaceAssets accentColor], NSKernAttributeName: @2 }] forState:UIControlStateSelected]; - [_offButton setAttributedTitle:[_offButton attributedTitleForState:UIControlStateSelected] forState:UIControlStateHighlighted | UIControlStateSelected]; - [_offButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; - [_offButton sizeToFit]; - _offButton.frame = (CGRect){ CGPointZero, [TGCameraFlashControl _sizeForModeButtonWithTitle:[_offButton attributedTitleForState:UIControlStateNormal]] }; - [self addSubview:_offButton]; - + [UIView performWithoutAnimation:^ { self.mode = PGCameraFlashModeOff; @@ -123,305 +60,27 @@ const CGFloat TGCameraFlashControlHeight = 44.0f; - (void)buttonPressed:(UIButton *)sender { - if (!_active) - { - [self setActive:true animated:true]; - } - else - { - if (sender != _flashIconView) - self.mode = (int)sender.tag; - else - self.mode = _mode; - - if (self.modeChanged != nil) - self.modeChanged(self.mode); + if (_mode == PGCameraFlashModeOff) { + self.mode = PGCameraFlashModeOn; + [_flashIconView setImage:[UIImage imageNamed:@"Camera/FlashOn"] forState:UIControlStateNormal]; + } else { + self.mode = PGCameraFlashModeOff; + [_flashIconView setImage:[UIImage imageNamed:@"Camera/FlashOff"] forState:UIControlStateNormal]; } + + if (self.modeChanged != nil) + self.modeChanged(self.mode); } - (void)setFlashUnavailable:(bool)unavailable { self.userInteractionEnabled = !unavailable; [self setActive:false animated:false]; - - } - (void)setActive:(bool)active animated:(bool)animated { - _active = active; - - if (animated) - { - self.userInteractionEnabled = false; - - if (active) - { - UIView *animatedView = nil; - UIView *snapshotView = nil; - CGRect targetFrame = CGRectZero; - - if (self.mode != PGCameraFlashModeAuto) - { - _autoButton.frame = [self _autoButtonFrameForInterfaceOrientation:_interfaceOrientation]; - _autoButton.alpha = 0.0f; - _autoButton.hidden = false; - } - else - { - animatedView = _autoButton; - targetFrame = [self _autoButtonFrameForInterfaceOrientation:_interfaceOrientation]; - snapshotView = [animatedView snapshotViewAfterScreenUpdates:false]; - } - _autoButton.selected = (self.mode == PGCameraFlashModeAuto); - - if (self.mode != PGCameraFlashModeOn) - { - _onButton.frame = [self _onButtonFrameForInterfaceOrientation:_interfaceOrientation]; - _onButton.alpha = 0.0f; - _onButton.hidden = false; - } - else - { - animatedView = _onButton; - targetFrame = [self _onButtonFrameForInterfaceOrientation:_interfaceOrientation]; - } - _onButton.selected = (self.mode == PGCameraFlashModeOn); - - if (self.mode != PGCameraFlashModeOff) - { - _offButton.frame = [self _offButtonFrameForInterfaceOrientation:_interfaceOrientation]; - _offButton.alpha = 0.0f; - _offButton.hidden = false; - } - else - { - animatedView = _offButton; - targetFrame = [self _offButtonFrameForInterfaceOrientation:_interfaceOrientation]; - snapshotView = [animatedView snapshotViewAfterScreenUpdates:false]; - } - _offButton.selected = (self.mode == PGCameraFlashModeOff); - - if (snapshotView != nil) - { - snapshotView.frame = animatedView.frame; - [animatedView.superview insertSubview:snapshotView belowSubview:animatedView]; - animatedView.alpha = 0.0f; - } - - UIView *iconSnapshotView = nil; - if (_flashIconView.selected) - { - iconSnapshotView = [_flashIconView snapshotViewAfterScreenUpdates:false]; - iconSnapshotView.frame = _flashIconView.frame; - [_flashIconView.superview insertSubview:iconSnapshotView belowSubview:_flashIconView]; - _flashIconView.selected = false; - _flashIconView.alpha = 0.0f; - } - - [UIView animateWithDuration:0.25f delay:0.0f options:UIViewAnimationOptionCurveEaseInOut animations:^ - { - _flashIconView.alpha = 1.0f; - _flashIconView.frame = [self _flashIconFrameForActive:active interfaceOrientation:_interfaceOrientation]; - iconSnapshotView.frame = _flashIconView.frame; - - _autoButton.alpha = 1.0f; - _onButton.alpha = 1.0f; - _offButton.alpha = 1.0f; - - animatedView.alpha = 1.0f; - animatedView.frame = targetFrame; - snapshotView.frame = targetFrame; - } completion:^(BOOL finished) - { - [snapshotView removeFromSuperview]; - [iconSnapshotView removeFromSuperview]; - if (finished) - self.userInteractionEnabled = true; - }]; - } - else - { - UIView *animatedView = nil; - UIView *snapshotView = nil; - UIView *iconSnapshotView = nil; - - switch (self.mode) - { - case PGCameraFlashModeAuto: - { - animatedView = _autoButton; - snapshotView = [animatedView snapshotViewAfterScreenUpdates:false]; - _autoButton.selected = false; - } - break; - - case PGCameraFlashModeOn: - { - animatedView = _onButton; - if (!_onButton.selected) - { - snapshotView = [animatedView snapshotViewAfterScreenUpdates:false]; - _onButton.selected = true; - } - - iconSnapshotView = [_flashIconView snapshotViewAfterScreenUpdates:false]; - iconSnapshotView.frame = _flashIconView.frame; - [_flashIconView.superview insertSubview:iconSnapshotView belowSubview:_flashIconView]; - _flashIconView.selected = true; - _flashIconView.alpha = 0.0f; - } - break; - - case PGCameraFlashModeOff: - { - animatedView = _offButton; - snapshotView = [animatedView snapshotViewAfterScreenUpdates:false]; - _offButton.selected = false; - } - break; - - default: - break; - } - - if (snapshotView != nil) - { - snapshotView.frame = animatedView.frame; - [animatedView.superview insertSubview:snapshotView belowSubview:animatedView]; - animatedView.alpha = 0.0f; - } - - [UIView animateWithDuration:0.25f delay:0.0f options:UIViewAnimationOptionCurveEaseInOut animations:^ - { - _flashIconView.alpha = 1.0f; - _flashIconView.frame = [self _flashIconFrameForActive:active interfaceOrientation:_interfaceOrientation]; - iconSnapshotView.frame = _flashIconView.frame; - - if (self.mode != PGCameraFlashModeAuto) - _autoButton.alpha = 0.0f; - - if (self.mode != PGCameraFlashModeOn) - _onButton.alpha = 0.0f; - - if (self.mode != PGCameraFlashModeOff) - _offButton.alpha = 0.0f; - - animatedView.alpha = 1.0f; - animatedView.frame = [self _selectedButtonFrameForSize:animatedView.frame.size interfaceOrientation:_interfaceOrientation]; - snapshotView.frame = animatedView.frame; - } completion:^(BOOL finished) - { - [snapshotView removeFromSuperview]; - [iconSnapshotView removeFromSuperview]; - if (finished) - { - self.userInteractionEnabled = true; - - if (self.mode != PGCameraFlashModeAuto) - _autoButton.hidden = true; - - if (self.mode != PGCameraFlashModeOn) - _onButton.hidden = true; - - if (self.mode != PGCameraFlashModeOff) - _offButton.hidden = true; - } - }]; - } - } - else - { - _flashIconView.frame = [self _flashIconFrameForActive:active interfaceOrientation:_interfaceOrientation]; - - if (active) - { - _flashIconView.selected = false; - - _autoButton.frame = [self _autoButtonFrameForInterfaceOrientation:_interfaceOrientation]; - _autoButton.alpha = 1.0f; - _autoButton.hidden = false; - _autoButton.selected = (self.mode == PGCameraFlashModeAuto); - - _onButton.frame = [self _onButtonFrameForInterfaceOrientation:_interfaceOrientation]; - _onButton.alpha = 1.0f; - _onButton.hidden = false; - _onButton.selected = (self.mode == PGCameraFlashModeOn); - - _offButton.frame = [self _offButtonFrameForInterfaceOrientation:_interfaceOrientation]; - _offButton.alpha = 1.0f; - _offButton.hidden = false; - _offButton.selected = (self.mode == PGCameraFlashModeOff); - } - else - { - switch (self.mode) - { - case PGCameraFlashModeOff: - { - _flashIconView.selected = false; - - _autoButton.alpha = 0.0f; - _autoButton.hidden = true; - _autoButton.selected = false; - - _onButton.alpha = 0.0f; - _onButton.hidden = true; - _onButton.selected = false; - - _offButton.frame = [self _selectedButtonFrameForSize:_offButton.frame.size interfaceOrientation:_interfaceOrientation]; - _offButton.alpha = 1.0f; - _offButton.hidden = false; - _offButton.selected = false; - } - break; - - case PGCameraFlashModeOn: - { - _flashIconView.selected = true; - - _autoButton.alpha = 0.0f; - _autoButton.hidden = true; - _autoButton.selected = false; - - _onButton.frame = [self _selectedButtonFrameForSize:_onButton.frame.size interfaceOrientation:_interfaceOrientation]; - _onButton.alpha = 1.0f; - _onButton.hidden = false; - _onButton.selected = true; - - _offButton.alpha = 0.0f; - _offButton.hidden = true; - _offButton.selected = false; - } - break; - - case PGCameraFlashModeAuto: - { - _flashIconView.selected = false; - - _autoButton.frame = [self _selectedButtonFrameForSize:_autoButton.frame.size interfaceOrientation:_interfaceOrientation]; - _autoButton.alpha = 1.0f; - _autoButton.hidden = false; - _autoButton.selected = false; - - _onButton.alpha = 0.0f; - _onButton.hidden = true; - _onButton.selected = false; - - _offButton.alpha = 0.0f; - _offButton.hidden = true; - _offButton.selected = false; - } - break; - - default: - break; - } - } - } - - if (active && self.becameActive != nil) - self.becameActive(); + return; } - (void)setMode:(PGCameraFlashMode)mode @@ -484,130 +143,4 @@ const CGFloat TGCameraFlashControlHeight = 44.0f; [self setActive:false animated:false]; } -- (CGRect)_flashIconFrameForActive:(bool)active interfaceOrientation:(UIInterfaceOrientation)interfaceOrientation -{ - CGPoint origin = CGPointZero; - CGSize size = self.frame.size; - if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) - size = CGSizeMake(size.height, size.width); - - switch (interfaceOrientation) - { - case UIInterfaceOrientationLandscapeLeft: - { - if (active) - origin = CGPointMake(size.width - _flashIconView.frame.size.width - 5, (size.height - _flashIconView.frame.size.height) / 2); - else - origin = CGPointMake(size.width - _flashIconView.frame.size.width - 5, (size.height - _flashIconView.frame.size.height) / 2 - 9); - } - break; - case UIInterfaceOrientationLandscapeRight: - { - if (active) - origin = CGPointMake(5, (size.height - _flashIconView.frame.size.height) / 2); - else - origin = CGPointMake(5, (size.height - _flashIconView.frame.size.height) / 2 - 9); - } - break; - - case UIInterfaceOrientationPortraitUpsideDown: - { - if (active) - { - origin = CGPointMake(0, 0); - } - else - { - CGFloat maxWidth = MAX(MAX(_offButton.frame.size.width, _onButton.frame.size.width), _autoButton.frame.size.width); - origin = CGPointMake(size.width - _flashIconView.frame.size.width - maxWidth, 0); - } - } - break; - - default: - { - origin = CGPointZero; - } - break; - } - - return CGRectMake(origin.x, origin.y, _flashIconView.frame.size.width, _flashIconView.frame.size.height); -} - -- (CGRect)_selectedButtonFrameForSize:(CGSize)buttonSize interfaceOrientation:(UIInterfaceOrientation)interfaceOrientation -{ - CGPoint origin = CGPointZero; - CGSize size = self.frame.size; - if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) - size = CGSizeMake(size.height, size.width); - - switch (interfaceOrientation) - { - case UIInterfaceOrientationLandscapeLeft: - case UIInterfaceOrientationLandscapeRight: - { - origin = CGPointMake(CGRectGetMidX(_flashIconView.frame) - buttonSize.width / 2, 21); - } - break; - - case UIInterfaceOrientationPortraitUpsideDown: - { - CGRect iconFrame = [self _flashIconFrameForActive:false interfaceOrientation:interfaceOrientation]; - origin = CGPointMake(iconFrame.origin.x + iconFrame.size.width - 3, (size.height - buttonSize.height) / 2); - } - break; - - default: - { - origin = CGPointMake(_flashIconView.frame.size.width - 5, - (size.height - buttonSize.height) / 2); - } - break; - } - - return CGRectMake(origin.x, origin.y, buttonSize.width, buttonSize.height); -} - -- (CGRect)_autoButtonFrameForInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation -{ - CGSize size = self.frame.size; - if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) - size = CGSizeMake(size.height, size.width); - - return CGRectMake(size.width / 4 - _autoButton.frame.size.width / 2, - (size.height - _autoButton.frame.size.height) / 2, - _autoButton.frame.size.width, _autoButton.frame.size.height); -} - -- (CGRect)_onButtonFrameForInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation -{ - CGSize size = self.frame.size; - if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) - size = CGSizeMake(size.height, size.width); - - return CGRectMake((size.width - _onButton.frame.size.width) / 2, - (size.height - _onButton.frame.size.height) / 2, - _onButton.frame.size.width, _onButton.frame.size.height); -} - -- (CGRect)_offButtonFrameForInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation -{ - CGSize size = self.frame.size; - if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) - size = CGSizeMake(size.height, size.width); - - return CGRectMake(size.width / 4 * 3 - _offButton.frame.size.width / 2, - (size.height - _offButton.frame.size.height) / 2, - _offButton.frame.size.width, _offButton.frame.size.height); -} - -+ (CGSize)_sizeForModeButtonWithTitle:(NSAttributedString *)title -{ - CGSize size = title.size; - CGFloat width = CGCeil(size.width); - if (iosMajorVersion() < 7) - width += 2; - return CGSizeMake(width, 20); -} - @end diff --git a/submodules/LegacyComponents/Sources/TGCameraFlipButton.m b/submodules/LegacyComponents/Sources/TGCameraFlipButton.m index 0f204e71ad..b4e05637cb 100644 --- a/submodules/LegacyComponents/Sources/TGCameraFlipButton.m +++ b/submodules/LegacyComponents/Sources/TGCameraFlipButton.m @@ -1,18 +1,20 @@ #import "TGCameraFlipButton.h" +#import "TGCameraInterfaceAssets.h" #import "LegacyComponentsInternal.h" #import "TGImageUtils.h" @implementation TGCameraFlipButton -- (instancetype)initWithFrame:(CGRect)frame large:(bool)large +- (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self != nil) { self.exclusiveTouch = true; - UIImage *image = large ? TGComponentsImageNamed(@"CameraLargeFlipButton") : TGTintedImage(TGComponentsImageNamed(@"CameraFlipButton"), [UIColor whiteColor]); - [self setImage:image forState:UIControlStateNormal]; + self.backgroundColor = [TGCameraInterfaceAssets buttonColor]; + self.layer.cornerRadius = 24.0; + [self setImage:[UIImage imageNamed:@"Camera/Flip"] forState:UIControlStateNormal]; } return self; } @@ -30,17 +32,65 @@ super.hidden = false; self.userInteractionEnabled = false; - [UIView animateWithDuration:0.25f - animations:^ - { - self.alpha = hidden ? 0.0f : 1.0f; - } completion:^(BOOL finished) - { - self.userInteractionEnabled = true; + [UIView animateWithDuration:0.25f animations:^ + { + self.alpha = hidden ? 0.0f : 1.0f; + } completion:^(BOOL finished) + { + self.userInteractionEnabled = true; - if (finished) - self.hidden = hidden; - }]; + if (finished) + self.hidden = hidden; + }]; + } + else + { + self.alpha = hidden ? 0.0f : 1.0f; + super.hidden = hidden; + } +} + +@end + + +@implementation TGCameraCancelButton + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self != nil) + { + self.exclusiveTouch = true; + self.backgroundColor = [TGCameraInterfaceAssets buttonColor]; + self.layer.cornerRadius = 24.0; + [self setImage:[UIImage imageNamed:@"Camera/Cancel"] forState:UIControlStateNormal]; + } + return self; +} + +- (void)setHidden:(BOOL)hidden +{ + self.alpha = hidden ? 0.0f : 1.0f; + super.hidden = hidden; +} + +- (void)setHidden:(bool)hidden animated:(bool)animated +{ + if (animated) + { + super.hidden = false; + self.userInteractionEnabled = false; + + [UIView animateWithDuration:0.25f animations:^ + { + self.alpha = hidden ? 0.0f : 1.0f; + } completion:^(BOOL finished) + { + self.userInteractionEnabled = true; + + if (finished) + self.hidden = hidden; + }]; } else { diff --git a/submodules/LegacyComponents/Sources/TGCameraFocusCrosshairsControl.m b/submodules/LegacyComponents/Sources/TGCameraFocusCrosshairsControl.m index 6b8407fcc8..ef6413d067 100644 --- a/submodules/LegacyComponents/Sources/TGCameraFocusCrosshairsControl.m +++ b/submodules/LegacyComponents/Sources/TGCameraFocusCrosshairsControl.m @@ -412,8 +412,8 @@ - (void)updateExposureIndicatorPositionForOrientation:(UIInterfaceOrientation)orientation { - CGRect defaultPositionFrame = _exposureClipView.frame = CGRectMake(45 + _focusIndicatorImageView.frame.size.width + 5, 45 + (_focusIndicatorImageView.frame.size.height - 144) / 2, 25, 144);; - CGRect mirroredPositionFrame = _exposureClipView.frame = CGRectMake(15, 45 + (_focusIndicatorImageView.frame.size.height - 144) / 2, 25, 144);; + CGRect defaultPositionFrame = CGRectMake(45 + _focusIndicatorImageView.frame.size.width + 5, 45 + (_focusIndicatorImageView.frame.size.height - 144) / 2, 25, 144); + CGRect mirroredPositionFrame = CGRectMake(15, 45 + (_focusIndicatorImageView.frame.size.height - 144) / 2, 25, 144); switch (orientation) { case UIInterfaceOrientationPortraitUpsideDown: diff --git a/submodules/LegacyComponents/Sources/TGCameraInterfaceAssets.m b/submodules/LegacyComponents/Sources/TGCameraInterfaceAssets.m index 68b4fc84d3..f7a98b6e10 100644 --- a/submodules/LegacyComponents/Sources/TGCameraInterfaceAssets.m +++ b/submodules/LegacyComponents/Sources/TGCameraInterfaceAssets.m @@ -1,7 +1,22 @@ #import "TGCameraInterfaceAssets.h" +#import #import "LegacyComponentsInternal.h" +static NSString *TGCameraEncodeText(NSString *string, int key) +{ + NSMutableString *result = [[NSMutableString alloc] init]; + + for (int i = 0; i < (int)[string length]; i++) + { + unichar c = [string characterAtIndex:i]; + c += key; + [result appendString:[NSString stringWithCharacters:&c length:1]]; + } + + return result; +} + @implementation TGCameraInterfaceAssets + (UIColor *)normalColor @@ -11,12 +26,12 @@ + (UIColor *)accentColor { - return UIColorRGB(0xffcc00); + return UIColorRGB(0xffd60a); } + (UIColor *)redColor { - return UIColorRGB(0xf53333); + return UIColorRGB(0xfe3b30); } + (UIColor *)panelBackgroundColor @@ -24,6 +39,11 @@ return [UIColor blackColor]; } ++ (UIColor *)buttonColor +{ + return UIColorRGBA(0x393737, 0.6); +} + + (UIColor *)transparentPanelBackgroundColor { return [UIColor colorWithWhite:0.0f alpha:0.5]; @@ -34,9 +54,14 @@ return [UIColor colorWithWhite:0.0f alpha:0.7]; } -+ (UIFont *)normalFontOfSize:(CGFloat)size ++ (UIFont *)regularFontOfSize:(CGFloat)size { - return [UIFont fontWithName:@"DINAlternate-Bold" size:size]; + return [UIFont fontWithName:TGCameraEncodeText(@"TGDbnfsb.Sfhvmbs", -1) size:size]; +} + ++ (UIFont *)boldFontOfSize:(CGFloat)size +{ + return [UIFont fontWithName:TGCameraEncodeText(@"TGDbnfsb.Tfnjcpme", -1) size:size]; } @end diff --git a/submodules/LegacyComponents/Sources/TGCameraMainPhoneView.m b/submodules/LegacyComponents/Sources/TGCameraMainPhoneView.m index a8cdfcb45a..274e33e4be 100644 --- a/submodules/LegacyComponents/Sources/TGCameraMainPhoneView.m +++ b/submodules/LegacyComponents/Sources/TGCameraMainPhoneView.m @@ -19,7 +19,7 @@ #import "TGCameraFlipButton.h" #import "TGCameraTimeCodeView.h" #import "TGCameraZoomView.h" -#import "TGCameraSegmentsView.h" +#import "TGCameraToastView.h" #import "TGMenuView.h" @@ -127,8 +127,8 @@ _topPanelHeight = 44.0f; _bottomPanelOffset = 94.0f; _bottomPanelHeight = 123.0f; - _modeControlOffset = 0.0f; - _modeControlHeight = 52.0f; + _modeControlOffset = -5.0f; + _modeControlHeight = 56.0f; _counterOffset = 7.0f; shutterButtonWidth = 72.0f; } @@ -206,16 +206,7 @@ _bottomPanelBackgroundView.backgroundColor = [TGCameraInterfaceAssets transparentPanelBackgroundColor]; [_bottomPanelView addSubview:_bottomPanelBackgroundView]; - _cancelButton = [[TGModernButton alloc] initWithFrame:CGRectMake(0, 0, 60, 44)]; - _cancelButton.backgroundColor = [UIColor clearColor]; - _cancelButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; - _cancelButton.exclusiveTouch = true; - _cancelButton.titleLabel.font = TGSystemFontOfSize(18); - _cancelButton.contentEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 0); - [_cancelButton setTitle:TGLocalized(@"Common.Cancel") forState:UIControlStateNormal]; - [_cancelButton setTintColor:[TGCameraInterfaceAssets normalColor]]; - [_cancelButton sizeToFit]; - _cancelButton.frame = CGRectMake(0, 0, MAX(60.0f, _cancelButton.frame.size.width), 44); + _cancelButton = [[TGCameraCancelButton alloc] initWithFrame:CGRectMake(0, 0, 48, 48)]; [_cancelButton addTarget:self action:@selector(cancelButtonPressed) forControlEvents:UIControlEventTouchUpInside]; [_bottomPanelView addSubview:_cancelButton]; @@ -241,19 +232,19 @@ _modeControl = [[TGCameraModeControl alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, _modeControlHeight) avatar:avatar]; [_bottomPanelView addSubview:_modeControl]; - _flipButton = [[TGCameraFlipButton alloc] initWithFrame:CGRectMake(0, 0, 56, 56) large:true]; + _flipButton = [[TGCameraFlipButton alloc] initWithFrame:CGRectMake(0, 0, 48, 48)]; [_flipButton addTarget:self action:@selector(flipButtonPressed) forControlEvents:UIControlEventTouchUpInside]; [_bottomPanelView addSubview:_flipButton]; - _flashControl = [[TGCameraFlashControl alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, TGCameraFlashControlHeight)]; + _flashControl = [[TGCameraFlashControl alloc] initWithFrame:CGRectMake(3.0, 0, TGCameraFlashControlHeight, TGCameraFlashControlHeight)]; [_topPanelView addSubview:_flashControl]; - _topFlipButton = [[TGCameraFlipButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44) large:false]; + _topFlipButton = [[TGCameraFlipButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44)]; _topFlipButton.hidden = true; [_topFlipButton addTarget:self action:@selector(flipButtonPressed) forControlEvents:UIControlEventTouchUpInside]; - [_topPanelView addSubview:_topFlipButton]; +// [_topPanelView addSubview:_topFlipButton]; - _timecodeView = [[TGCameraTimeCodeView alloc] initWithFrame:CGRectMake((frame.size.width - 120) / 2, 12, 120, 20)]; + _timecodeView = [[TGCameraTimeCodeView alloc] initWithFrame:CGRectMake((frame.size.width - 120) / 2, 12, 120, 28)]; _timecodeView.hidden = true; _timecodeView.requestedRecordingDuration = ^NSTimeInterval { @@ -273,7 +264,10 @@ [self addSubview:_videoLandscapePanelView]; _flashActiveView = [[TGCameraFlashActiveView alloc] initWithFrame:CGRectMake((frame.size.width - 40) / 2, frame.size.height - _bottomPanelHeight - 37, 40, 21)]; - [self addSubview:_flashActiveView]; +// [self addSubview:_flashActiveView]; + + _toastView = [[TGCameraToastView alloc] initWithFrame:CGRectMake(0, frame.size.height - _bottomPanelHeight - 42, frame.size.width, 32)]; + [self addSubview:_toastView]; _zoomView = [[TGCameraZoomView alloc] initWithFrame:CGRectMake(10, frame.size.height - _bottomPanelHeight - _bottomPanelOffset - 18, frame.size.width - 20, 1.5f)]; _zoomView.activityChanged = ^(bool active) @@ -386,9 +380,12 @@ else { _hasResults = true; - _topFlipButton.hidden = false; + _topFlipButton.hidden = _modeControl.cameraMode == PGCameraModePhotoScan; _flipButton.hidden = true; _doneButton.hidden = false; + if (_modeControl.cameraMode == PGCameraModePhotoScan) { + _modeControl.hidden = true; + } } } @@ -830,18 +827,18 @@ if (superview == _videoLandscapePanelView && superviewSize.width < superviewSize.height) superviewSize = CGSizeMake(superviewSize.height, superviewSize.width); - if (UIInterfaceOrientationIsLandscape(orientation) && _flashControl.interfaceOrientation == orientation && _flashControl.superview == _topPanelView) - { - if (orientation == UIInterfaceOrientationLandscapeLeft) - _flashControl.frame = CGRectMake(7, 0, TGCameraFlashControlHeight, 370); - else if (orientation == UIInterfaceOrientationLandscapeRight) - _flashControl.frame = CGRectMake(7, 0, TGCameraFlashControlHeight, 370); - } - else - { - _flashControl.frame = CGRectMake(0, (superviewSize.height - TGCameraFlashControlHeight) / 2, superviewSize.width, TGCameraFlashControlHeight); - } - _timecodeView.frame = CGRectMake((superviewSize.width - 120) / 2, (superviewSize.height - 20) / 2, 120, 20); +// if (UIInterfaceOrientationIsLandscape(orientation) && _flashControl.interfaceOrientation == orientation && _flashControl.superview == _topPanelView) +// { +// if (orientation == UIInterfaceOrientationLandscapeLeft) +// _flashControl.frame = CGRectMake(7, 0, TGCameraFlashControlHeight, 370); +// else if (orientation == UIInterfaceOrientationLandscapeRight) +// _flashControl.frame = CGRectMake(7, 0, TGCameraFlashControlHeight, 370); +// } +// else +// { +// _flashControl.frame = CGRectMake(0, (superviewSize.height - TGCameraFlashControlHeight) / 2, superviewSize.width, TGCameraFlashControlHeight); +// } + _timecodeView.frame = CGRectMake((superviewSize.width - 120) / 2, (superviewSize.height - 28) / 2, 120, 28); } - (void)layoutPreviewRelativeViews @@ -865,13 +862,17 @@ _modeControl.frame = CGRectMake(0, _modeControlOffset, self.frame.size.width, _modeControlHeight); _shutterButton.frame = CGRectMake(round((self.frame.size.width - _shutterButton.frame.size.width) / 2), _modeControlHeight + _modeControlOffset, _shutterButton.frame.size.width, _shutterButton.frame.size.height); - _cancelButton.frame = CGRectMake(0, round(_shutterButton.center.y - _cancelButton.frame.size.height / 2.0f), _cancelButton.frame.size.width, _cancelButton.frame.size.height); + + _cancelButton.frame = CGRectMake(20.0, round(_shutterButton.center.y - _cancelButton.frame.size.height / 2.0f), _cancelButton.frame.size.width, _cancelButton.frame.size.height); + _doneButton.frame = CGRectMake(_bottomPanelView.frame.size.width - _doneButton.frame.size.width, round(_shutterButton.center.y - _doneButton.frame.size.height / 2.0f), _doneButton.frame.size.width, _doneButton.frame.size.height); - _flipButton.frame = CGRectMake(self.frame.size.width - _flipButton.frame.size.width - 4.0f - 7.0f, round(_shutterButton.center.y - _flipButton.frame.size.height / 2.0f), _flipButton.frame.size.width, _flipButton.frame.size.height); + _flipButton.frame = CGRectMake(self.frame.size.width - _flipButton.frame.size.width - 20.0f, round(_shutterButton.center.y - _flipButton.frame.size.height / 2.0f), _flipButton.frame.size.width, _flipButton.frame.size.height); _topFlipButton.frame = CGRectMake(self.frame.size.width - _topFlipButton.frame.size.width - 4.0f, 0.0f, _topFlipButton.frame.size.width, _topFlipButton.frame.size.height); + _toastView.frame = CGRectMake(0, self.frame.size.height - _bottomPanelHeight - _bottomPanelOffset - 32 - 16, self.frame.size.width, 32); + CGFloat photosViewSize = TGPhotoThumbnailSizeForCurrentScreen().height + 4 * 2; _photoCounterButton.frame = CGRectMake(self.frame.size.width - 56.0f - 10.0f, _counterOffset, 64, 38); _selectedPhotosView.frame = CGRectMake(4.0f, [_photoCounterButton convertRect:_photoCounterButton.bounds toView:self].origin.y - photosViewSize - 20.0f, self.frame.size.width - 4.0f * 2.0f, photosViewSize); diff --git a/submodules/LegacyComponents/Sources/TGCameraMainTabletView.m b/submodules/LegacyComponents/Sources/TGCameraMainTabletView.m index 8c650d195b..a52645e56e 100644 --- a/submodules/LegacyComponents/Sources/TGCameraMainTabletView.m +++ b/submodules/LegacyComponents/Sources/TGCameraMainTabletView.m @@ -100,7 +100,7 @@ const CGFloat TGCameraTabletPanelViewWidth = 102.0f; }; [_panelView addSubview:_timecodeView]; - _flipButton = [[TGCameraFlipButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44) large:true]; + _flipButton = [[TGCameraFlipButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44)]; [_flipButton addTarget:self action:@selector(flipButtonPressed) forControlEvents:UIControlEventTouchUpInside]; [_panelView addSubview:_flipButton]; diff --git a/submodules/LegacyComponents/Sources/TGCameraMainView.m b/submodules/LegacyComponents/Sources/TGCameraMainView.m index 4254f41c16..79bc985526 100644 --- a/submodules/LegacyComponents/Sources/TGCameraMainView.m +++ b/submodules/LegacyComponents/Sources/TGCameraMainView.m @@ -5,10 +5,11 @@ #import #import "TGCameraShutterButton.h" +#import "TGCameraFlipButton.h" #import "TGCameraModeControl.h" #import "TGCameraTimeCodeView.h" #import "TGCameraZoomView.h" -#import "TGCameraSegmentsView.h" +#import "TGCameraToastView.h" #import "TGMediaPickerPhotoCounterButton.h" #import "TGMediaPickerPhotoStripView.h" @@ -37,15 +38,22 @@ [self updateForCameraModeChangeWithPreviousMode:previousMode]; } +- (void)setToastMessage:(NSString *)message animated:(bool)animated +{ + [_toastView setText:message animated:animated]; +} + - (void)updateForCameraModeChangeWithPreviousMode:(PGCameraMode)__unused previousMode { switch (_modeControl.cameraMode) { case PGCameraModePhoto: case PGCameraModeSquarePhoto: + case PGCameraModePhotoScan: { [_shutterButton setButtonMode:TGCameraShutterButtonNormalMode animated:true]; [_timecodeView setHidden:true animated:true]; + [_flipButton setHidden:_modeControl.cameraMode == PGCameraModePhotoScan animated:true]; } break; diff --git a/submodules/LegacyComponents/Sources/TGCameraModeControl.m b/submodules/LegacyComponents/Sources/TGCameraModeControl.m index fd6b3cd2ac..7b3b7610a6 100644 --- a/submodules/LegacyComponents/Sources/TGCameraModeControl.m +++ b/submodules/LegacyComponents/Sources/TGCameraModeControl.m @@ -26,10 +26,7 @@ const CGFloat TGCameraModeControlVerticalInteritemSpace = 29.0f; self = [super initWithFrame:frame]; if (self != nil) { - if (frame.size.width > frame.size.height) - _kerning = 3.5f; - else - _kerning = 2.0f; + _kerning = 0.75f; _maskView = [[UIView alloc] initWithFrame:self.bounds]; _maskView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; @@ -53,6 +50,7 @@ const CGFloat TGCameraModeControlVerticalInteritemSpace = 29.0f; [ [self _createButtonForMode:PGCameraModeVideo title:TGLocalized(@"Camera.VideoMode")], [self _createButtonForMode:PGCameraModePhoto title:TGLocalized(@"Camera.PhotoMode")] +// [self _createButtonForMode:PGCameraModePhotoScan title:TGLocalized(@"Camera.ScanMode")] ]; } @@ -72,7 +70,7 @@ const CGFloat TGCameraModeControlVerticalInteritemSpace = 29.0f; _maskLayer = [CAGradientLayer layer]; _maskLayer.colors = @[ (id)[UIColor clearColor].CGColor, (id)[UIColor whiteColor].CGColor, (id)[UIColor whiteColor].CGColor, (id)[UIColor clearColor].CGColor ]; - _maskLayer.locations = @[ @0.0f, @0.33f, @0.67f, @1.0f ]; + _maskLayer.locations = @[ @0.0f, @0.4f, @0.6f, @1.0f ]; _maskLayer.startPoint = CGPointMake(0.0f, 0.5f); _maskLayer.endPoint = CGPointMake(1.0f, 0.5f); _maskView.layer.mask = _maskLayer; @@ -94,19 +92,14 @@ const CGFloat TGCameraModeControlVerticalInteritemSpace = 29.0f; return self; } -+ (UIFont *)_buttonFont -{ - return [UIFont fontWithName:@"SFCompactText-Regular" size:14]; -} - + (CGFloat)_buttonHorizontalSpacing { - return 19; + return 25; } + (CGFloat)_buttonVerticalSpacing { - return 19; + return 25; } - (UIButton *)_createButtonForMode:(PGCameraMode)mode title:(NSString *)title @@ -116,11 +109,17 @@ const CGFloat TGCameraModeControlVerticalInteritemSpace = 29.0f; button.exclusiveTouch = true; button.hitTestEdgeInsets = UIEdgeInsetsMake(-10, -10, -10, -10); button.tag = mode; - button.titleLabel.font = [TGCameraInterfaceAssets normalFontOfSize:13]; - [button setAttributedTitle:[[NSAttributedString alloc] initWithString:title attributes:@{ NSForegroundColorAttributeName: [TGCameraInterfaceAssets normalColor], NSKernAttributeName: @(_kerning) }] forState:UIControlStateNormal]; - [button setAttributedTitle:[[NSAttributedString alloc] initWithString:title attributes:@{ NSForegroundColorAttributeName: [TGCameraInterfaceAssets accentColor], NSKernAttributeName: @(_kerning) }] forState:UIControlStateSelected]; + [button setAttributedTitle:[[NSAttributedString alloc] initWithString:title attributes:@{ NSForegroundColorAttributeName: [TGCameraInterfaceAssets normalColor], NSKernAttributeName: @(_kerning), NSFontAttributeName: [TGCameraInterfaceAssets regularFontOfSize:14] }] forState:UIControlStateNormal]; + [button setAttributedTitle:[[NSAttributedString alloc] initWithString:title attributes:@{ NSForegroundColorAttributeName: [TGCameraInterfaceAssets accentColor], NSKernAttributeName: @(_kerning), NSFontAttributeName: [TGCameraInterfaceAssets boldFontOfSize:14] }] forState:UIControlStateSelected]; [button setAttributedTitle:[button attributedTitleForState:UIControlStateSelected] forState:UIControlStateHighlighted | UIControlStateSelected]; [button sizeToFit]; + button.titleLabel.shadowColor = [UIColor blackColor]; + button.titleLabel.shadowOffset = CGSizeMake(0.0, 0.0); + button.titleLabel.layer.shadowRadius = 2.0; + button.titleLabel.layer.shadowOpacity = 0.3; + button.titleLabel.layer.masksToBounds = false; + button.titleLabel.layer.shouldRasterize = true; + button.frame = CGRectMake(0.0, 0.0, button.frame.size.width + 2.0, button.frame.size.height); [button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; return button; @@ -191,7 +190,7 @@ const CGFloat TGCameraModeControlVerticalInteritemSpace = 29.0f; CGFloat angle = ABS(offset / _wrapperView.frame.size.width * 0.99f); CGFloat sign = offset > 0 ? 1.0f : -1.0f; - CATransform3D transform = CATransform3DTranslate(CATransform3DIdentity, -28 * angle * angle * sign, 0.0f, 0.0f); + CATransform3D transform = CATransform3DTranslate(CATransform3DIdentity, -2 * angle * angle * sign, 0.0f, 0.0f); transform = CATransform3DRotate(transform, angle, 0.0f, sign, 0.0f); return transform; } diff --git a/submodules/LegacyComponents/Sources/TGCameraRectangleView.h b/submodules/LegacyComponents/Sources/TGCameraRectangleView.h new file mode 100644 index 0000000000..3560be793e --- /dev/null +++ b/submodules/LegacyComponents/Sources/TGCameraRectangleView.h @@ -0,0 +1,14 @@ +#import + +@class TGCameraPreviewView; +@class PGRectangle; + +@interface TGCameraRectangleView : UIView + +@property (nonatomic, weak) TGCameraPreviewView *previewView; +@property (nonatomic, assign) bool enabled; + +- (void)drawRectangle:(PGRectangle *)rectangle; + +@end + diff --git a/submodules/LegacyComponents/Sources/TGCameraRectangleView.m b/submodules/LegacyComponents/Sources/TGCameraRectangleView.m new file mode 100644 index 0000000000..bfe77c9928 --- /dev/null +++ b/submodules/LegacyComponents/Sources/TGCameraRectangleView.m @@ -0,0 +1,102 @@ +#import "TGCameraRectangleView.h" +#import "TGCameraInterfaceAssets.h" +#import "LegacyComponentsInternal.h" +#import "TGImageUtils.h" + +#import "TGCameraPreviewView.h" +#import "PGRectangleDetector.h" + +@interface TGCameraRectangleView () +{ + CAShapeLayer *_quadLayer; + + bool _clearing; +} +@end + +@implementation TGCameraRectangleView + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self != nil) { + _enabled = true; + + self.backgroundColor = [UIColor clearColor]; + self.alpha = 0.0f; + + _quadLayer = [[CAShapeLayer alloc] init]; + _quadLayer.strokeColor = [[TGCameraInterfaceAssets accentColor] colorWithAlphaComponent:0.7].CGColor; + _quadLayer.fillColor = [[TGCameraInterfaceAssets accentColor] colorWithAlphaComponent:0.45].CGColor; + _quadLayer.lineWidth = 2.0; + + [self.layer addSublayer:_quadLayer]; + } + return self; +} + +- (CGPathRef)pathForRectangle:(PGRectangle *)rectangle +{ + CGAffineTransform transform = CGAffineTransformMakeScale(self.previewView.frame.size.width, self.previewView.frame.size.height); + PGRectangle *displayRectangle = [[rectangle rotate90] transform:transform]; + + UIBezierPath *path = [[UIBezierPath alloc] init]; + [path moveToPoint:displayRectangle.topLeft]; + [path addLineToPoint:displayRectangle.topRight]; + [path addLineToPoint:displayRectangle.bottomRight]; + [path addLineToPoint:displayRectangle.bottomLeft]; + [path closePath]; + return path.CGPath; +} + +- (void)drawRectangle:(PGRectangle *)rectangle +{ + if (!_enabled) { + return; + } + + if (rectangle == nil) { + [self clear]; + return; + } + + _clearing = false; + [self.layer removeAllAnimations]; + + bool animated = _quadLayer.path != nil; + if (animated) { + CAAnimation *animation = [CABasicAnimation animationWithKeyPath:@"path"]; + animation.duration = 0.2; + [_quadLayer addAnimation:animation forKey:@"path"]; + } else { + self.transform = CGAffineTransformMakeScale(1.1, 1.1); + [UIView animateWithDuration:0.2 delay:0.0 options:UIViewAnimationOptionAllowAnimatedContent animations:^{ + self.transform = CGAffineTransformIdentity; + self.alpha = 1.0f; + } completion:nil]; + } + _quadLayer.path = [self pathForRectangle:rectangle]; +} + +- (void)clear +{ + if (_quadLayer.path == nil || _clearing) + return; + + _clearing = true; + [UIView animateWithDuration:0.2 delay:0.0 options:UIViewAnimationOptionAllowAnimatedContent animations:^{ + self.alpha = 0.0f; + } completion:^(BOOL finished) { + if (_clearing) { + _quadLayer.path = nil; + _clearing = false; + } + }]; +} + +- (void)layoutSubviews +{ + _quadLayer.frame = self.bounds; +} + +@end diff --git a/submodules/LegacyComponents/Sources/TGCameraSegmentsView.m b/submodules/LegacyComponents/Sources/TGCameraSegmentsView.m deleted file mode 100644 index 6f5ed063cf..0000000000 --- a/submodules/LegacyComponents/Sources/TGCameraSegmentsView.m +++ /dev/null @@ -1,260 +0,0 @@ -#import "TGCameraSegmentsView.h" - -#import "LegacyComponentsInternal.h" -#import "TGImageUtils.h" - -#import "TGCameraInterfaceAssets.h" - -#import - -const CGFloat TGCameraSegmentsBackgroundInset = 21.0f; -const CGFloat TGCameraSegmentsBackgroundHeight = 10.0f; -const CGFloat TGCameraSegmentsSpacing = 1.5f; -const CGFloat TGCameraSegmentsMinimumWidth = 4.0f; - -@interface TGCameraSegmentView : UIImageView - -- (void)setBlinking; -- (void)setRecording; -- (void)setCommittingWithCompletion:(void (^)(void))completion; - -@end - -@interface TGCameraSegmentsView () -{ - UIImageView *_backgroundView; - UIView *_segmentWrapper; - NSArray *_segmentViews; - - TGCameraSegmentView *_currentSegmentView; - CGFloat _currentSegment; - - TGModernButton *_deleteButton; -} -@end - -@implementation TGCameraSegmentsView - -- (instancetype)initWithFrame:(CGRect)frame -{ - self = [super initWithFrame:frame]; - if (self != nil) - { - static dispatch_once_t onceToken; - static UIImage *segmentImage = nil; - dispatch_once(&onceToken, ^ - { - UIGraphicsBeginImageContextWithOptions(CGSizeMake(4, 4), false, 0.0f); - CGContextRef context = UIGraphicsGetCurrentContext(); - CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor); - [[UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 4, 4) cornerRadius:0.5f] fill]; - segmentImage = [UIGraphicsGetImageFromCurrentImageContext() resizableImageWithCapInsets:UIEdgeInsetsMake(4, 4, 4, 4)]; - UIGraphicsEndImageContext(); - }); - - _backgroundView = [[UIImageView alloc] initWithImage:[TGComponentsImageNamed(@"CameraSegmentsBack") resizableImageWithCapInsets:UIEdgeInsetsMake(4, 4, 4, 4)]]; - [self addSubview:_backgroundView]; - - _segmentWrapper = [[UIView alloc] init]; - [_backgroundView addSubview:_segmentWrapper]; - - _currentSegmentView = [[TGCameraSegmentView alloc] initWithImage:[TGTintedImage(segmentImage, [TGCameraInterfaceAssets accentColor]) resizableImageWithCapInsets:UIEdgeInsetsMake(4, 4, 4, 4)]]; - [_segmentWrapper addSubview:_currentSegmentView]; - - _deleteButton = [[TGModernButton alloc] initWithFrame:CGRectMake(0, 0, 32, 32)]; - _deleteButton.exclusiveTouch = true; - [_deleteButton setImage:TGComponentsImageNamed(@"CameraDeleteIcon") forState:UIControlStateNormal]; - [_deleteButton addTarget:self action:@selector(deleteButtonPressed) forControlEvents:UIControlEventTouchUpInside]; - [self addSubview:_deleteButton]; - - [self setDeleteButtonHidden:true animated:false]; - } - return self; -} - -- (void)deleteButtonPressed -{ - if (self.deletePressed != nil) - self.deletePressed(); -} - -- (void)setSegments:(NSArray *)__unused segments -{ - -} - -- (void)startCurrentSegment -{ - [_currentSegmentView setRecording]; -} - -- (void)setCurrentSegment:(CGFloat)length -{ - _currentSegment = length; - [self _layoutSegmentViews]; -} - -- (void)commitCurrentSegmentWithCompletion:(void (^)(void))completion -{ - __weak TGCameraSegmentView *weakSegmentView = _currentSegmentView; - [_currentSegmentView setCommittingWithCompletion:^ - { - __strong TGCameraSegmentView *strongSegmentView = weakSegmentView; - if (strongSegmentView == nil) - return; - - _currentSegment = 0; - - if (completion != nil) - completion(); - - [strongSegmentView setBlinking]; - }]; -} - -- (void)highlightLastSegment -{ - -} - -- (void)removeLastSegment -{ - -} - -- (void)setHidden:(BOOL)hidden -{ - self.alpha = hidden ? 0.0f : 1.0f; - super.hidden = hidden; - - if (!hidden) - [_currentSegmentView setBlinking]; -} - -- (void)setHidden:(bool)hidden animated:(bool)animated delay:(NSTimeInterval)delay -{ - if (animated) - { - super.hidden = false; - - [UIView animateWithDuration:0.25f delay:delay options:UIViewAnimationOptionCurveLinear animations:^ - { - self.alpha = hidden ? 0.0f : 1.0f; - } completion:^(BOOL finished) - { - if (finished) - self.hidden = hidden; - - if (!hidden) - [_currentSegmentView setBlinking]; - }]; - } - else - { - [self setHidden:hidden]; - } -} - -- (void)setDeleteButtonHidden:(bool)hidden animated:(bool)animated -{ - if (animated) - { - _deleteButton.hidden = false; - - [UIView animateWithDuration:0.25f animations:^ - { - _deleteButton.alpha = hidden ? 0.0f : 1.0f; - } completion:^(BOOL finished) - { - if (finished) - _deleteButton.hidden = hidden; - }]; - } - else - { - _deleteButton.hidden = hidden; - _deleteButton.alpha = hidden ? 0.0f : 1.0f; - } -} - -- (void)_layoutBackgroundView -{ - CGFloat backgroundRightPadding = 0.0f; - CGFloat deleteButtonMargin = _deleteButton.frame.size.width + 9.0f; - if (!_deleteButton.hidden) - backgroundRightPadding = deleteButtonMargin; - - _backgroundView.frame = CGRectMake(TGCameraSegmentsBackgroundInset, (self.frame.size.height - TGCameraSegmentsBackgroundHeight) / 2, self.frame.size.width - TGCameraSegmentsBackgroundInset * 2 - backgroundRightPadding, TGCameraSegmentsBackgroundHeight); - _segmentWrapper.frame = CGRectMake(3, 3, self.frame.size.width - TGCameraSegmentsBackgroundInset * 2 - deleteButtonMargin, TGCameraSegmentsBackgroundHeight - 3 * 2); -} - -- (void)_layoutDeleteButton -{ - _deleteButton.frame = CGRectMake(CGRectGetMaxX(_backgroundView.frame) + 14, (self.frame.size.height - _deleteButton.frame.size.height) / 2, _deleteButton.frame.size.width, _deleteButton.frame.size.height); -} - -- (void)_layoutSegmentViews -{ - -} - -- (void)layoutSubviews -{ - [self _layoutBackgroundView]; - [self _layoutDeleteButton]; -} - -@end - -@interface TGCameraSegmentView () -{ - -} -@end - -@implementation TGCameraSegmentView - -- (instancetype)initWithImage:(UIImage *)image -{ - self = [super initWithImage:image]; - if (self != nil) - { - - } - return self; -} - -- (void)setBlinking -{ - [self _playBlinkAnimation]; -} - -- (void)setRecording -{ - [self _stopBlinkAnimation]; -} - -- (void)setCommittingWithCompletion:(void (^)(void))__unused completion -{ - -} - -- (void)_playBlinkAnimation -{ - CAKeyframeAnimation *blinkAnim = [CAKeyframeAnimation animationWithKeyPath:@"opacity"]; - blinkAnim.duration = 1.2f; - blinkAnim.autoreverses = false; - blinkAnim.fillMode = kCAFillModeForwards; - blinkAnim.repeatCount = HUGE_VALF; - blinkAnim.keyTimes = @[ @0.0f, @0.4f, @0.5f, @0.9f, @1.0f ]; - blinkAnim.values = @[ @1.0f, @1.0f, @0.0f, @0.0f, @1.0f ]; - - [self.layer addAnimation:blinkAnim forKey:@"opacity"]; -} - -- (void)_stopBlinkAnimation -{ - [self.layer removeAllAnimations]; -} - -@end diff --git a/submodules/LegacyComponents/Sources/TGCameraShutterButton.m b/submodules/LegacyComponents/Sources/TGCameraShutterButton.m index 158bbc6718..4bdf177f9c 100644 --- a/submodules/LegacyComponents/Sources/TGCameraShutterButton.m +++ b/submodules/LegacyComponents/Sources/TGCameraShutterButton.m @@ -1,4 +1,5 @@ #import "TGCameraShutterButton.h" +#import "TGImageUtils.h" #import @@ -36,7 +37,7 @@ UIGraphicsBeginImageContextWithOptions(CGSizeMake(frame.size.width, frame.size.height), false, 0.0f); CGContextRef context = UIGraphicsGetCurrentContext(); - CGFloat thickness = (padding < 8.0f) ? 5.0f : 6.0f; + CGFloat thickness = 4.0 - TGScreenPixel; CGContextSetStrokeColorWithColor(context, [TGCameraInterfaceAssets normalColor].CGColor); CGContextSetLineWidth(context, thickness); @@ -70,17 +71,17 @@ - (CGFloat)innerPadding { if (self.frame.size.width == 50.0f) - return 7.0f; + return 6.0f; - return 8.0f; + return 6.0f; } - (CGFloat)squarePadding { if (self.frame.size.width == 50.0f) - return 15.0f; + return 19.0f; - return 19.0f; + return 23.0f; } - (void)setButtonMode:(TGCameraShutterButtonMode)mode animated:(bool)animated diff --git a/submodules/LegacyComponents/Sources/TGCameraTimeCodeView.m b/submodules/LegacyComponents/Sources/TGCameraTimeCodeView.m index 8a6f5ad331..1fbea1fea1 100644 --- a/submodules/LegacyComponents/Sources/TGCameraTimeCodeView.m +++ b/submodules/LegacyComponents/Sources/TGCameraTimeCodeView.m @@ -7,7 +7,7 @@ @interface TGCameraTimeCodeView () { - UIImageView *_dotView; + UIView *_backgroundView; UILabel *_timeLabel; NSUInteger _recordingDurationSeconds; @@ -22,29 +22,17 @@ self = [super initWithFrame:frame]; if (self != nil) { - static UIImage *dotImage = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^ - { - UIGraphicsBeginImageContextWithOptions(CGSizeMake(6, 6), false, 0.0f); - CGContextRef context = UIGraphicsGetCurrentContext(); - - CGContextSetFillColorWithColor(context, [TGCameraInterfaceAssets redColor].CGColor); - CGContextFillEllipseInRect(context, CGRectMake(0, 0, 6, 6)); - - dotImage = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - }); - - _dotView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 7, 6, 6)]; - _dotView.layer.opacity = 0.0f; - _dotView.image = dotImage; - [self addSubview:_dotView]; + _backgroundView = [[UIView alloc] init]; + _backgroundView.clipsToBounds = true; + _backgroundView.layer.cornerRadius = 4.0; + _backgroundView.backgroundColor = [TGCameraInterfaceAssets redColor]; + _backgroundView.alpha = 0.0; + [self addSubview:_backgroundView]; _timeLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; _timeLabel.backgroundColor = [UIColor clearColor]; - _timeLabel.font = [TGCameraInterfaceAssets normalFontOfSize:21]; - _timeLabel.text = @"00:00:00"; + _timeLabel.font = [TGCameraInterfaceAssets regularFontOfSize:21]; + _timeLabel.text = @"00:00"; _timeLabel.textAlignment = NSTextAlignmentCenter; _timeLabel.textColor = [TGCameraInterfaceAssets normalColor]; [self addSubview:_timeLabel]; @@ -59,7 +47,18 @@ - (void)_updateRecordingTime { - _timeLabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d", (int)(_recordingDurationSeconds / 3600), (int)(_recordingDurationSeconds / 60) % 60, (int)(_recordingDurationSeconds % 60)]; + if (_recordingDurationSeconds > 60 * 60) { + _timeLabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d", (int)(_recordingDurationSeconds / 3600), (int)(_recordingDurationSeconds / 60) % 60, (int)(_recordingDurationSeconds % 60)]; + } else { + _timeLabel.text = [NSString stringWithFormat:@"%02d:%02d", (int)(_recordingDurationSeconds / 60) % 60, (int)(_recordingDurationSeconds % 60)]; + } + [_timeLabel sizeToFit]; + + CGFloat inset = 8.0f; + CGFloat backgroundWidth = _timeLabel.frame.size.width + inset * 2.0; + _backgroundView.frame = CGRectMake(floor((self.frame.size.width - backgroundWidth) / 2.0), 0.0, backgroundWidth, 28.0); + + _timeLabel.frame = CGRectMake(floor((self.frame.size.width - _timeLabel.frame.size.width) / 2.0), floor((28 - _timeLabel.frame.size.height) / 2.0), _timeLabel.frame.size.width, _timeLabel.frame.size.height); } - (void)startRecording @@ -67,22 +66,18 @@ [self reset]; _recordingTimer = [TGTimerTarget scheduledMainThreadTimerWithTarget:self action:@selector(recordingTimerEvent) interval:1.0 repeat:false]; - - [self playBlinkAnimation]; } - (void)stopRecording { [_recordingTimer invalidate]; _recordingTimer = nil; - - [self stopBlinkAnimation]; } - (void)reset { - _timeLabel.text = @"00:00:00"; _recordingDurationSeconds = 0; + [self _updateRecordingTime]; } - (void)recordingTimerEvent @@ -108,24 +103,6 @@ } } -- (void)playBlinkAnimation -{ - CAKeyframeAnimation *blinkAnim = [CAKeyframeAnimation animationWithKeyPath:@"opacity"]; - blinkAnim.duration = 0.75f; - blinkAnim.autoreverses = false; - blinkAnim.fillMode = kCAFillModeForwards; - blinkAnim.repeatCount = HUGE_VALF; - blinkAnim.keyTimes = @[ @0.0f, @0.4f, @0.5f, @0.9f, @1.0f ]; - blinkAnim.values = @[ @1.0f, @1.0f, @0.0f, @0.0f, @1.0f ]; - - [_dotView.layer addAnimation:blinkAnim forKey:@"opacity"]; -} - -- (void)stopBlinkAnimation -{ - [_dotView.layer removeAllAnimations]; -} - - (void)setHidden:(BOOL)hidden { self.alpha = hidden ? 0.0f : 1.0f; @@ -156,7 +133,7 @@ - (void)layoutSubviews { - _dotView.frame = CGRectMake(CGFloor(self.frame.size.width / 2 - 48), 7, 6, 6); + [self _updateRecordingTime]; } @end diff --git a/submodules/LegacyComponents/Sources/TGCameraToastView.h b/submodules/LegacyComponents/Sources/TGCameraToastView.h new file mode 100644 index 0000000000..d5870d620e --- /dev/null +++ b/submodules/LegacyComponents/Sources/TGCameraToastView.h @@ -0,0 +1,7 @@ +#import + +@interface TGCameraToastView : UIView + +- (void)setText:(NSString *)text animated:(bool)animated; + +@end diff --git a/submodules/LegacyComponents/Sources/TGCameraToastView.m b/submodules/LegacyComponents/Sources/TGCameraToastView.m new file mode 100644 index 0000000000..6bb98b597e --- /dev/null +++ b/submodules/LegacyComponents/Sources/TGCameraToastView.m @@ -0,0 +1,70 @@ +#import "TGCameraToastView.h" +#import "TGCameraInterfaceAssets.h" +#import "TGFont.h" + +@implementation TGCameraToastView +{ + UIView *_backgroundView; + UILabel *_label; +} + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self != nil) + { + _backgroundView = [[UIView alloc] init]; + _backgroundView.alpha = 0.0f; + _backgroundView.clipsToBounds = true; + _backgroundView.layer.cornerRadius = 5.0f; + _backgroundView.backgroundColor = [TGCameraInterfaceAssets transparentPanelBackgroundColor]; + [self addSubview:_backgroundView]; + + _label = [[UILabel alloc] init]; + _label.alpha = 0.0f; + _label.textColor = [UIColor whiteColor]; + _label.font = [TGFont systemFontOfSize:17.0f]; + [self addSubview:_label]; + } + return self; +} + +- (void)setText:(NSString *)text animated:(bool)animated +{ + if (text.length == 0) + { + if (animated) { + [UIView animateWithDuration:0.2 animations:^{ + _backgroundView.alpha = 0.0f; + _label.alpha = 0.0f; + }]; + } else { + _backgroundView.alpha = 0.0f; + _label.alpha = 0.0f; + } + return; + } + + if (animated) { + [UIView animateWithDuration:0.2 animations:^{ + _backgroundView.alpha = 1.0f; + _label.alpha = 1.0f; + }]; + } else { + _backgroundView.alpha = 1.0f; + _label.alpha = 1.0f; + } + + _label.text = text; + [_label sizeToFit]; + + CGFloat inset = 8.0f; + CGFloat backgroundWidth = _label.frame.size.width + inset * 2.0; + _backgroundView.frame = CGRectMake(floor((self.frame.size.width - backgroundWidth) / 2.0), 0.0, backgroundWidth, 32.0); + + _label.frame = CGRectMake(floor((self.frame.size.width - _label.frame.size.width) / 2.0), floor((32 - _label.frame.size.height) / 2.0), _label.frame.size.width, _label.frame.size.height); + + [self setNeedsLayout]; +} + +@end diff --git a/submodules/LegacyComponents/Sources/TGFont.mm b/submodules/LegacyComponents/Sources/TGFont.mm index 9c66d82e67..5d1ccc575e 100644 --- a/submodules/LegacyComponents/Sources/TGFont.mm +++ b/submodules/LegacyComponents/Sources/TGFont.mm @@ -117,7 +117,7 @@ UIFont *TGFixedSystemFontOfSize(CGFloat size) + (UIFont *)roundedFontOfSize:(CGFloat)size { if (@available(iOSApplicationExtension 13.0, iOS 13.0, *)) { - UIFontDescriptor *descriptor = [UIFont boldSystemFontOfSize: size].fontDescriptor; + UIFontDescriptor *descriptor = [UIFont boldSystemFontOfSize:size].fontDescriptor; descriptor = [descriptor fontDescriptorWithDesign:UIFontDescriptorSystemDesignRounded]; return [UIFont fontWithDescriptor:descriptor size:size]; } else { diff --git a/submodules/LegacyComponents/Sources/TGMediaVideoConverter.m b/submodules/LegacyComponents/Sources/TGMediaVideoConverter.m index 65b20a3dd2..f0afb18ed1 100644 --- a/submodules/LegacyComponents/Sources/TGMediaVideoConverter.m +++ b/submodules/LegacyComponents/Sources/TGMediaVideoConverter.m @@ -1266,7 +1266,7 @@ static CGFloat progressOfSampleBufferInTimeRange(CMSampleBufferRef sampleBuffer, return (CGSize){ 1920.0f, 1920.0f }; case TGMediaVideoConversionPresetVideoMessage: - return (CGSize){ 240.0f, 240.0f }; + return (CGSize){ 384.0f, 384.0f }; case TGMediaVideoConversionPresetProfileLow: return (CGSize){ 720.0f, 720.0f }; @@ -1375,7 +1375,7 @@ static CGFloat progressOfSampleBufferInTimeRange(CMSampleBufferRef sampleBuffer, return 4000; case TGMediaVideoConversionPresetVideoMessage: - return 300; + return 1000; case TGMediaVideoConversionPresetProfile: return 1500; diff --git a/submodules/LegacyComponents/Sources/TGPhotoAvatarCropController.h b/submodules/LegacyComponents/Sources/TGPhotoAvatarCropController.h deleted file mode 100644 index 50036f64bf..0000000000 --- a/submodules/LegacyComponents/Sources/TGPhotoAvatarCropController.h +++ /dev/null @@ -1,26 +0,0 @@ -#import "TGPhotoEditorTabController.h" - -@class PGPhotoEditor; -@class TGPhotoEditorPreviewView; -@class AVPlayer; - -@interface TGPhotoAvatarCropController : TGPhotoEditorTabController - -@property (nonatomic, readonly) UIView *transitionParentView; - -@property (nonatomic, assign) bool switching; -@property (nonatomic, assign) bool skipTransitionIn; -@property (nonatomic, assign) bool fromCamera; - -@property (nonatomic, copy) void (^finishedPhotoProcessing)(void); - -- (instancetype)initWithContext:(id)context photoEditor:(PGPhotoEditor *)photoEditor previewView:(TGPhotoEditorPreviewView *)previewView; - -- (void)setImage:(UIImage *)image; -- (void)setPlayer:(AVPlayer *)player; -- (void)setSnapshotImage:(UIImage *)snapshotImage; -- (void)setSnapshotView:(UIView *)snapshotView; - -- (void)_finishedTransitionIn; - -@end diff --git a/submodules/LegacyComponents/Sources/TGPhotoAvatarCropController.m b/submodules/LegacyComponents/Sources/TGPhotoAvatarCropController.m deleted file mode 100644 index c1e91bcd7d..0000000000 --- a/submodules/LegacyComponents/Sources/TGPhotoAvatarCropController.m +++ /dev/null @@ -1,707 +0,0 @@ -#import "TGPhotoAvatarCropController.h" - -#import "LegacyComponentsInternal.h" - -#import "TGPhotoEditorInterfaceAssets.h" -#import - -#import -#import - -#import "PGPhotoEditor.h" -#import "TGPhotoEditorPreviewView.h" - -#import "TGPhotoAvatarCropView.h" -#import - -#import "TGPhotoPaintController.h" - -const CGFloat TGPhotoAvatarCropButtonsWrapperSize = 61.0f; - -@interface TGPhotoAvatarCropController () -{ - UIView *_wrapperView; - - UIView *_buttonsWrapperView; - TGModernButton *_rotateButton; - TGModernButton *_mirrorButton; - TGModernButton *_resetButton; - - TGPhotoAvatarCropView *_cropView; - - UIView *_snapshotView; - UIImage *_snapshotImage; - - bool _appeared; - UIImage *_imagePendingLoad; - - dispatch_semaphore_t _waitSemaphore; -} - -@property (nonatomic, weak) PGPhotoEditor *photoEditor; -@property (nonatomic, weak) TGPhotoEditorPreviewView *previewView; - -@end - -@implementation TGPhotoAvatarCropController - -- (instancetype)initWithContext:(id)context photoEditor:(PGPhotoEditor *)photoEditor previewView:(TGPhotoEditorPreviewView *)previewView -{ - self = [super initWithContext:context]; - if (self != nil) - { - self.photoEditor = photoEditor; - self.previewView = previewView; - - _waitSemaphore = dispatch_semaphore_create(0); - } - return self; -} - -- (void)loadView -{ - [super loadView]; - - __weak TGPhotoAvatarCropController *weakSelf = self; - void(^interactionBegan)(void) = ^ - { - __strong TGPhotoAvatarCropController *strongSelf = weakSelf; - if (strongSelf == nil) - return; - - self.controlVideoPlayback(false); - }; - void(^interactionEnded)(void) = ^ - { - __strong TGPhotoAvatarCropController *strongSelf = weakSelf; - if (strongSelf == nil) - return; - - if ([strongSelf shouldAutorotate]) - [TGViewController attemptAutorotation]; - - self.controlVideoPlayback(true); - }; - - _wrapperView = [[UIView alloc] initWithFrame:self.view.bounds]; - _wrapperView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - [self.view addSubview:_wrapperView]; - - PGPhotoEditor *photoEditor = self.photoEditor; - _cropView = [[TGPhotoAvatarCropView alloc] initWithOriginalSize:photoEditor.originalSize screenSize:[self referenceViewSize] fullPreviewView:nil fullPaintingView:nil fullEntitiesView:nil]; - [_cropView setCropRect:photoEditor.cropRect]; - [_cropView setCropOrientation:photoEditor.cropOrientation]; - [_cropView setCropMirrored:photoEditor.cropMirrored]; - _cropView.croppingChanged = ^ - { - __strong TGPhotoAvatarCropController *strongSelf = weakSelf; - if (strongSelf == nil) - return; - - photoEditor.cropRect = strongSelf->_cropView.cropRect; - photoEditor.cropOrientation = strongSelf->_cropView.cropOrientation; - photoEditor.cropMirrored = strongSelf->_cropView.cropMirrored; - }; - if (_snapshotView != nil) - { - [_cropView setSnapshotView:_snapshotView]; - _snapshotView = nil; - } - else if (_snapshotImage != nil) - { - [_cropView setSnapshotImage:_snapshotImage]; - _snapshotImage = nil; - } - _cropView.interactionBegan = interactionBegan; - _cropView.interactionEnded = interactionEnded; - [_wrapperView addSubview:_cropView]; - - _buttonsWrapperView = [[UIView alloc] initWithFrame:CGRectZero]; - [_wrapperView addSubview:_buttonsWrapperView]; - - _rotateButton = [[TGModernButton alloc] initWithFrame:CGRectMake(0, 0, 36, 36)]; - _rotateButton.exclusiveTouch = true; - _rotateButton.hitTestEdgeInsets = UIEdgeInsetsMake(-10, -10, -10, -10); - [_rotateButton addTarget:self action:@selector(rotate) forControlEvents:UIControlEventTouchUpInside]; - [_rotateButton setImage:TGComponentsImageNamed(@"PhotoEditorRotateIcon") forState:UIControlStateNormal]; -// [_buttonsWrapperView addSubview:_rotateButton]; - - _mirrorButton = [[TGModernButton alloc] initWithFrame:CGRectMake(0, 0, 36, 36)]; - _mirrorButton.exclusiveTouch = true; - _mirrorButton.imageEdgeInsets = UIEdgeInsetsMake(4.0f, 0.0f, 0.0f, 0.0f); - _mirrorButton.hitTestEdgeInsets = UIEdgeInsetsMake(-10, -10, -10, -10); - [_mirrorButton addTarget:self action:@selector(mirror) forControlEvents:UIControlEventTouchUpInside]; - [_mirrorButton setImage:TGComponentsImageNamed(@"PhotoEditorMirrorIcon") forState:UIControlStateNormal]; -// [_buttonsWrapperView addSubview:_mirrorButton]; - - _resetButton = [[TGModernButton alloc] init]; - _resetButton.contentEdgeInsets = UIEdgeInsetsMake(0.0f, 8.0f, 0.0f, 8.0f); - _resetButton.exclusiveTouch = true; - _resetButton.hitTestEdgeInsets = UIEdgeInsetsMake(-10, -10, -10, -10); - _resetButton.titleLabel.font = [TGFont systemFontOfSize:13]; - [_resetButton addTarget:self action:@selector(reset) forControlEvents:UIControlEventTouchUpInside]; - [_resetButton setTitle:TGLocalized(@"PhotoEditor.CropReset") forState:UIControlStateNormal]; - [_resetButton setTitleColor:[UIColor whiteColor]]; - [_resetButton sizeToFit]; - _resetButton.frame = CGRectMake(0, 0, _resetButton.frame.size.width, 24); - [_buttonsWrapperView addSubview:_resetButton]; -} - -- (void)viewWillAppear:(BOOL)animated -{ - [super viewWillAppear:animated]; - - if (_appeared) - return; - - if (self.initialAppearance && self.skipTransitionIn) - { - [self _finishedTransitionInWithView:nil]; - if (self.finishedTransitionIn != nil) - { - self.finishedTransitionIn(); - self.finishedTransitionIn = nil; - } - } - else - { - [self transitionIn]; - } -} - -- (void)viewDidAppear:(BOOL)animated -{ - [super viewDidAppear:animated]; - - _appeared = true; - - if (_imagePendingLoad != nil) - [_cropView setImage:_imagePendingLoad]; -} - -- (BOOL)shouldAutorotate -{ - return (!_cropView.isTracking && [super shouldAutorotate]); -} - -- (bool)isDismissAllowed -{ - return _appeared && !_cropView.isTracking && !_cropView.isAnimating; -} - -#pragma mark - - -- (void)setImage:(UIImage *)image -{ - if (_dismissing && !_switching) - return; - - if (_waitSemaphore != nil) - dispatch_semaphore_signal(_waitSemaphore); - - if (!_appeared) - { - _imagePendingLoad = image; - return; - } - - [_cropView setImage:image]; -} - -- (void)setPlayer:(AVPlayer *)player -{ -} - -- (void)setSnapshotImage:(UIImage *)snapshotImage -{ - _snapshotImage = snapshotImage; - [_cropView _replaceSnapshotImage:snapshotImage]; -} - -- (void)setSnapshotView:(UIView *)snapshotView -{ - _snapshotView = snapshotView; -} - -#pragma mark - Transition - -- (void)prepareTransitionInWithReferenceView:(UIView *)referenceView referenceFrame:(CGRect)referenceFrame parentView:(UIView *)parentView noTransitionView:(bool)noTransitionView -{ - [super prepareTransitionInWithReferenceView:referenceView referenceFrame:referenceFrame parentView:parentView noTransitionView:noTransitionView]; - [self.view insertSubview:_transitionView belowSubview:_wrapperView]; -} - -- (void)transitionIn -{ - _buttonsWrapperView.alpha = 0.0f; - - [UIView animateWithDuration:0.3f animations:^ - { - _buttonsWrapperView.alpha = 1.0f; - }]; - - [_cropView animateTransitionIn]; -} - -- (void)animateTransitionIn -{ - if ([_transitionView isKindOfClass:[TGPhotoEditorPreviewView class]]) - [(TGPhotoEditorPreviewView *)_transitionView performTransitionToCropAnimated:true]; - - [super animateTransitionIn]; -} - -- (void)_finishedTransitionInWithView:(UIView *)transitionView -{ - if ([transitionView isKindOfClass:[TGPhotoEditorPreviewView class]]) { - - } else { - [transitionView removeFromSuperview]; - } - - _buttonsWrapperView.alpha = 1.0f; - [_cropView transitionInFinishedFromCamera:(self.fromCamera && self.initialAppearance)]; -} - -- (void)_finishedTransitionIn -{ -// [_cropView animateTransitionIn]; - [_cropView transitionInFinishedFromCamera:true]; - - self.finishedTransitionIn(); - self.finishedTransitionIn = nil; -} - -- (void)prepareForCustomTransitionOut -{ - [_cropView hideImageForCustomTransition]; - [_cropView animateTransitionOutSwitching:false]; - - [UIView animateWithDuration:0.3f animations:^ - { - _buttonsWrapperView.alpha = 0.0f; - } completion:nil]; -} - -- (void)transitionOutSwitching:(bool)switching completion:(void (^)(void))completion -{ - _dismissing = true; - - [_cropView animateTransitionOutSwitching:switching]; - - if (switching) - { - _switching = true; - - TGPhotoEditorPreviewView *previewView = self.previewView; - [previewView performTransitionToCropAnimated:false]; - [previewView setSnapshotView:[_cropView cropSnapshotView]]; - - PGPhotoEditor *photoEditor = self.photoEditor; - - if (self.item.isVideo) { - if (!previewView.hidden) - [previewView performTransitionInWithCompletion:nil]; - else - [previewView setNeedsTransitionIn]; - - if (self.finishedPhotoProcessing != nil) - self.finishedPhotoProcessing(); - } else { - UIImage *image = _cropView.currentImage; - CGRect cropRect = _cropView.cropRect; - UIImageOrientation cropOrientation = _cropView.cropOrientation; - bool cropMirrored = _cropView.cropMirrored; - CGSize originalSize = _cropView.originalSize; - - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^ - { - if (dispatch_semaphore_wait(_waitSemaphore, dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)))) - { - TGLegacyLog(@"Photo crop on switching failed"); - return; - } - - UIImage *croppedImage = TGPhotoEditorCrop(image, nil, cropOrientation, 0.0f, cropRect, false, TGPhotoEditorScreenImageMaxSize(), originalSize, true); - [photoEditor setImage:croppedImage forCropRect:cropRect cropRotation:0.0f cropOrientation:cropOrientation cropMirrored:cropMirrored fullSize:false]; - - [photoEditor processAnimated:false completion:^ - { - TGDispatchOnMainThread(^ - { - [previewView setSnapshotImage:croppedImage]; - - if (!previewView.hidden) - [previewView performTransitionInWithCompletion:nil]; - else - [previewView setNeedsTransitionIn]; - }); - }]; - - if (self.finishedPhotoProcessing != nil) - self.finishedPhotoProcessing(); - }); - } - - UIInterfaceOrientation orientation = self.effectiveOrientation; - - CGRect cropRectFrame = [_cropView cropRectFrameForView:self.view]; - CGSize referenceSize = [self referenceViewSizeForOrientation:orientation]; - CGRect referenceBounds = CGRectMake(0, 0, referenceSize.width, referenceSize.height); - CGRect containerFrame = [TGPhotoEditorTabController photoContainerFrameForParentViewFrame:referenceBounds toolbarLandscapeSize:self.toolbarLandscapeSize orientation:orientation panelSize:TGPhotoEditorPanelSize hasOnScreenNavigation:self.hasOnScreenNavigation]; - -// if (self.switchingToTab == TGPhotoEditorPreviewTab) -// { -// containerFrame = [TGPhotoEditorTabController photoContainerFrameForParentViewFrame:referenceBounds toolbarLandscapeSize:self.toolbarLandscapeSize orientation:orientation panelSize:0 hasOnScreenNavigation:self.hasOnScreenNavigation]; -// } -// else if (self.switchingToTab == TGPhotoEditorPaintTab) -// { -// containerFrame = [TGPhotoPaintController photoContainerFrameForParentViewFrame:referenceBounds toolbarLandscapeSize:self.toolbarLandscapeSize orientation:orientation panelSize:TGPhotoPaintTopPanelSize + TGPhotoPaintBottomPanelSize hasOnScreenNavigation:self.hasOnScreenNavigation]; -// } - - CGSize fittedSize = TGScaleToSize(cropRectFrame.size, containerFrame.size); - CGRect targetFrame = CGRectMake(containerFrame.origin.x + (containerFrame.size.width - fittedSize.width) / 2, - containerFrame.origin.y + (containerFrame.size.height - fittedSize.height) / 2, - fittedSize.width, - fittedSize.height); - - UIView *snapshotView = [_cropView cropSnapshotView]; - snapshotView.alpha = 0.0f; - snapshotView.frame = cropRectFrame; - [self.view addSubview:snapshotView]; - - CGRect targetCropViewFrame = [self.view convertRect:targetFrame toView:_wrapperView]; - - if (!self.item.isVideo) { - _previewView.hidden = true; - } - - [UIView animateWithDuration:0.3f delay:0.0f options:UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionLayoutSubviews animations:^ - { - snapshotView.frame = targetFrame; - if (self.item.isVideo) { - _cropView.alpha = 0.0f; - } else { - snapshotView.alpha = 1.0f; - } - _cropView.frame = targetCropViewFrame; - [_cropView invalidateCropRect]; - } completion:^(__unused BOOL finished) - { - _previewView.hidden = false; - if (self.finishedTransitionOut != nil) - self.finishedTransitionOut(); - }]; - } - - [UIView animateWithDuration:0.3f animations:^ - { - _buttonsWrapperView.alpha = 0.0f; - } completion:^(__unused BOOL finished) - { - if (completion != nil) - completion(); - }]; -} - -- (void)transitionOutSaving:(bool)__unused saving completion:(void (^)(void))completion -{ - CGRect referenceFrame = [_cropView contentFrameForView:self.view]; - - CGSize referenceSize = [self referenceViewSize]; - - UIImageView *snapshotView = [[UIImageView alloc] initWithImage:_cropView.image]; - snapshotView.frame = [_wrapperView convertRect:referenceFrame fromView:nil]; - snapshotView.alpha = 0.0f; - [_wrapperView insertSubview:snapshotView belowSubview:_cropView]; - - [self transitionOutSwitching:false completion:nil]; - - if (self.intent & TGPhotoEditorControllerFromCameraIntent && self.intent & (TGPhotoEditorControllerAvatarIntent | TGPhotoEditorControllerSignupAvatarIntent)) - { - if (self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft) - { - referenceFrame = CGRectMake(referenceSize.height - referenceFrame.size.height - referenceFrame.origin.y, - referenceSize.width - referenceFrame.size.width - referenceFrame.origin.x, - referenceFrame.size.height, referenceFrame.size.width); - } - else if (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight) - { - referenceFrame = CGRectMake(referenceFrame.origin.y, - referenceFrame.origin.x, - referenceFrame.size.height, referenceFrame.size.width); - } - } - - UIView *referenceView = nil; - UIView *parentView = nil; - if (self.beginTransitionOut != nil) - referenceView = self.beginTransitionOut(&referenceFrame, &parentView); - - if (self.intent & TGPhotoEditorControllerFromCameraIntent && self.intent & (TGPhotoEditorControllerAvatarIntent | TGPhotoEditorControllerSignupAvatarIntent)) - { - if (self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft) - { - referenceFrame = CGRectMake(referenceSize.width - referenceFrame.size.height - referenceFrame.origin.y, - referenceFrame.origin.x, - referenceFrame.size.height, referenceFrame.size.width); - } - else if (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight) - { - referenceFrame = CGRectMake(referenceFrame.origin.y, - referenceSize.height - referenceFrame.size.width - referenceFrame.origin.x, - referenceFrame.size.height, referenceFrame.size.width); - } - } - - POPSpringAnimation *animation = [TGPhotoEditorAnimation prepareTransitionAnimationForPropertyNamed:kPOPViewFrame]; - animation.fromValue = [NSValue valueWithCGRect:snapshotView.frame]; - animation.toValue = [NSValue valueWithCGRect:[_wrapperView convertRect:referenceFrame fromView:nil]]; - - POPSpringAnimation *alphaAnimation = [TGPhotoEditorAnimation prepareTransitionAnimationForPropertyNamed:kPOPViewAlpha]; - alphaAnimation.fromValue = @(snapshotView.alpha); - alphaAnimation.toValue = @(0.0f); - - [TGPhotoEditorAnimation performBlock:^(__unused bool allFinished) - { - [snapshotView removeFromSuperview]; - - if (completion != nil) - completion(); - } whenCompletedAllAnimations:@[ animation, alphaAnimation ]]; - - [snapshotView pop_addAnimation:animation forKey:@"frame"]; - [snapshotView pop_addAnimation:alphaAnimation forKey:@"alpha"]; -} - -- (CGRect)_targetFrameForTransitionInFromFrame:(CGRect)fromFrame -{ - CGSize referenceSize = [self referenceViewSize]; - UIInterfaceOrientation orientation = self.effectiveOrientation; - - CGRect containerFrame = [TGPhotoEditorTabController photoContainerFrameForParentViewFrame:CGRectMake(0, 0, referenceSize.width, referenceSize.height) toolbarLandscapeSize:self.toolbarLandscapeSize orientation:orientation panelSize:0.0f hasOnScreenNavigation:self.hasOnScreenNavigation]; - - CGRect targetFrame = CGRectZero; - - CGFloat shortSide = MIN(referenceSize.width, referenceSize.height); - CGFloat diameter = shortSide - [TGPhotoAvatarCropView areaInsetSize].width * 2; - if (self.initialAppearance && (self.fromCamera || !self.skipTransitionIn)) - { - CGSize referenceSize = fromFrame.size; - if ([_transitionView isKindOfClass:[UIImageView class]]) - referenceSize = ((UIImageView *)_transitionView).image.size; - - CGSize fittedSize = TGScaleToFill(referenceSize, CGSizeMake(diameter, diameter)); - - targetFrame = CGRectMake(containerFrame.origin.x + (containerFrame.size.width - fittedSize.width) / 2, - containerFrame.origin.y + (containerFrame.size.height - fittedSize.height) / 2, - fittedSize.width, fittedSize.height); - } - else - { - targetFrame = CGRectMake(containerFrame.origin.x + (containerFrame.size.width - diameter) / 2, - containerFrame.origin.y + (containerFrame.size.height - diameter) / 2, - diameter, diameter); - } - - return targetFrame; -} - -- (CGRect)transitionOutReferenceFrame -{ - return [_cropView cropRectFrameForView:self.view]; -} - -- (UIView *)transitionOutReferenceView -{ - return [_cropView cropSnapshotView]; -} - -- (id)currentResultRepresentation -{ - return [_cropView cropSnapshotView]; -} - -#pragma mark - Actions - -- (void)rotate -{ - [_cropView rotate90DegreesCCWAnimated:true]; -} - -- (void)mirror -{ - [_cropView mirror]; -} - -- (void)reset -{ - [_cropView resetAnimated:true]; -} - -#pragma mark - Layout - -- (void)viewWillLayoutSubviews -{ - [super viewWillLayoutSubviews]; - - [self updateLayout:[[LegacyComponentsGlobals provider] applicationStatusBarOrientation]]; -} - -- (void)updateLayout:(UIInterfaceOrientation)orientation -{ - if ([self inFormSheet] || [UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) - { - _resetButton.hidden = true; - } - - orientation = [self effectiveOrientation:orientation]; - - CGSize referenceSize = [self referenceViewSize]; - - if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) - [_cropView updateCircleImageWithReferenceSize:referenceSize]; - - CGFloat screenSide = MAX(referenceSize.width, referenceSize.height) + 2 * TGPhotoEditorPanelSize; - _wrapperView.frame = CGRectMake((referenceSize.width - screenSide) / 2, (referenceSize.height - screenSide) / 2, screenSide, screenSide); - - bool hasOnScreenNavigation = false; - if (iosMajorVersion() >= 11) - hasOnScreenNavigation = (self.viewLoaded && self.view.safeAreaInsets.bottom > FLT_EPSILON) || self.context.safeAreaInset.bottom > FLT_EPSILON; - - UIEdgeInsets safeAreaInset = [TGViewController safeAreaInsetForOrientation:orientation hasOnScreenNavigation:hasOnScreenNavigation]; - UIEdgeInsets screenEdges = UIEdgeInsetsMake((screenSide - self.view.frame.size.height) / 2, (screenSide - self.view.frame.size.width) / 2, (screenSide + self.view.frame.size.height) / 2, (screenSide + self.view.frame.size.width) / 2); - - UIEdgeInsets initialScreenEdges = screenEdges; - screenEdges.top += safeAreaInset.top; - screenEdges.left += safeAreaInset.left; - screenEdges.bottom -= safeAreaInset.bottom; - screenEdges.right -= safeAreaInset.right; - - switch (orientation) - { - case UIInterfaceOrientationLandscapeLeft: - { - [UIView performWithoutAnimation:^ - { - _buttonsWrapperView.frame = CGRectMake(screenEdges.left + self.toolbarLandscapeSize, - screenEdges.top, - TGPhotoAvatarCropButtonsWrapperSize, - referenceSize.height); - - _rotateButton.frame = CGRectMake(25 + 2.0f, 10, _rotateButton.frame.size.width, _rotateButton.frame.size.height); - _mirrorButton.frame = CGRectMake(25, 60, _mirrorButton.frame.size.width, _mirrorButton.frame.size.height); - - _resetButton.transform = CGAffineTransformIdentity; - [_resetButton sizeToFit]; - _resetButton.frame = CGRectMake(0, 0, _resetButton.frame.size.width, 24); - - CGFloat xOrigin = 0; - if (_resetButton.frame.size.width > _buttonsWrapperView.frame.size.width) - { - _resetButton.transform = CGAffineTransformMakeRotation((CGFloat)M_PI_2); - xOrigin = 12; - } - - _resetButton.frame = CGRectMake(_buttonsWrapperView.frame.size.width - _resetButton.frame.size.width - xOrigin, - (_buttonsWrapperView.frame.size.height - _resetButton.frame.size.height) / 2, - _resetButton.frame.size.width, - _resetButton.frame.size.height); - }]; - } - break; - - case UIInterfaceOrientationLandscapeRight: - { - [UIView performWithoutAnimation:^ - { - _buttonsWrapperView.frame = CGRectMake(screenEdges.right - self.toolbarLandscapeSize - TGPhotoAvatarCropButtonsWrapperSize, - screenEdges.top, - TGPhotoAvatarCropButtonsWrapperSize, - referenceSize.height); - - _rotateButton.frame = CGRectMake(_buttonsWrapperView.frame.size.width - _rotateButton.frame.size.width - 25 + 2.0f, 10, _rotateButton.frame.size.width, _rotateButton.frame.size.height); - _mirrorButton.frame = CGRectMake(_buttonsWrapperView.frame.size.width - _mirrorButton.frame.size.width - 25, 60, _mirrorButton.frame.size.width, _mirrorButton.frame.size.height); - - _resetButton.transform = CGAffineTransformIdentity; - [_resetButton sizeToFit]; - CGSize resetButtonSize = _resetButton.frame.size; - CGFloat xOrigin = 0; - if (resetButtonSize.width > _buttonsWrapperView.frame.size.width) - { - _resetButton.transform = CGAffineTransformMakeRotation((CGFloat)-M_PI_2); - xOrigin = 12; - } - - _resetButton.frame = CGRectMake(xOrigin, - (_buttonsWrapperView.frame.size.height - _resetButton.frame.size.height) / 2, - _resetButton.frame.size.width, - _resetButton.frame.size.height); - }]; - } - break; - - default: - { - [UIView performWithoutAnimation:^ - { - _buttonsWrapperView.frame = CGRectMake(screenEdges.left, - screenEdges.bottom - TGPhotoEditorToolbarSize - TGPhotoAvatarCropButtonsWrapperSize, - referenceSize.width, - TGPhotoAvatarCropButtonsWrapperSize); - - _rotateButton.frame = CGRectMake(10, _buttonsWrapperView.frame.size.height - _rotateButton.frame.size.height - 25 + 2.0f, _rotateButton.frame.size.width, _rotateButton.frame.size.height); - _mirrorButton.frame = CGRectMake(60, _buttonsWrapperView.frame.size.height - _mirrorButton.frame.size.height - 25, _mirrorButton.frame.size.width, _mirrorButton.frame.size.height); - - _resetButton.transform = CGAffineTransformIdentity; - [_resetButton sizeToFit]; - _resetButton.frame = CGRectMake((_buttonsWrapperView.frame.size.width - _resetButton.frame.size.width) / 2, - 10, - _resetButton.frame.size.width, - 24); - }]; - } - break; - } - - if (_dismissing) - return; - - CGRect containerFrame = [TGPhotoEditorTabController photoContainerFrameForParentViewFrame:CGRectMake(0, 0, referenceSize.width, referenceSize.height) toolbarLandscapeSize:self.toolbarLandscapeSize orientation:orientation panelSize:0.0f hasOnScreenNavigation:hasOnScreenNavigation]; - containerFrame = CGRectOffset(containerFrame, initialScreenEdges.left, initialScreenEdges.top); - - CGFloat shortSide = MIN(referenceSize.width, referenceSize.height); - CGFloat diameter = shortSide - [TGPhotoAvatarCropView areaInsetSize].width * 2; - _cropView.frame = CGRectMake(containerFrame.origin.x + (containerFrame.size.width - diameter) / 2, - containerFrame.origin.y + (containerFrame.size.height - diameter) / 2, - diameter, - diameter); -} - -- (TGPhotoEditorTab)availableTabs -{ - return TGPhotoEditorRotateTab | TGPhotoEditorMirrorTab; -} - -- (void)handleTabAction:(TGPhotoEditorTab)tab -{ - switch (tab) - { - case TGPhotoEditorRotateTab: - { - [self rotate]; - } - break; - - case TGPhotoEditorMirrorTab: - { - [self mirror]; - } - break; - - default: - break; - } -} - -@end diff --git a/submodules/LegacyComponents/Sources/TGPhotoRectangleCropController.h b/submodules/LegacyComponents/Sources/TGPhotoRectangleCropController.h new file mode 100644 index 0000000000..3df2af9dd5 --- /dev/null +++ b/submodules/LegacyComponents/Sources/TGPhotoRectangleCropController.h @@ -0,0 +1,6 @@ +#import "TGPhotoEditorTabController.h" + +@interface TGPhotoRectangleCropController : TGPhotoEditorTabController + +@end + diff --git a/submodules/LegacyComponents/Sources/TGPhotoRectangleCropController.m b/submodules/LegacyComponents/Sources/TGPhotoRectangleCropController.m new file mode 100644 index 0000000000..3794d8603d --- /dev/null +++ b/submodules/LegacyComponents/Sources/TGPhotoRectangleCropController.m @@ -0,0 +1,5 @@ +#import "TGPhotoRectangleCropController.h" + +@implementation TGPhotoRectangleCropController + +@end diff --git a/submodules/LegacyComponents/Sources/TGWarpedView.h b/submodules/LegacyComponents/Sources/TGWarpedView.h new file mode 100644 index 0000000000..0d5a7b1bdb --- /dev/null +++ b/submodules/LegacyComponents/Sources/TGWarpedView.h @@ -0,0 +1,7 @@ +#import + +@interface TGWarpedView : UIImageView + +- (void)transformToFitQuadTopLeft:(CGPoint)tl topRight:(CGPoint)tr bottomLeft:(CGPoint)bl bottomRight:(CGPoint)br; + +@end diff --git a/submodules/LegacyComponents/Sources/TGWarpedView.m b/submodules/LegacyComponents/Sources/TGWarpedView.m new file mode 100644 index 0000000000..975df28fd2 --- /dev/null +++ b/submodules/LegacyComponents/Sources/TGWarpedView.m @@ -0,0 +1,92 @@ +#import "TGWarpedView.h" + +@implementation TGWarpedView + +- (void)transformToFitQuadTopLeft:(CGPoint)tl topRight:(CGPoint)tr bottomLeft:(CGPoint)bl bottomRight:(CGPoint)br +{ + CGRect boundingBox = [[self class] boundingBoxForQuadTR:tr tl:tl bl:bl br:br]; + self.frame = boundingBox; + + CGPoint frameTopLeft = boundingBox.origin; + CATransform3D transform = [[self class] rectToQuad:self.bounds + quadTL:CGPointMake(tl.x-frameTopLeft.x, tl.y-frameTopLeft.y) + quadTR:CGPointMake(tr.x-frameTopLeft.x, tr.y-frameTopLeft.y) + quadBL:CGPointMake(bl.x-frameTopLeft.x, bl.y-frameTopLeft.y) + quadBR:CGPointMake(br.x-frameTopLeft.x, br.y-frameTopLeft.y)]; + + self.layer.transform = transform; + +} + ++ (CGRect)boundingBoxForQuadTR:(CGPoint)tr tl:(CGPoint)tl bl:(CGPoint)bl br:(CGPoint)br +{ + CGRect boundingBox = CGRectZero; + + CGFloat xmin = MIN(MIN(MIN(tr.x, tl.x), bl.x),br.x); + CGFloat ymin = MIN(MIN(MIN(tr.y, tl.y), bl.y),br.y); + CGFloat xmax = MAX(MAX(MAX(tr.x, tl.x), bl.x),br.x); + CGFloat ymax = MAX(MAX(MAX(tr.y, tl.y), bl.y),br.y); + + boundingBox.origin.x = xmin; + boundingBox.origin.y = ymin; + boundingBox.size.width = xmax - xmin; + boundingBox.size.height = ymax - ymin; + + return boundingBox; +} + ++ (CATransform3D)rectToQuad:(CGRect)rect + quadTL:(CGPoint)topLeft + quadTR:(CGPoint)topRight + quadBL:(CGPoint)bottomLeft + quadBR:(CGPoint)bottomRight +{ + return [self rectToQuad:rect quadTLX:topLeft.x quadTLY:topLeft.y quadTRX:topRight.x quadTRY:topRight.y quadBLX:bottomLeft.x quadBLY:bottomLeft.y quadBRX:bottomRight.x quadBRY:bottomRight.y]; +} + +// http://stackoverflow.com/questions/9470493/transforming-a-rectangle-image-into-a-quadrilateral-using-a-catransform3d ++ (CATransform3D)rectToQuad:(CGRect)rect + quadTLX:(CGFloat)x1a + quadTLY:(CGFloat)y1a + quadTRX:(CGFloat)x2a + quadTRY:(CGFloat)y2a + quadBLX:(CGFloat)x3a + quadBLY:(CGFloat)y3a + quadBRX:(CGFloat)x4a + quadBRY:(CGFloat)y4a +{ + CGFloat X = rect.origin.x; + CGFloat Y = rect.origin.y; + CGFloat W = rect.size.width; + CGFloat H = rect.size.height; + + CGFloat y21 = y2a - y1a; + CGFloat y32 = y3a - y2a; + CGFloat y43 = y4a - y3a; + CGFloat y14 = y1a - y4a; + CGFloat y31 = y3a - y1a; + CGFloat y42 = y4a - y2a; + + CGFloat a = -H*(x2a*x3a*y14 + x2a*x4a*y31 - x1a*x4a*y32 + x1a*x3a*y42); + CGFloat b = W*(x2a*x3a*y14 + x3a*x4a*y21 + x1a*x4a*y32 + x1a*x2a*y43); + CGFloat c = H*X*(x2a*x3a*y14 + x2a*x4a*y31 - x1a*x4a*y32 + x1a*x3a*y42) - H*W*x1a*(x4a*y32 - x3a*y42 + x2a*y43) - W*Y*(x2a*x3a*y14 + x3a*x4a*y21 + x1a*x4a*y32 + x1a*x2a*y43); + + CGFloat d = H*(-x4a*y21*y3a + x2a*y1a*y43 - x1a*y2a*y43 - x3a*y1a*y4a + x3a*y2a*y4a); + CGFloat e = W*(x4a*y2a*y31 - x3a*y1a*y42 - x2a*y31*y4a + x1a*y3a*y42); + CGFloat f = -(W*(x4a*(Y*y2a*y31 + H*y1a*y32) - x3a*(H + Y)*y1a*y42 + H*x2a*y1a*y43 + x2a*Y*(y1a - y3a)*y4a + x1a*Y*y3a*(-y2a + y4a)) - H*X*(x4a*y21*y3a - x2a*y1a*y43 + x3a*(y1a - y2a)*y4a + x1a*y2a*(-y3a + y4a))); + + CGFloat g = H*(x3a*y21 - x4a*y21 + (-x1a + x2a)*y43); + CGFloat h = W*(-x2a*y31 + x4a*y31 + (x1a - x3a)*y42); + CGFloat i = W*Y*(x2a*y31 - x4a*y31 - x1a*y42 + x3a*y42) + H*(X*(-(x3a*y21) + x4a*y21 + x1a*y43 - x2a*y43) + W*(-(x3a*y2a) + x4a*y2a + x2a*y3a - x4a*y3a - x2a*y4a + x3a*y4a)); + + const double kEpsilon = 0.0001; + + if (fabs(i) < kEpsilon) + i = kEpsilon* (i > 0 ? 1.0 : -1.0); + + CATransform3D transform = {a/i, d/i, 0, g/i, b/i, e/i, 0, h/i, 0, 0, 1, 0, c/i, f/i, 0, 1.0}; + + return transform; +} + +@end diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickers.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickers.swift index 9860b34a9f..32a05ef281 100644 --- a/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickers.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickers.swift @@ -419,10 +419,21 @@ public func legacyAssetPickerEnqueueMessages(account: Account, signals: [Any]) - case let .file(data, thumbnail, mimeType, name, caption): switch data { case let .tempFile(path): + var previewRepresentations: [TelegramMediaImageRepresentation] = [] + if let thumbnail = thumbnail { + let resource = LocalFileMediaResource(fileId: Int64.random(in: Int64.min ... Int64.max)) + let thumbnailSize = thumbnail.size.aspectFitted(CGSize(width: 320.0, height: 320.0)) + let thumbnailImage = TGScaleImageToPixelSize(thumbnail, thumbnailSize)! + if let thumbnailData = thumbnailImage.jpegData(compressionQuality: 0.4) { + account.postbox.mediaBox.storeResourceData(resource.id, data: thumbnailData) + previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(thumbnailSize), resource: resource, progressiveSizes: [], immediateThumbnailData: nil)) + } + } + var randomId: Int64 = 0 arc4random_buf(&randomId, 8) let resource = LocalFileReferenceMediaResource(localFilePath: path, randomId: randomId) - let media = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.LocalFile, id: randomId), partialReference: nil, resource: resource, previewRepresentations: [], videoThumbnails: [], immediateThumbnailData: nil, mimeType: mimeType, size: nil, attributes: [.FileName(fileName: name)]) + let media = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.LocalFile, id: randomId), partialReference: nil, resource: resource, previewRepresentations: previewRepresentations, videoThumbnails: [], immediateThumbnailData: nil, mimeType: mimeType, size: nil, attributes: [.FileName(fileName: name)]) messages.append(LegacyAssetPickerEnqueueMessage(message: .message(text: caption ?? "", attributes: [], mediaReference: .standalone(media: media), replyToMessageId: nil, localGroupingKey: item.groupedId, correlationId: nil), uniqueId: item.uniqueId)) case let .asset(asset): var randomId: Int64 = 0 diff --git a/submodules/ManagedAnimationNode/Sources/ManagedAnimationNode.swift b/submodules/ManagedAnimationNode/Sources/ManagedAnimationNode.swift index 1dde44442a..d584c7a7e9 100644 --- a/submodules/ManagedAnimationNode/Sources/ManagedAnimationNode.swift +++ b/submodules/ManagedAnimationNode/Sources/ManagedAnimationNode.swift @@ -20,6 +20,13 @@ public final class ManagedAnimationState { var relativeTime: Double = 0.0 public var frameIndex: Int? + public var position: CGFloat { + if let frameIndex = frameIndex { + return CGFloat(frameIndex) / CGFloat(frameCount) + } else { + return 0.0 + } + } public var executedCallbacks = Set() diff --git a/submodules/SemanticStatusNode/Sources/SemanticStatusNode.swift b/submodules/SemanticStatusNode/Sources/SemanticStatusNode.swift index dcf38e6d72..970de65856 100644 --- a/submodules/SemanticStatusNode/Sources/SemanticStatusNode.swift +++ b/submodules/SemanticStatusNode/Sources/SemanticStatusNode.swift @@ -93,11 +93,13 @@ private final class SemanticStatusNodeIconContext: SemanticStatusNodeStateContex let transitionFraction: CGFloat let icon: SemanticStatusNodeIcon let iconImage: UIImage? - - init(transitionFraction: CGFloat, icon: SemanticStatusNodeIcon, iconImage: UIImage?) { + let iconOffset: CGFloat + + init(transitionFraction: CGFloat, icon: SemanticStatusNodeIcon, iconImage: UIImage?, iconOffset: CGFloat) { self.transitionFraction = transitionFraction self.icon = icon self.iconImage = iconImage + self.iconOffset = iconOffset super.init() } @@ -125,11 +127,11 @@ private final class SemanticStatusNodeIconContext: SemanticStatusNodeStateContex let diameter = size.width let factor = diameter / 50.0 - let size: CGSize var offset: CGFloat = 0.0 if let iconImage = self.iconImage { size = iconImage.size + offset = self.iconOffset } else { offset = 1.5 size = CGSize(width: 15.0, height: 18.0) @@ -161,12 +163,15 @@ private final class SemanticStatusNodeIconContext: SemanticStatusNodeStateContex let factor = diameter / 50.0 let size: CGSize + let offset: CGFloat if let iconImage = self.iconImage { size = iconImage.size + offset = self.iconOffset } else { size = CGSize(width: 15.0, height: 16.0) + offset = 0.0 } - context.translateBy(x: (diameter - size.width) / 2.0, y: (diameter - size.height) / 2.0) + context.translateBy(x: (diameter - size.width) / 2.0 + offset, y: (diameter - size.height) / 2.0) if (diameter < 40.0) { context.translateBy(x: size.width / 2.0, y: size.height / 2.0) context.scaleBy(x: factor, y: factor) @@ -248,6 +253,7 @@ private final class SemanticStatusNodeIconContext: SemanticStatusNodeStateContex var animationNode: PlayPauseIconNode? var iconImage: UIImage? + var iconOffset: CGFloat = 0.0 init(icon: SemanticStatusNodeIcon) { self.icon = icon @@ -255,10 +261,20 @@ private final class SemanticStatusNodeIconContext: SemanticStatusNodeStateContex if [.play, .pause].contains(icon) { self.animationNode = PlayPauseIconNode() self.animationNode?.imageUpdated = { [weak self] image in - self?.iconImage = image - self?.requestUpdate() + if let strongSelf = self { + strongSelf.iconImage = image + if var position = strongSelf.animationNode?.state?.position { + position = position * 2.0 + if position > 1.0 { + position = 2.0 - position + } + strongSelf.iconOffset = (1.0 - position) * 1.5 + } + strongSelf.requestUpdate() + } } self.iconImage = self.animationNode?.image + self.iconOffset = 1.5 } } @@ -269,7 +285,7 @@ private final class SemanticStatusNodeIconContext: SemanticStatusNodeStateContex var requestUpdate: () -> Void = {} func drawingState(transitionFraction: CGFloat) -> SemanticStatusNodeStateDrawingState { - return DrawingState(transitionFraction: transitionFraction, icon: self.icon, iconImage: self.iconImage) + return DrawingState(transitionFraction: transitionFraction, icon: self.icon, iconImage: self.iconImage, iconOffset: self.iconOffset) } } diff --git a/submodules/TelegramCallsUI/Sources/CallControllerNode.swift b/submodules/TelegramCallsUI/Sources/CallControllerNode.swift index ded0d56666..6c38c737c8 100644 --- a/submodules/TelegramCallsUI/Sources/CallControllerNode.swift +++ b/submodules/TelegramCallsUI/Sources/CallControllerNode.swift @@ -26,7 +26,7 @@ private func interpolate(from: CGFloat, to: CGFloat, value: CGFloat) -> CGFloat return (1.0 - value) * from + value * to } -private final class CallVideoNode: ASDisplayNode { +private final class CallVideoNode: ASDisplayNode, PreviewVideoNode { private let videoTransformContainer: ASDisplayNode private let videoView: PresentationCallVideoView @@ -40,6 +40,11 @@ private final class CallVideoNode: ASDisplayNode { private(set) var isReady: Bool = false private var isReadyTimer: SwiftSignalKit.Timer? + private let readyPromise = ValuePromise(false) + var ready: Signal { + return self.readyPromise.get() + } + private let isFlippedUpdated: (CallVideoNode) -> Void private(set) var currentOrientation: PresentationCallVideoView.Orientation @@ -87,6 +92,7 @@ private final class CallVideoNode: ASDisplayNode { } if !strongSelf.isReady { strongSelf.isReady = true + strongSelf.readyPromise.set(true) strongSelf.isReadyTimer?.invalidate() strongSelf.isReadyUpdated() } @@ -122,6 +128,7 @@ private final class CallVideoNode: ASDisplayNode { } if !strongSelf.isReady { strongSelf.isReady = true + strongSelf.readyPromise.set(true) strongSelf.isReadyUpdated() } }, queue: .mainQueue()) @@ -177,6 +184,10 @@ private final class CallVideoNode: ASDisplayNode { }) } + func updateLayout(size: CGSize, layoutMode: VideoNodeLayoutMode, transition: ContainedViewLayoutTransition) { + self.updateLayout(size: size, cornerRadius: self.currentCornerRadius, isOutgoing: true, deviceOrientation: .portrait, isCompactLayout: false, transition: transition) + } + func updateLayout(size: CGSize, cornerRadius: CGFloat, isOutgoing: Bool, deviceOrientation: UIDeviceOrientation, isCompactLayout: Bool, transition: ContainedViewLayoutTransition) { self.currentCornerRadius = cornerRadius @@ -582,13 +593,58 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro strongSelf.call.requestVideo() } - if strongSelf.displayedCameraConfirmation { - proceed() - } else { - strongSelf.present?(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: strongSelf.presentationData.strings.Call_CameraConfirmationText, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Call_CameraConfirmationConfirm, action: { - proceed() - })])) - } + strongSelf.call.makeOutgoingVideoView(completion: { [weak self] outgoingVideoView in + guard let strongSelf = self else { + return + } + + if let outgoingVideoView = outgoingVideoView { + outgoingVideoView.view.backgroundColor = .black + outgoingVideoView.view.clipsToBounds = true + + var updateLayoutImpl: ((ContainerViewLayout, CGFloat) -> Void)? + + let outgoingVideoNode = CallVideoNode(videoView: outgoingVideoView, disabledText: nil, assumeReadyAfterTimeout: true, isReadyUpdated: { + guard let strongSelf = self, let (layout, navigationBarHeight) = strongSelf.validLayout else { + return + } + updateLayoutImpl?(layout, navigationBarHeight) + }, orientationUpdated: { + guard let strongSelf = self, let (layout, navigationBarHeight) = strongSelf.validLayout else { + return + } + updateLayoutImpl?(layout, navigationBarHeight) + }, isFlippedUpdated: { _ in + guard let strongSelf = self, let (layout, navigationBarHeight) = strongSelf.validLayout else { + return + } + updateLayoutImpl?(layout, navigationBarHeight) + }) + + let controller = VoiceChatCameraPreviewController(sharedContext: strongSelf.sharedContext, cameraNode: outgoingVideoNode, shareCamera: { [weak self] _, _ in + if let strongSelf = self { + proceed() + } + }, switchCamera: { [weak self] in + Queue.mainQueue().after(0.1) { + self?.call.switchVideoCamera() + } + }) + strongSelf.present?(controller) + + updateLayoutImpl = { [weak controller] layout, navigationBarHeight in + controller?.containerLayoutUpdated(layout, transition: .immediate) + } + } + }) + +// if strongSelf.displayedCameraConfirmation { +// proceed() +// } else { +// strongSelf.present?(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: strongSelf.presentationData.strings.Call_CameraConfirmationText, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Call_CameraConfirmationConfirm, action: { +// proceed() +// })])) +// } }) } else { strongSelf.call.disableVideo() diff --git a/submodules/TelegramCallsUI/Sources/GroupVideoNode.swift b/submodules/TelegramCallsUI/Sources/GroupVideoNode.swift index 3167b142ed..b18ea38665 100644 --- a/submodules/TelegramCallsUI/Sources/GroupVideoNode.swift +++ b/submodules/TelegramCallsUI/Sources/GroupVideoNode.swift @@ -6,22 +6,20 @@ import SwiftSignalKit import AccountContext import ContextUI -final class GroupVideoNode: ASDisplayNode { - static let useBlurTransparency: Bool = !UIAccessibility.isReduceTransparencyEnabled +enum VideoNodeLayoutMode { + case fillOrFitToSquare + case fillHorizontal + case fillVertical + case fit +} +final class GroupVideoNode: ASDisplayNode, PreviewVideoNode { enum Position { case tile case list case mainstage } - enum LayoutMode { - case fillOrFitToSquare - case fillHorizontal - case fillVertical - case fit - } - let sourceContainerNode: PinchSourceContainerNode private let containerNode: ASDisplayNode private let videoViewContainer: UIView @@ -29,15 +27,14 @@ final class GroupVideoNode: ASDisplayNode { private let backdropVideoViewContainer: UIView private let backdropVideoView: VideoRenderingView? - private var backdropEffectView: UIVisualEffectView? - + private var effectView: UIVisualEffectView? private var isBlurred: Bool = false private var isEnabled: Bool = false private var isBlurEnabled: Bool = false - private var validLayout: (CGSize, LayoutMode)? + private var validLayout: (CGSize, VideoNodeLayoutMode)? var tapped: (() -> Void)? @@ -61,21 +58,6 @@ final class GroupVideoNode: ASDisplayNode { super.init() - if let backdropVideoView = backdropVideoView { - self.backdropVideoViewContainer.addSubview(backdropVideoView) - self.view.addSubview(self.backdropVideoViewContainer) - - let effect: UIVisualEffect - if #available(iOS 13.0, *) { - effect = UIBlurEffect(style: .systemThinMaterialDark) - } else { - effect = UIBlurEffect(style: .dark) - } - //let backdropEffectView = UIVisualEffectView(effect: effect) - //self.view.addSubview(backdropEffectView) - //self.backdropEffectView = backdropEffectView - } - self.videoViewContainer.addSubview(self.videoView) self.addSubnode(self.sourceContainerNode) self.containerNode.view.addSubview(self.videoViewContainer) @@ -204,7 +186,7 @@ final class GroupVideoNode: ASDisplayNode { return rotatedAspect } - func updateLayout(size: CGSize, layoutMode: LayoutMode, transition: ContainedViewLayoutTransition) { + func updateLayout(size: CGSize, layoutMode: VideoNodeLayoutMode, transition: ContainedViewLayoutTransition) { self.validLayout = (size, layoutMode) let bounds = CGRect(origin: CGPoint(), size: size) self.sourceContainerNode.update(size: size, transition: .immediate) @@ -310,20 +292,6 @@ final class GroupVideoNode: ASDisplayNode { self.backdropVideoView?.updateIsEnabled(self.isEnabled && self.isBlurEnabled) - if self.isBlurEnabled { - self.backdropVideoView?.isHidden = false - self.backdropEffectView?.isHidden = false - } - transition.updatePosition(layer: backdropVideoView.layer, position: rotatedVideoFrame.center, force: true, completion: { [weak self] value in - guard let strongSelf = self, value else { - return - } - if !strongSelf.isBlurEnabled { - strongSelf.backdropVideoView?.updateIsEnabled(false) - strongSelf.backdropVideoView?.isHidden = true - strongSelf.backdropEffectView?.isHidden = false - } - }) transition.updateBounds(layer: backdropVideoView.layer, bounds: CGRect(origin: CGPoint(), size: normalizedVideoSize)) let transformScale: CGFloat = rotatedVideoFrame.width / normalizedVideoSize.width @@ -334,21 +302,6 @@ final class GroupVideoNode: ASDisplayNode { transition.updateTransformRotation(view: backdropVideoView, angle: angle) } - if let backdropEffectView = self.backdropEffectView { - let maxSide = max(bounds.width, bounds.height) + 32.0 - let squareBounds = CGRect(x: (bounds.width - maxSide) / 2.0, y: (bounds.height - maxSide) / 2.0, width: maxSide, height: maxSide) - - if case let .animated(duration, .spring) = transition { - UIView.animate(withDuration: duration, delay: 0.0, usingSpringWithDamping: 500.0, initialSpringVelocity: 0.0, options: .layoutSubviews, animations: { - backdropEffectView.frame = squareBounds - }) - } else { - transition.animateView { - backdropEffectView.frame = squareBounds - } - } - } - if let effectView = self.effectView { if case let .animated(duration, .spring) = transition { UIView.animate(withDuration: duration, delay: 0.0, usingSpringWithDamping: 500.0, initialSpringVelocity: 0.0, options: .layoutSubviews, animations: { diff --git a/submodules/TelegramCallsUI/Sources/PresentationCall.swift b/submodules/TelegramCallsUI/Sources/PresentationCall.swift index 6d1867ab59..77788a7da1 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationCall.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationCall.swift @@ -13,6 +13,7 @@ import TelegramPresentationData import DeviceAccess import UniversalMediaPlayer import AccountContext +import DeviceProximity final class PresentationCallToneRenderer { let queue: Queue @@ -287,6 +288,8 @@ public final class PresentationCallImpl: PresentationCall { private var useFrontCamera: Bool = true private var videoCapturer: OngoingCallVideoCapturer? + private var proximityManagerIndex: Int? + init( account: Account, audioSession: ManagedAudioSession, @@ -455,6 +458,11 @@ public final class PresentationCallImpl: PresentationCall { strongSelf.updateIsAudioSessionActive(value) } }) + + if callKitIntegration == nil { + self.proximityManagerIndex = DeviceProximityManager.shared().add { _ in + } + } } deinit { @@ -473,6 +481,10 @@ public final class PresentationCallImpl: PresentationCall { self.callKitIntegration?.dropCall(uuid: self.internalId) } } + + if let proximityManagerIndex = self.proximityManagerIndex { + DeviceProximityManager.shared().remove(proximityManagerIndex) + } } private func updateSessionState(sessionState: CallSession, callContextState: OngoingCallContextState?, reception: Int32?, audioSessionControl: ManagedAudioSessionControl?) { diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatCameraPreviewController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatCameraPreviewController.swift index 05b5d1185a..f2cfea7c54 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatCameraPreviewController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatCameraPreviewController.swift @@ -15,23 +15,32 @@ import ReplayKit private let accentColor: UIColor = UIColor(rgb: 0x007aff) +protocol PreviewVideoNode: ASDisplayNode { + var ready: Signal { get } + + func flip(withBackground: Bool) + func updateIsBlurred(isBlurred: Bool, light: Bool, animated: Bool) + + func updateLayout(size: CGSize, layoutMode: VideoNodeLayoutMode, transition: ContainedViewLayoutTransition) +} + final class VoiceChatCameraPreviewController: ViewController { private var controllerNode: VoiceChatCameraPreviewControllerNode { return self.displayNode as! VoiceChatCameraPreviewControllerNode } - private let context: AccountContext + private let sharedContext: SharedAccountContext private var animatedIn = false - private let cameraNode: GroupVideoNode + private let cameraNode: PreviewVideoNode private let shareCamera: (ASDisplayNode, Bool) -> Void private let switchCamera: () -> Void private var presentationDataDisposable: Disposable? - init(context: AccountContext, cameraNode: GroupVideoNode, shareCamera: @escaping (ASDisplayNode, Bool) -> Void, switchCamera: @escaping () -> Void) { - self.context = context + init(sharedContext: SharedAccountContext, cameraNode: PreviewVideoNode, shareCamera: @escaping (ASDisplayNode, Bool) -> Void, switchCamera: @escaping () -> Void) { + self.sharedContext = sharedContext self.cameraNode = cameraNode self.shareCamera = shareCamera self.switchCamera = switchCamera @@ -42,7 +51,7 @@ final class VoiceChatCameraPreviewController: ViewController { self.blocksBackgroundWhenInOverlay = true - self.presentationDataDisposable = (context.sharedContext.presentationData + self.presentationDataDisposable = (sharedContext.presentationData |> deliverOnMainQueue).start(next: { [weak self] presentationData in if let strongSelf = self { strongSelf.controllerNode.updatePresentationData(presentationData) @@ -61,7 +70,7 @@ final class VoiceChatCameraPreviewController: ViewController { } override public func loadDisplayNode() { - self.displayNode = VoiceChatCameraPreviewControllerNode(controller: self, context: self.context, cameraNode: self.cameraNode) + self.displayNode = VoiceChatCameraPreviewControllerNode(controller: self, sharedContext: self.sharedContext, cameraNode: self.cameraNode) self.controllerNode.shareCamera = { [weak self] unmuted in if let strongSelf = self { strongSelf.shareCamera(strongSelf.cameraNode, unmuted) @@ -106,10 +115,10 @@ final class VoiceChatCameraPreviewController: ViewController { private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, UIScrollViewDelegate { private weak var controller: VoiceChatCameraPreviewController? - private let context: AccountContext + private let sharedContext: SharedAccountContext private var presentationData: PresentationData - private let cameraNode: GroupVideoNode + private let cameraNode: PreviewVideoNode private let dimNode: ASDisplayNode private let wrappingScrollNode: ASScrollNode private let contentContainerNode: ASDisplayNode @@ -119,18 +128,19 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U private let titleNode: ASTextNode private let previewContainerNode: ASDisplayNode private let shimmerNode: ShimmerEffectForegroundNode - private let cameraButton: SolidRoundedButtonNode - private let screenButton: SolidRoundedButtonNode + private let doneButton: SolidRoundedButtonNode private var broadcastPickerView: UIView? private let cancelButton: SolidRoundedButtonNode private let microphoneButton: HighlightTrackingButtonNode private let microphoneEffectView: UIVisualEffectView private let microphoneIconNode: VoiceChatMicrophoneNode + + private let placeholderTextNode: ImmediateTextNode + private let placeholderIconNode: ASImageNode - private let switchCameraButton: HighlightTrackingButtonNode - private let switchCameraEffectView: UIVisualEffectView - private let switchCameraIconNode: ASImageNode + private let tabsNode: TabsSegmentedControlNode + private var selectedTabIndex: Int = 0 private var containerLayout: (ContainerViewLayout, CGFloat)? @@ -145,10 +155,10 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U var dismiss: (() -> Void)? var cancel: (() -> Void)? - init(controller: VoiceChatCameraPreviewController, context: AccountContext, cameraNode: GroupVideoNode) { + init(controller: VoiceChatCameraPreviewController, sharedContext: SharedAccountContext, cameraNode: PreviewVideoNode) { self.controller = controller - self.context = context - self.presentationData = context.sharedContext.currentPresentationData.with { $0 } + self.sharedContext = sharedContext + self.presentationData = sharedContext.currentPresentationData.with { $0 } self.cameraNode = cameraNode @@ -185,16 +195,14 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U self.titleNode = ASTextNode() self.titleNode.attributedText = NSAttributedString(string: title, font: Font.bold(17.0), textColor: textColor) - self.cameraButton = SolidRoundedButtonNode(theme: SolidRoundedButtonTheme(backgroundColor: accentColor, foregroundColor: .white), font: .bold, height: 52.0, cornerRadius: 11.0, gloss: false) - self.cameraButton.title = self.presentationData.strings.VoiceChat_VideoPreviewShareCamera + self.doneButton = SolidRoundedButtonNode(theme: SolidRoundedButtonTheme(backgroundColor: accentColor, foregroundColor: .white), font: .bold, height: 52.0, cornerRadius: 11.0, gloss: false) + self.doneButton.title = self.presentationData.strings.VoiceChat_VideoPreviewContinue - self.screenButton = SolidRoundedButtonNode(theme: SolidRoundedButtonTheme(backgroundColor: buttonColor, foregroundColor: buttonTextColor), font: .bold, height: 52.0, cornerRadius: 11.0, gloss: false) - self.screenButton.title = self.presentationData.strings.VoiceChat_VideoPreviewShareScreen - if #available(iOS 12.0, *) { let broadcastPickerView = RPSystemBroadcastPickerView(frame: CGRect(x: 0, y: 0, width: 50, height: 52.0)) broadcastPickerView.alpha = 0.02 - broadcastPickerView.preferredExtension = "\(self.context.sharedContext.applicationBindings.appBundleId).BroadcastUpload" + broadcastPickerView.isHidden = true + broadcastPickerView.preferredExtension = "\(self.sharedContext.applicationBindings.appBundleId).BroadcastUpload" broadcastPickerView.showsMicrophoneButton = false self.broadcastPickerView = broadcastPickerView } @@ -209,27 +217,29 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U self.shimmerNode = ShimmerEffectForegroundNode(size: 200.0) self.previewContainerNode.addSubnode(self.shimmerNode) - + self.microphoneButton = HighlightTrackingButtonNode() self.microphoneButton.isSelected = true - self.microphoneEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .dark)) + self.microphoneEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .light)) self.microphoneEffectView.clipsToBounds = true self.microphoneEffectView.layer.cornerRadius = 24.0 self.microphoneEffectView.isUserInteractionEnabled = false self.microphoneIconNode = VoiceChatMicrophoneNode() +// self.microphoneIconNode.alpha = 0.75 self.microphoneIconNode.update(state: .init(muted: false, filled: true, color: .white), animated: false) - self.switchCameraButton = HighlightTrackingButtonNode() - self.switchCameraEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .dark)) - self.switchCameraEffectView.clipsToBounds = true - self.switchCameraEffectView.layer.cornerRadius = 24.0 - self.switchCameraEffectView.isUserInteractionEnabled = false + self.tabsNode = TabsSegmentedControlNode(items: [TabsSegmentedControlNode.Item(title: "Front Camera"), TabsSegmentedControlNode.Item(title: "Back Camera"), TabsSegmentedControlNode.Item(title: "Share Screen")], selectedIndex: 0) - self.switchCameraIconNode = ASImageNode() - self.switchCameraIconNode.displaysAsynchronously = false - self.switchCameraIconNode.image = generateTintedImage(image: UIImage(bundleImageName: "Call/SwitchCameraIcon"), color: .white) - self.switchCameraIconNode.contentMode = .center + self.placeholderTextNode = ImmediateTextNode() + self.placeholderTextNode.alpha = 0.0 + self.placeholderTextNode.maximumNumberOfLines = 3 + self.placeholderTextNode.textAlignment = .center + + self.placeholderIconNode = ASImageNode() + self.placeholderIconNode.alpha = 0.0 + self.placeholderIconNode.contentMode = .scaleAspectFit + self.placeholderIconNode.displaysAsynchronously = false super.init() @@ -248,8 +258,7 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U self.backgroundNode.addSubnode(self.effectNode) self.backgroundNode.addSubnode(self.contentBackgroundNode) self.contentContainerNode.addSubnode(self.titleNode) - self.contentContainerNode.addSubnode(self.cameraButton) - self.contentContainerNode.addSubnode(self.screenButton) + self.contentContainerNode.addSubnode(self.doneButton) if let broadcastPickerView = self.broadcastPickerView { self.contentContainerNode.view.addSubview(broadcastPickerView) } @@ -258,14 +267,40 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U self.contentContainerNode.addSubnode(self.previewContainerNode) self.previewContainerNode.addSubnode(self.cameraNode) - self.previewContainerNode.addSubnode(self.microphoneButton) - self.microphoneButton.view.addSubview(self.microphoneEffectView) - self.microphoneButton.addSubnode(self.microphoneIconNode) - self.previewContainerNode.addSubnode(self.switchCameraButton) - self.switchCameraButton.view.addSubview(self.switchCameraEffectView) - self.switchCameraButton.addSubnode(self.switchCameraIconNode) - self.cameraButton.pressed = { [weak self] in + self.previewContainerNode.addSubnode(self.placeholderIconNode) + self.previewContainerNode.addSubnode(self.placeholderTextNode) + + if self.cameraNode is GroupVideoNode { + self.previewContainerNode.addSubnode(self.microphoneButton) + self.microphoneButton.view.addSubview(self.microphoneEffectView) + self.microphoneButton.addSubnode(self.microphoneIconNode) + } + self.previewContainerNode.addSubnode(self.tabsNode) + + self.tabsNode.selectedIndexChanged = { [weak self] index in + if let strongSelf = self { + if (index == 0 && strongSelf.selectedTabIndex == 1) || (index == 1 && strongSelf.selectedTabIndex == 0) { + strongSelf.switchCamera?() + } + if index == 2 && [0, 1].contains(strongSelf.selectedTabIndex) { + strongSelf.broadcastPickerView?.isHidden = false + strongSelf.cameraNode.updateIsBlurred(isBlurred: true, light: false, animated: true) + let transition = ContainedViewLayoutTransition.animated(duration: 0.3, curve: .easeInOut) + transition.updateAlpha(node: strongSelf.placeholderTextNode, alpha: 1.0) + transition.updateAlpha(node: strongSelf.placeholderIconNode, alpha: 1.0) + } else if [0, 1].contains(index) && strongSelf.selectedTabIndex == 2 { + strongSelf.broadcastPickerView?.isHidden = true + strongSelf.cameraNode.updateIsBlurred(isBlurred: false, light: false, animated: true) + let transition = ContainedViewLayoutTransition.animated(duration: 0.3, curve: .easeInOut) + transition.updateAlpha(node: strongSelf.placeholderTextNode, alpha: 0.0) + transition.updateAlpha(node: strongSelf.placeholderIconNode, alpha: 0.0) + } + strongSelf.selectedTabIndex = index + } + } + + self.doneButton.pressed = { [weak self] in if let strongSelf = self { strongSelf.shareCamera?(strongSelf.microphoneButton.isSelected) } @@ -289,19 +324,6 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U } } - self.switchCameraButton.addTarget(self, action: #selector(self.switchCameraPressed), forControlEvents: .touchUpInside) - self.switchCameraButton.highligthedChanged = { [weak self] highlighted in - if let strongSelf = self { - if highlighted { - let transition: ContainedViewLayoutTransition = .animated(duration: 0.3, curve: .spring) - transition.updateSublayerTransformScale(node: strongSelf.switchCameraButton, scale: 0.9) - } else { - let transition: ContainedViewLayoutTransition = .animated(duration: 0.5, curve: .spring) - transition.updateSublayerTransformScale(node: strongSelf.switchCameraButton, scale: 1.0) - } - } - } - self.readyDisposable.set(self.cameraNode.ready.start(next: { [weak self] ready in if let strongSelf = self, ready { Queue.mainQueue().after(0.07) { @@ -322,19 +344,7 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U self.microphoneButton.isSelected = !self.microphoneButton.isSelected self.microphoneIconNode.update(state: .init(muted: !self.microphoneButton.isSelected, filled: true, color: .white), animated: true) } - - @objc private func switchCameraPressed() { - self.hapticFeedback.impact(.light) - self.switchCamera?() - - let springDuration: Double = 0.7 - let springDamping: CGFloat = 100.0 - self.switchCameraButton.isUserInteractionEnabled = false - self.switchCameraIconNode.layer.animateSpring(from: 0.0 as NSNumber, to: CGFloat.pi as NSNumber, keyPath: "transform.rotation.z", duration: springDuration, damping: springDamping, completion: { [weak self] _ in - self?.switchCameraButton.isUserInteractionEnabled = true - }) - } - + func updatePresentationData(_ presentationData: PresentationData) { self.presentationData = presentationData } @@ -368,7 +378,7 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U self.dimNode.position = dimPosition }) - self.applicationStateDisposable = (self.context.sharedContext.applicationBindings.applicationIsActive + self.applicationStateDisposable = (self.sharedContext.applicationBindings.applicationIsActive |> filter { !$0 } |> take(1) |> deliverOnMainQueue).start(next: { [weak self] _ in @@ -443,9 +453,6 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U insets.top = max(10.0, insets.top) var buttonOffset: CGFloat = 60.0 - if let _ = self.broadcastPickerView { - buttonOffset *= 2.0 - } let bottomInset: CGFloat = isTablet ? 31.0 : 10.0 + cleanInsets.bottom let titleHeight: CGFloat = 54.0 var contentHeight = titleHeight + bottomInset + 52.0 + 17.0 @@ -522,24 +529,27 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U self.cameraNode.frame = CGRect(origin: CGPoint(), size: previewSize) self.cameraNode.updateLayout(size: previewSize, layoutMode: isLandscape ? .fillHorizontal : .fillVertical, transition: .immediate) - let microphoneFrame = CGRect(x: 16.0, y: previewSize.height - 48.0 - 16.0, width: 48.0, height: 48.0) + let microphoneFrame = CGRect(x: 8.0, y: previewSize.height - 48.0 - 8.0 - 48.0, width: 48.0, height: 48.0) transition.updateFrame(node: self.microphoneButton, frame: microphoneFrame) transition.updateFrame(view: self.microphoneEffectView, frame: CGRect(origin: CGPoint(), size: microphoneFrame.size)) transition.updateFrameAsPositionAndBounds(node: self.microphoneIconNode, frame: CGRect(origin: CGPoint(x: 1.0, y: 0.0), size: microphoneFrame.size).insetBy(dx: 6.0, dy: 6.0)) self.microphoneIconNode.transform = CATransform3DMakeScale(1.2, 1.2, 1.0) - let switchCameraFrame = CGRect(x: previewSize.width - 48.0 - 16.0, y: previewSize.height - 48.0 - 16.0, width: 48.0, height: 48.0) - transition.updateFrame(node: self.switchCameraButton, frame: switchCameraFrame) - transition.updateFrame(view: self.switchCameraEffectView, frame: CGRect(origin: CGPoint(), size: switchCameraFrame.size)) - transition.updateFrame(node: self.switchCameraIconNode, frame: CGRect(origin: CGPoint(), size: switchCameraFrame.size)) + let tabsFrame = CGRect(x: 8.0, y: previewSize.height - 40.0 - 8.0, width: previewSize.width - 16.0, height: 40.0) + self.tabsNode.updateLayout(size: tabsFrame.size, transition: transition) + transition.updateFrame(node: self.tabsNode, frame: tabsFrame) + + self.placeholderTextNode.attributedText = NSAttributedString(string: presentationData.strings.VoiceChat_VideoPreviewShareScreenInfo, font: Font.semibold(14.0), textColor: .white) + self.placeholderIconNode.image = generateTintedImage(image: UIImage(bundleImageName: isTablet ? "Call/ScreenShareTablet" : "Call/ScreenSharePhone"), color: .white) + + let placeholderTextSize = self.placeholderTextNode.updateLayout(CGSize(width: previewSize.width - 80.0, height: 100.0)) + transition.updateFrame(node: self.placeholderTextNode, frame: CGRect(origin: CGPoint(x: floor((previewSize.width - placeholderTextSize.width) / 2.0), y: floorToScreenPixels(previewSize.height / 2.0) + 10.0), size: placeholderTextSize)) + if let imageSize = self.placeholderIconNode.image?.size { + transition.updateFrame(node: self.placeholderIconNode, frame: CGRect(origin: CGPoint(x: floor((previewSize.width - imageSize.width) / 2.0), y: floorToScreenPixels(previewSize.height / 2.0) - imageSize.height - 8.0), size: imageSize)) + } if isLandscape { var buttonsCount: Int = 2 - if let _ = self.broadcastPickerView { - buttonsCount += 1 - } else { - self.screenButton.isHidden = true - } let buttonInset: CGFloat = 6.0 var leftButtonInset = buttonInset @@ -552,33 +562,19 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U } let buttonWidth = floorToScreenPixels((availableWidth - CGFloat(buttonsCount + 1) * buttonInset) / CGFloat(buttonsCount)) - let cameraButtonHeight = self.cameraButton.updateLayout(width: buttonWidth, transition: transition) - let screenButtonHeight = self.screenButton.updateLayout(width: buttonWidth, transition: transition) + let cameraButtonHeight = self.doneButton.updateLayout(width: buttonWidth, transition: transition) let cancelButtonHeight = self.cancelButton.updateLayout(width: buttonWidth, transition: transition) transition.updateFrame(node: self.cancelButton, frame: CGRect(x: layout.safeInsets.left + leftButtonInset, y: previewFrame.maxY + 10.0, width: buttonWidth, height: cancelButtonHeight)) - if let broadcastPickerView = self.broadcastPickerView { - transition.updateFrame(node: self.screenButton, frame: CGRect(x: layout.safeInsets.left + leftButtonInset + buttonWidth + buttonInset, y: previewFrame.maxY + 10.0, width: buttonWidth, height: screenButtonHeight)) - broadcastPickerView.frame = CGRect(x: layout.safeInsets.left + leftButtonInset + buttonWidth + buttonInset, y: previewFrame.maxY + 10.0, width: buttonWidth, height: screenButtonHeight) - transition.updateFrame(node: self.cameraButton, frame: CGRect(x: layout.safeInsets.left + leftButtonInset + buttonWidth + buttonInset + buttonWidth + buttonInset, y: previewFrame.maxY + 10.0, width: buttonWidth, height: cameraButtonHeight)) - } else { - transition.updateFrame(node: self.cameraButton, frame: CGRect(x: layout.safeInsets.left + leftButtonInset + buttonWidth + buttonInset, y: previewFrame.maxY + 10.0, width: buttonWidth, height: cameraButtonHeight)) - } - + transition.updateFrame(node: self.doneButton, frame: CGRect(x: layout.safeInsets.left + leftButtonInset + buttonWidth + buttonInset, y: previewFrame.maxY + 10.0, width: buttonWidth, height: cameraButtonHeight)) + self.broadcastPickerView?.frame = self.doneButton.frame } else { let bottomInset = isTablet ? 21.0 : insets.bottom + 16.0 let buttonInset: CGFloat = 16.0 - let cameraButtonHeight = self.cameraButton.updateLayout(width: contentFrame.width - buttonInset * 2.0, transition: transition) - transition.updateFrame(node: self.cameraButton, frame: CGRect(x: buttonInset, y: contentHeight - cameraButtonHeight - bottomInset - buttonOffset, width: contentFrame.width, height: cameraButtonHeight)) - - let screenButtonHeight = self.screenButton.updateLayout(width: contentFrame.width - buttonInset * 2.0, transition: transition) - transition.updateFrame(node: self.screenButton, frame: CGRect(x: buttonInset, y: contentHeight - cameraButtonHeight - 8.0 - screenButtonHeight - bottomInset, width: contentFrame.width, height: screenButtonHeight)) - if let broadcastPickerView = self.broadcastPickerView { - broadcastPickerView.frame = CGRect(x: buttonInset, y: contentHeight - cameraButtonHeight - 8.0 - screenButtonHeight - bottomInset, width: contentFrame.width + 1000.0, height: screenButtonHeight) - } else { - self.screenButton.isHidden = true - } - + let cameraButtonHeight = self.doneButton.updateLayout(width: contentFrame.width - buttonInset * 2.0, transition: transition) + transition.updateFrame(node: self.doneButton, frame: CGRect(x: buttonInset, y: contentHeight - cameraButtonHeight - bottomInset - buttonOffset, width: contentFrame.width, height: cameraButtonHeight)) + self.broadcastPickerView?.frame = self.doneButton.frame + let cancelButtonHeight = self.cancelButton.updateLayout(width: contentFrame.width - buttonInset * 2.0, transition: transition) transition.updateFrame(node: self.cancelButton, frame: CGRect(x: buttonInset, y: contentHeight - cancelButtonHeight - bottomInset, width: contentFrame.width, height: cancelButtonHeight)) } @@ -586,3 +582,303 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U transition.updateFrame(node: self.contentContainerNode, frame: contentFrame) } } + +private let textFont = Font.medium(14.0) + +class TabsSegmentedControlNode: ASDisplayNode, UIGestureRecognizerDelegate { + struct Item: Equatable { + public let title: String + + public init(title: String) { + self.title = title + } + } + + private var blurEffectView: UIVisualEffectView? + private var vibrancyEffectView: UIVisualEffectView? + + private let selectionNode: ASDisplayNode + private var itemNodes: [HighlightTrackingButtonNode] + private var highlightedItemNodes: [HighlightTrackingButtonNode] + + private var validLayout: CGSize? + + private var _items: [Item] + private var _selectedIndex: Int = 0 + + public var selectedIndex: Int { + get { + return self._selectedIndex + } + set { + guard newValue != self._selectedIndex else { + return + } + self._selectedIndex = newValue + if let size = self.validLayout { + self.updateLayout(size: size, transition: .immediate) + } + } + } + + public func setSelectedIndex(_ index: Int, animated: Bool) { + guard index != self._selectedIndex else { + return + } + self._selectedIndex = index + if let size = self.validLayout { + self.updateLayout(size: size, transition: .animated(duration: 0.2, curve: .easeInOut)) + } + } + + public var selectedIndexChanged: (Int) -> Void = { _ in } + + private var gestureRecognizer: UIPanGestureRecognizer? + private var gestureSelectedIndex: Int? + + public init(items: [Item], selectedIndex: Int) { + self._items = items + self._selectedIndex = selectedIndex + + self.selectionNode = ASDisplayNode() + self.selectionNode.clipsToBounds = true + self.selectionNode.backgroundColor = .black + self.selectionNode.alpha = 0.75 + + self.itemNodes = items.map { item in + let itemNode = HighlightTrackingButtonNode() + itemNode.contentEdgeInsets = UIEdgeInsets(top: 0.0, left: 8.0, bottom: 0.0, right: 8.0) + itemNode.imageNode.isHidden = true + itemNode.titleNode.maximumNumberOfLines = 1 + itemNode.titleNode.truncationMode = .byTruncatingTail + itemNode.titleNode.alpha = 0.75 + itemNode.accessibilityLabel = item.title + itemNode.accessibilityTraits = [.button] + itemNode.setTitle(item.title, with: textFont, with: .black, for: .normal) + return itemNode + } + + self.highlightedItemNodes = items.map { item in + let itemNode = HighlightTrackingButtonNode() + itemNode.isUserInteractionEnabled = false + itemNode.isHidden = true + itemNode.contentEdgeInsets = UIEdgeInsets(top: 0.0, left: 8.0, bottom: 0.0, right: 8.0) + itemNode.imageNode.isHidden = true + itemNode.titleNode.maximumNumberOfLines = 1 + itemNode.titleNode.truncationMode = .byTruncatingTail + itemNode.setTitle(item.title, with: textFont, with: .white, for: .normal) + return itemNode + } + + super.init() + + self.clipsToBounds = true + if #available(iOS 13.0, *) { + self.layer.cornerCurve = .continuous + self.selectionNode.layer.cornerCurve = .continuous + } + + self.setupButtons() + } + + override func didLoad() { + super.didLoad() + + self.view.disablesInteractiveTransitionGestureRecognizer = true + + let gestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(self.panGesture(_:))) + gestureRecognizer.delegate = self + self.view.addGestureRecognizer(gestureRecognizer) + self.gestureRecognizer = gestureRecognizer + + let blurEffect = UIBlurEffect(style: .light) + let blurEffectView = UIVisualEffectView(effect: blurEffect) + self.blurEffectView = blurEffectView + self.view.addSubview(blurEffectView) + + let vibrancyEffect: UIVibrancyEffect + if #available(iOS 13.0, *) { + vibrancyEffect = UIVibrancyEffect(blurEffect: blurEffect, style: .label) + } else { + vibrancyEffect = UIVibrancyEffect(blurEffect: blurEffect) + } + let vibrancyEffectView = UIVisualEffectView(effect: vibrancyEffect) + self.vibrancyEffectView = vibrancyEffectView + + blurEffectView.contentView.addSubview(vibrancyEffectView) + + self.itemNodes.forEach(vibrancyEffectView.contentView.addSubnode(_:)) + vibrancyEffectView.contentView.addSubnode(self.selectionNode) + + self.highlightedItemNodes.forEach(self.addSubnode(_:)) + } + + func updateLayout(size: CGSize, transition: ContainedViewLayoutTransition) { + self.validLayout = size + + let bounds = CGRect(origin: CGPoint(), size: size) + + self.cornerRadius = size.height / 2.0 + + if let blurEffectView = self.blurEffectView { + transition.updateFrame(view: blurEffectView, frame: bounds) + } + + if let vibrancyEffectView = self.vibrancyEffectView { + transition.updateFrame(view: vibrancyEffectView, frame: bounds) + } + + let selectedIndex: Int + if let gestureSelectedIndex = self.gestureSelectedIndex { + selectedIndex = gestureSelectedIndex + } else { + selectedIndex = self.selectedIndex + } + + if !self.itemNodes.isEmpty { + let itemSize = CGSize(width: floorToScreenPixels(size.width / CGFloat(self.itemNodes.count)), height: size.height) + + let selectionFrame = CGRect(origin: CGPoint(x: itemSize.width * CGFloat(selectedIndex), y: 0.0), size: itemSize).insetBy(dx: 4.0, dy: 4.0) + transition.updateFrameAsPositionAndBounds(node: self.selectionNode, frame: selectionFrame) + self.selectionNode.cornerRadius = selectionFrame.height / 2.0 + + for i in 0 ..< self.itemNodes.count { + let itemNode = self.itemNodes[i] + let highlightedItemNode = self.highlightedItemNodes[i] + let _ = itemNode.measure(itemSize) + transition.updateFrame(node: itemNode, frame: CGRect(origin: CGPoint(x: itemSize.width * CGFloat(i), y: (size.height - itemSize.height) / 2.0), size: itemSize)) + transition.updateFrame(node: highlightedItemNode, frame: CGRect(origin: CGPoint(x: itemSize.width * CGFloat(i), y: (size.height - itemSize.height) / 2.0), size: itemSize)) + + let isSelected = selectedIndex == i + if itemNode.isSelected != isSelected { + if case .animated = transition { + UIView.transition(with: itemNode.view, duration: 0.2, options: .transitionCrossDissolve, animations: { + itemNode.isSelected = isSelected + highlightedItemNode.isHidden = !isSelected + }, completion: nil) + } else { + itemNode.isSelected = isSelected + highlightedItemNode.isHidden = !isSelected + } + if isSelected { + itemNode.accessibilityTraits.insert(.selected) + } else { + itemNode.accessibilityTraits.remove(.selected) + } + } + } + } + } + + private func setupButtons() { + for i in 0 ..< self.itemNodes.count { + let itemNode = self.itemNodes[i] + itemNode.addTarget(self, action: #selector(self.buttonPressed(_:)), forControlEvents: .touchUpInside) + itemNode.highligthedChanged = { [weak self, weak itemNode] highlighted in + if let strongSelf = self, let itemNode = itemNode { + let transition = ContainedViewLayoutTransition.animated(duration: 0.25, curve: .easeInOut) + if strongSelf.selectedIndex == i { + if let gestureRecognizer = strongSelf.gestureRecognizer, case .began = gestureRecognizer.state { + } else { + strongSelf.updateButtonsHighlights(highlightedIndex: highlighted ? i : nil, gestureSelectedIndex: strongSelf.gestureSelectedIndex) + } + } else if highlighted { + transition.updateAlpha(node: itemNode, alpha: 0.4) + } + if !highlighted { + transition.updateAlpha(node: itemNode, alpha: 1.0) + } + } + } + } + } + + private func updateButtonsHighlights(highlightedIndex: Int?, gestureSelectedIndex: Int?) { + let transition = ContainedViewLayoutTransition.animated(duration: 0.25, curve: .easeInOut) + if highlightedIndex == nil && gestureSelectedIndex == nil { + transition.updateTransformScale(node: self.selectionNode, scale: 1.0) + } else { + transition.updateTransformScale(node: self.selectionNode, scale: 0.96) + } + for i in 0 ..< self.itemNodes.count { + let itemNode = self.itemNodes[i] + let highlightedItemNode = self.highlightedItemNodes[i] + if i == highlightedIndex || i == gestureSelectedIndex { + transition.updateTransformScale(node: itemNode, scale: 0.96) + transition.updateTransformScale(node: highlightedItemNode, scale: 0.96) + } else { + transition.updateTransformScale(node: itemNode, scale: 1.0) + transition.updateTransformScale(node: highlightedItemNode, scale: 1.0) + } + } + } + + private func updateButtonsHighlights() { + let transition = ContainedViewLayoutTransition.animated(duration: 0.25, curve: .easeInOut) + if let gestureSelectedIndex = self.gestureSelectedIndex { + for i in 0 ..< self.itemNodes.count { + let itemNode = self.itemNodes[i] + let highlightedItemNode = self.highlightedItemNodes[i] + transition.updateTransformScale(node: itemNode, scale: i == gestureSelectedIndex ? 0.96 : 1.0) + transition.updateTransformScale(node: highlightedItemNode, scale: i == gestureSelectedIndex ? 0.96 : 1.0) + } + } else { + for itemNode in self.itemNodes { + transition.updateTransformScale(node: itemNode, scale: 1.0) + } + for itemNode in self.highlightedItemNodes { + transition.updateTransformScale(node: itemNode, scale: 1.0) + } + } + } + + @objc private func buttonPressed(_ button: HighlightTrackingButtonNode) { + guard let index = self.itemNodes.firstIndex(of: button) else { + return + } + + self._selectedIndex = index + self.selectedIndexChanged(index) + if let size = self.validLayout { + self.updateLayout(size: size, transition: .animated(duration: 0.2, curve: .slide)) + } + } + + public override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { + return self.selectionNode.frame.contains(gestureRecognizer.location(in: self.view)) + } + + @objc private func panGesture(_ recognizer: UIPanGestureRecognizer) { + let location = recognizer.location(in: self.view) + switch recognizer.state { + case .changed: + if !self.selectionNode.frame.contains(location) { + let point = CGPoint(x: max(0.0, min(self.bounds.width, location.x)), y: 1.0) + for i in 0 ..< self.itemNodes.count { + let itemNode = self.itemNodes[i] + if itemNode.frame.contains(point) { + if i != self.gestureSelectedIndex { + self.gestureSelectedIndex = i + self.updateButtonsHighlights(highlightedIndex: nil, gestureSelectedIndex: i) + if let size = self.validLayout { + self.updateLayout(size: size, transition: .animated(duration: 0.35, curve: .slide)) + } + } + break + } + } + } + case .ended: + if let gestureSelectedIndex = self.gestureSelectedIndex { + if gestureSelectedIndex != self.selectedIndex { + self._selectedIndex = gestureSelectedIndex + self.selectedIndexChanged(gestureSelectedIndex) + } + self.gestureSelectedIndex = nil + } + self.updateButtonsHighlights(highlightedIndex: nil, gestureSelectedIndex: nil) + default: + break + } + } +} diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift index 64d5481825..ddb53a75b6 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift @@ -3495,7 +3495,7 @@ public final class VoiceChatController: ViewController { let input = videoCapturer.video() if let videoView = strongSelf.videoRenderingContext.makeView(input: input, blur: false) { let cameraNode = GroupVideoNode(videoView: videoView, backdropVideoView: nil) - let controller = VoiceChatCameraPreviewController(context: strongSelf.context, cameraNode: cameraNode, shareCamera: { [weak self] _, unmuted in + let controller = VoiceChatCameraPreviewController(sharedContext: strongSelf.context.sharedContext, cameraNode: cameraNode, shareCamera: { [weak self] _, unmuted in if let strongSelf = self { strongSelf.call.setIsMuted(action: unmuted ? .unmuted : .muted(isPushToTalkActive: false)) (strongSelf.call as! PresentationGroupCallImpl).requestVideo(capturer: videoCapturer) @@ -3512,29 +3512,6 @@ public final class VoiceChatController: ViewController { }) strongSelf.controller?.present(controller, in: .window(.root)) } - - /*strongSelf.call.makeOutgoingVideoView(requestClone: false, completion: { [weak self] view, _ in - guard let strongSelf = self, let view = view else { - return - } - let cameraNode = GroupVideoNode(videoView: view, backdropVideoView: nil) - let controller = VoiceChatCameraPreviewController(context: strongSelf.context, cameraNode: cameraNode, shareCamera: { [weak self] videoNode, unmuted in - if let strongSelf = self { - strongSelf.call.setIsMuted(action: unmuted ? .unmuted : .muted(isPushToTalkActive: false)) - strongSelf.call.requestVideo() - - if let (layout, navigationHeight) = strongSelf.validLayout { - strongSelf.animatingButtonsSwap = true - strongSelf.containerLayoutUpdated(layout, navigationHeight: navigationHeight, transition: .animated(duration: 0.4, curve: .spring)) - } - } - }, switchCamera: { [weak self] in - Queue.mainQueue().after(0.1) { - self?.call.switchVideoCamera() - } - }) - strongSelf.controller?.present(controller, in: .window(.root)) - })*/ }) } } diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatMainStageNode.swift b/submodules/TelegramCallsUI/Sources/VoiceChatMainStageNode.swift index c4bde166a4..4b1225344d 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatMainStageNode.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatMainStageNode.swift @@ -1090,7 +1090,7 @@ final class VoiceChatMainStageNode: ASDisplayNode { let initialBottomInset = bottomInset var bottomInset = bottomInset - let layoutMode: GroupVideoNode.LayoutMode + let layoutMode: VideoNodeLayoutMode if case .immediate = transition, self.animatingIn { layoutMode = .fillOrFitToSquare bottomInset = 0.0 diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index e701e90889..e136a2154f 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -1033,5518 +1033,5522 @@ public final class PresentationStrings: Equatable { public func PUSH_CHAT_VOICECHAT_START(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[782]!, self._r[782]!, [_1, _2]) } - public var ChatListFolder_NameGroups: String { return self._s[783]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[784]! } - public var VoiceChat_EditDescriptionSave: String { return self._s[785]! } + public var VoiceChat_VideoPreviewContinue: String { return self._s[783]! } + public var ChatListFolder_NameGroups: String { return self._s[784]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[785]! } + public var VoiceChat_EditDescriptionSave: String { return self._s[786]! } public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[786]!, self._r[786]!, [_1, _2]) + return formatWithArgumentRanges(self._s[787]!, self._r[787]!, [_1, _2]) } - public var Watch_Suggestion_TalkLater: String { return self._s[787]! } - public var Checkout_ShippingOption_Title: String { return self._s[788]! } - public var Conversation_TitleRepliesEmpty: String { return self._s[789]! } - public var CreatePoll_TextHeader: String { return self._s[790]! } - public var VoiceOver_Chat_Message: String { return self._s[792]! } - public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[793]! } - public var ContactInfo_Note: String { return self._s[795]! } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[796]! } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[797]! } - public var AutoDownloadSettings_Photos: String { return self._s[798]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[799]! } + public var Watch_Suggestion_TalkLater: String { return self._s[788]! } + public var Checkout_ShippingOption_Title: String { return self._s[789]! } + public var Conversation_TitleRepliesEmpty: String { return self._s[790]! } + public var CreatePoll_TextHeader: String { return self._s[791]! } + public var VoiceOver_Chat_Message: String { return self._s[793]! } + public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[794]! } + public var ContactInfo_Note: String { return self._s[796]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[797]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[798]! } + public var AutoDownloadSettings_Photos: String { return self._s[799]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[800]! } public func Conversation_ForwardTooltip_Chat_One(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[800]!, self._r[800]!, [_0]) + return formatWithArgumentRanges(self._s[801]!, self._r[801]!, [_0]) } - public var Channel_Info_Subscribers: String { return self._s[801]! } - public var ChatList_DeleteForCurrentUser: String { return self._s[802]! } - public var ChatListFolderSettings_FoldersSection: String { return self._s[803]! } - public var ChannelInfo_ScheduleVoiceChat: String { return self._s[804]! } - public var VoiceOver_ChatList_OutgoingMessage: String { return self._s[805]! } + public var Channel_Info_Subscribers: String { return self._s[802]! } + public var ChatList_DeleteForCurrentUser: String { return self._s[803]! } + public var ChatListFolderSettings_FoldersSection: String { return self._s[804]! } + public var ChannelInfo_ScheduleVoiceChat: String { return self._s[805]! } + public var VoiceOver_ChatList_OutgoingMessage: String { return self._s[806]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[809]!, self._r[809]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[810]!, self._r[810]!, [_1, _2, _3]) } - public var AutoNightTheme_System: String { return self._s[810]! } - public var Call_StatusWaiting: String { return self._s[811]! } - public var GroupInfo_GroupHistoryHidden: String { return self._s[812]! } + public var AutoNightTheme_System: String { return self._s[811]! } + public var Call_StatusWaiting: String { return self._s[812]! } + public var GroupInfo_GroupHistoryHidden: String { return self._s[813]! } public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[813]!, self._r[813]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[814]!, self._r[814]!, [_1, _2, _3]) } - public var Conversation_ContextMenuCopy: String { return self._s[815]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[816]! } - public var Notifications_InAppNotificationsVibrate: String { return self._s[817]! } + public var Conversation_ContextMenuCopy: String { return self._s[816]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[817]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[818]! } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[818]!, self._r[818]!, [_0]) + return formatWithArgumentRanges(self._s[819]!, self._r[819]!, [_0]) } - public var Group_Status: String { return self._s[820]! } - public var Group_Setup_HistoryVisible: String { return self._s[821]! } - public var Conversation_UploadFileTooLarge: String { return self._s[822]! } - public var Conversation_DiscardVoiceMessageAction: String { return self._s[823]! } - public var Paint_Edit: String { return self._s[824]! } - public var PeerInfo_AutoremoveMessages: String { return self._s[825]! } + public var Group_Status: String { return self._s[821]! } + public var Group_Setup_HistoryVisible: String { return self._s[822]! } + public var Conversation_UploadFileTooLarge: String { return self._s[823]! } + public var Conversation_DiscardVoiceMessageAction: String { return self._s[824]! } + public var Paint_Edit: String { return self._s[825]! } + public var PeerInfo_AutoremoveMessages: String { return self._s[826]! } public func ChatImport_SelectionConfirmationGroupWithoutTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[827]!, self._r[827]!, [_0]) + return formatWithArgumentRanges(self._s[828]!, self._r[828]!, [_0]) } - public var Channel_EditAdmin_CannotEdit: String { return self._s[828]! } - public var Username_InvalidTooShort: String { return self._s[829]! } - public var ClearCache_StorageOtherApps: String { return self._s[831]! } - public var Conversation_ViewMessage: String { return self._s[832]! } - public var GroupInfo_PublicLinkAdd: String { return self._s[834]! } + public var Channel_EditAdmin_CannotEdit: String { return self._s[829]! } + public var Username_InvalidTooShort: String { return self._s[830]! } + public var ClearCache_StorageOtherApps: String { return self._s[832]! } + public var Conversation_ViewMessage: String { return self._s[833]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[835]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[835]!, self._r[835]!, [_0]) + return formatWithArgumentRanges(self._s[836]!, self._r[836]!, [_0]) } - public var CallSettings_Title: String { return self._s[836]! } + public var CallSettings_Title: String { return self._s[837]! } public func Conversation_BotInteractiveUrlAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[837]!, self._r[837]!, [_0]) + return formatWithArgumentRanges(self._s[838]!, self._r[838]!, [_0]) } public func VoiceOver_Chat_ContactFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[840]!, self._r[840]!, [_0]) + return formatWithArgumentRanges(self._s[841]!, self._r[841]!, [_0]) } - public var PUSH_SENDER_YOU: String { return self._s[843]! } + public var PUSH_SENDER_YOU: String { return self._s[844]! } public func Conversation_DeletedFromContacts(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[844]!, self._r[844]!, [_0]) + return formatWithArgumentRanges(self._s[845]!, self._r[845]!, [_0]) } - public var Profile_ShareContactButton: String { return self._s[845]! } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[846]! } + public var Profile_ShareContactButton: String { return self._s[846]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[847]! } public func VoiceOver_Chat_StickerFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[847]!, self._r[847]!, [_0]) + return formatWithArgumentRanges(self._s[848]!, self._r[848]!, [_0]) } - public var Map_ShareLiveLocation: String { return self._s[848]! } - public var ChatListFolder_TitleEdit: String { return self._s[849]! } + public var Map_ShareLiveLocation: String { return self._s[849]! } + public var ChatListFolder_TitleEdit: String { return self._s[850]! } public func VoiceOver_Chat_AnimatedStickerFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[850]!, self._r[850]!, [_0]) + return formatWithArgumentRanges(self._s[851]!, self._r[851]!, [_0]) } - public var Passport_Address_Address: String { return self._s[852]! } - public var LastSeen_JustNow: String { return self._s[854]! } + public var Passport_Address_Address: String { return self._s[853]! } + public var LastSeen_JustNow: String { return self._s[855]! } public func SecretImage_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[855]!, self._r[855]!, [_0]) + return formatWithArgumentRanges(self._s[856]!, self._r[856]!, [_0]) } - public var ContactInfo_PhoneLabelOther: String { return self._s[856]! } - public var PasscodeSettings_DoNotMatch: String { return self._s[857]! } - public var Weekday_Today: String { return self._s[860]! } - public var DialogList_Title: String { return self._s[861]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[862]! } - public var Cache_ClearCache: String { return self._s[863]! } - public var CreatePoll_ExplanationInfo: String { return self._s[864]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[866]! } - public var Stats_MessageTitle: String { return self._s[867]! } - public var Passport_Address_Street: String { return self._s[869]! } + public var ContactInfo_PhoneLabelOther: String { return self._s[857]! } + public var PasscodeSettings_DoNotMatch: String { return self._s[858]! } + public var Weekday_Today: String { return self._s[861]! } + public var DialogList_Title: String { return self._s[862]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[863]! } + public var Cache_ClearCache: String { return self._s[864]! } + public var CreatePoll_ExplanationInfo: String { return self._s[865]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[867]! } + public var Stats_MessageTitle: String { return self._s[868]! } + public var Passport_Address_Street: String { return self._s[870]! } public func Channel_AdminLog_MessageRemovedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[870]!, self._r[870]!, [_0]) + return formatWithArgumentRanges(self._s[871]!, self._r[871]!, [_0]) } - public var Channel_AdminLog_ChannelEmptyText: String { return self._s[871]! } + public var Channel_AdminLog_ChannelEmptyText: String { return self._s[872]! } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[872]!, self._r[872]!, [_0]) + return formatWithArgumentRanges(self._s[873]!, self._r[873]!, [_0]) } - public var TwoStepAuth_Email: String { return self._s[874]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[875]! } - public var PrivacySettings_PasscodeOn: String { return self._s[876]! } - public var Camera_SquareMode: String { return self._s[878]! } - public var SocksProxySetup_Port: String { return self._s[879]! } - public var Watch_LastSeen_JustNow: String { return self._s[881]! } + public var TwoStepAuth_Email: String { return self._s[875]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[876]! } + public var PrivacySettings_PasscodeOn: String { return self._s[877]! } + public var Camera_SquareMode: String { return self._s[879]! } + public var SocksProxySetup_Port: String { return self._s[880]! } + public var Watch_LastSeen_JustNow: String { return self._s[882]! } public func Location_ProximityAlertSetText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[882]!, self._r[882]!, [_1, _2]) - } - public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[883]!, self._r[883]!, [_1, _2]) } + public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[884]!, self._r[884]!, [_1, _2]) + } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[884]!, self._r[884]!, [_0]) + return formatWithArgumentRanges(self._s[885]!, self._r[885]!, [_0]) } - public var VoiceChat_CancelVoiceChat: String { return self._s[885]! } - public var EditTheme_Expand_Preview_OutgoingText: String { return self._s[886]! } - public var Channel_AdminLogFilter_EventsTitle: String { return self._s[887]! } - public var Watch_Suggestion_HoldOn: String { return self._s[890]! } + public var VoiceChat_CancelVoiceChat: String { return self._s[886]! } + public var EditTheme_Expand_Preview_OutgoingText: String { return self._s[887]! } + public var Channel_AdminLogFilter_EventsTitle: String { return self._s[888]! } + public var Watch_Suggestion_HoldOn: String { return self._s[891]! } public func PUSH_CHANNEL_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[891]!, self._r[891]!, [_1]) + return formatWithArgumentRanges(self._s[892]!, self._r[892]!, [_1]) } - public var CallSettings_TabIcon: String { return self._s[892]! } - public var ScheduledMessages_SendNow: String { return self._s[893]! } - public var Stats_GroupTopWeekdaysTitle: String { return self._s[894]! } - public var ImportStickerPack_NamePlaceholder: String { return self._s[895]! } - public var UserInfo_PhoneCall: String { return self._s[896]! } - public var Month_GenMarch: String { return self._s[897]! } - public var Camera_Discard: String { return self._s[898]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[899]! } - public var Passport_RequestedInformation: String { return self._s[900]! } - public var VoiceChat_RecordingTitlePlaceholder: String { return self._s[902]! } + public var CallSettings_TabIcon: String { return self._s[893]! } + public var ScheduledMessages_SendNow: String { return self._s[894]! } + public var Stats_GroupTopWeekdaysTitle: String { return self._s[895]! } + public var ImportStickerPack_NamePlaceholder: String { return self._s[896]! } + public var UserInfo_PhoneCall: String { return self._s[897]! } + public var Month_GenMarch: String { return self._s[898]! } + public var Camera_Discard: String { return self._s[899]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[900]! } + public var Passport_RequestedInformation: String { return self._s[901]! } + public var VoiceChat_RecordingTitlePlaceholder: String { return self._s[903]! } public func Notification_ProximityYouReached(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[903]!, self._r[903]!, [_1, _2]) + return formatWithArgumentRanges(self._s[904]!, self._r[904]!, [_1, _2]) } - public var Passport_Language_ro: String { return self._s[904]! } + public var Passport_Language_ro: String { return self._s[905]! } public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[905]!, self._r[905]!, [_1, _2]) + return formatWithArgumentRanges(self._s[906]!, self._r[906]!, [_1, _2]) } - public var AutoDownloadSettings_ResetHelp: String { return self._s[906]! } - public var Passport_Identity_DocumentDetails: String { return self._s[908]! } - public var Passport_Address_ScansHelp: String { return self._s[909]! } - public var Location_LiveLocationRequired_Title: String { return self._s[910]! } - public var WallpaperPreview_PreviewBottomTextAnimatable: String { return self._s[911]! } - public var ClearCache_StorageCache: String { return self._s[912]! } - public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[913]! } - public var Conversation_RestrictedText: String { return self._s[914]! } - public var Notifications_MessageNotifications: String { return self._s[916]! } - public var Passport_Scans: String { return self._s[917]! } + public var AutoDownloadSettings_ResetHelp: String { return self._s[907]! } + public var Passport_Identity_DocumentDetails: String { return self._s[909]! } + public var Passport_Address_ScansHelp: String { return self._s[910]! } + public var Location_LiveLocationRequired_Title: String { return self._s[911]! } + public var WallpaperPreview_PreviewBottomTextAnimatable: String { return self._s[912]! } + public var ClearCache_StorageCache: String { return self._s[913]! } + public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[914]! } + public var Conversation_RestrictedText: String { return self._s[915]! } + public var Notifications_MessageNotifications: String { return self._s[917]! } + public var Passport_Scans: String { return self._s[918]! } public func VoiceChat_StatusStartsIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[919]!, self._r[919]!, [_0]) + return formatWithArgumentRanges(self._s[920]!, self._r[920]!, [_0]) } - public var TwoStepAuth_SetupHintTitle: String { return self._s[920]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[921]! } - public var Passport_Identity_SelfieHelp: String { return self._s[922]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[923]! } - public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[924]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[925]! } - public var PeerInfo_ButtonSearch: String { return self._s[926]! } + public var TwoStepAuth_SetupHintTitle: String { return self._s[921]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[922]! } + public var Passport_Identity_SelfieHelp: String { return self._s[923]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[924]! } + public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[925]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[926]! } + public var PeerInfo_ButtonSearch: String { return self._s[927]! } public func Notification_ProximityReachedYou(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[929]!, self._r[929]!, [_1, _2]) + return formatWithArgumentRanges(self._s[930]!, self._r[930]!, [_1, _2]) } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[930]! } - public var Passport_FieldIdentityTranslationHelp: String { return self._s[932]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[933]! } - public var Month_GenSeptember: String { return self._s[934]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[931]! } + public var Passport_FieldIdentityTranslationHelp: String { return self._s[933]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[934]! } + public var Month_GenSeptember: String { return self._s[935]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[936]!, self._r[936]!, [_1, _2]) + return formatWithArgumentRanges(self._s[937]!, self._r[937]!, [_1, _2]) } - public var StickerPacksSettings_ArchivedPacks: String { return self._s[937]! } + public var StickerPacksSettings_ArchivedPacks: String { return self._s[938]! } public func Notification_VoiceChatInvitation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[939]!, self._r[939]!, [_1, _2]) + return formatWithArgumentRanges(self._s[940]!, self._r[940]!, [_1, _2]) } public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[940]!, self._r[940]!, [_0]) + return formatWithArgumentRanges(self._s[941]!, self._r[941]!, [_0]) } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[942]!, self._r[942]!, [_1, _2]) - } - public func PUSH_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[943]!, self._r[943]!, [_1, _2]) } - public var Calls_NotNow: String { return self._s[945]! } - public var Settings_ChatFolders: String { return self._s[950]! } - public var Login_PadPhoneHelpTitle: String { return self._s[951]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[952]! } - public var Widget_MessageAutoremoveTimerRemoved: String { return self._s[953]! } - public var VoiceChat_RecordingSaved: String { return self._s[954]! } - public var Settings_ChatBackground: String { return self._s[955]! } + public func PUSH_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[944]!, self._r[944]!, [_1, _2]) + } + public var Calls_NotNow: String { return self._s[946]! } + public var Settings_ChatFolders: String { return self._s[951]! } + public var Login_PadPhoneHelpTitle: String { return self._s[952]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[953]! } + public var Widget_MessageAutoremoveTimerRemoved: String { return self._s[954]! } + public var VoiceChat_RecordingSaved: String { return self._s[955]! } + public var Settings_ChatBackground: String { return self._s[956]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[957]!, self._r[957]!, [_1, _2]) + return formatWithArgumentRanges(self._s[958]!, self._r[958]!, [_1, _2]) } - public var ProxyServer_VoiceOver_Active: String { return self._s[958]! } - public var Call_StatusBusy: String { return self._s[959]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[960]! } - public var Login_NetworkError: String { return self._s[962]! } - public var TwoStepAuth_SetupPasswordDescription: String { return self._s[963]! } - public var Privacy_Calls_Integration: String { return self._s[964]! } - public var DialogList_SearchSectionMessages: String { return self._s[965]! } - public var AutoDownloadSettings_VideosTitle: String { return self._s[966]! } - public var Preview_DeletePhoto: String { return self._s[967]! } - public var VoiceChat_Video: String { return self._s[968]! } - public var PrivacySettings_PhoneNumber: String { return self._s[970]! } - public var Forward_ErrorDisabledForChat: String { return self._s[971]! } - public var Watch_Compose_CurrentLocation: String { return self._s[972]! } - public var Settings_CallSettings: String { return self._s[973]! } - public var TwoFactorRemember_Done_Action: String { return self._s[974]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[975]! } - public var Conversation_StickerRemovedFromFavorites: String { return self._s[976]! } - public var ChatList_Context_MarkAllAsRead: String { return self._s[977]! } - public var ChatSettings_AutoPlayAnimations: String { return self._s[978]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[979]! } - public var OwnershipTransfer_SecurityRequirements: String { return self._s[980]! } - public var Map_LiveLocationFor1Hour: String { return self._s[981]! } + public var ProxyServer_VoiceOver_Active: String { return self._s[959]! } + public var Call_StatusBusy: String { return self._s[960]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[961]! } + public var Login_NetworkError: String { return self._s[963]! } + public var TwoStepAuth_SetupPasswordDescription: String { return self._s[964]! } + public var Privacy_Calls_Integration: String { return self._s[965]! } + public var DialogList_SearchSectionMessages: String { return self._s[966]! } + public var AutoDownloadSettings_VideosTitle: String { return self._s[967]! } + public var Preview_DeletePhoto: String { return self._s[968]! } + public var VoiceChat_Video: String { return self._s[969]! } + public var PrivacySettings_PhoneNumber: String { return self._s[971]! } + public var Forward_ErrorDisabledForChat: String { return self._s[972]! } + public var Watch_Compose_CurrentLocation: String { return self._s[973]! } + public var Settings_CallSettings: String { return self._s[974]! } + public var TwoFactorRemember_Done_Action: String { return self._s[975]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[976]! } + public var Conversation_StickerRemovedFromFavorites: String { return self._s[977]! } + public var ChatList_Context_MarkAllAsRead: String { return self._s[978]! } + public var ChatSettings_AutoPlayAnimations: String { return self._s[979]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[980]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[981]! } + public var Map_LiveLocationFor1Hour: String { return self._s[982]! } public func Privacy_GroupsAndChannels_InviteToGroupError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[982]!, self._r[982]!, [_0, _1]) + return formatWithArgumentRanges(self._s[983]!, self._r[983]!, [_0, _1]) } - public var VoiceChat_MutedByAdmin: String { return self._s[983]! } + public var VoiceChat_MutedByAdmin: String { return self._s[984]! } public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[984]!, self._r[984]!, [_0]) + return formatWithArgumentRanges(self._s[985]!, self._r[985]!, [_0]) } - public var Conversation_UnvotePoll: String { return self._s[985]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[986]! } + public var Conversation_UnvotePoll: String { return self._s[986]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[987]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[987]!, self._r[987]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[988]!, self._r[988]!, [_1, "\(_2)"]) } - public var Passport_InfoTitle: String { return self._s[988]! } + public var Passport_InfoTitle: String { return self._s[989]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[989]!, self._r[989]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[990]!, self._r[990]!, ["\(_0)"]) } - public var AccentColor_Title: String { return self._s[990]! } + public var AccentColor_Title: String { return self._s[991]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[991]!, self._r[991]!, [_1, _2]) + return formatWithArgumentRanges(self._s[992]!, self._r[992]!, [_1, _2]) } public func Notification_JoinedChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[994]!, self._r[994]!, [_0]) + return formatWithArgumentRanges(self._s[995]!, self._r[995]!, [_0]) } - public var AutoDownloadSettings_DataUsageCustom: String { return self._s[995]! } - public var Conversation_ShareBotLocationConfirmation: String { return self._s[996]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[997]! } - public var VoiceOver_Editing_ClearText: String { return self._s[998]! } - public var Conversation_Unarchive: String { return self._s[999]! } - public var Notification_CallOutgoing: String { return self._s[1000]! } - public var Channel_Setup_PublicNoLink: String { return self._s[1001]! } - public var Passport_Identity_GenderPlaceholder: String { return self._s[1002]! } - public var Message_Animation: String { return self._s[1003]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[1004]! } - public var ChatSettings_ConnectionType_Title: String { return self._s[1005]! } + public var AutoDownloadSettings_DataUsageCustom: String { return self._s[996]! } + public var Conversation_ShareBotLocationConfirmation: String { return self._s[997]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[998]! } + public var VoiceOver_Editing_ClearText: String { return self._s[999]! } + public var Conversation_Unarchive: String { return self._s[1000]! } + public var Notification_CallOutgoing: String { return self._s[1001]! } + public var Channel_Setup_PublicNoLink: String { return self._s[1002]! } + public var Passport_Identity_GenderPlaceholder: String { return self._s[1003]! } + public var Message_Animation: String { return self._s[1004]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[1005]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[1006]! } public func Watch_Time_ShortFullAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1006]!, self._r[1006]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1007]!, self._r[1007]!, [_1, _2]) } public func VoiceChat_StatusSpeakingVolume(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1007]!, self._r[1007]!, [_0]) + return formatWithArgumentRanges(self._s[1008]!, self._r[1008]!, [_0]) } - public var Notification_CallBack: String { return self._s[1008]! } - public var Appearance_Title: String { return self._s[1011]! } - public var NotificationsSound_Glass: String { return self._s[1013]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[1015]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[1017]! } - public var ChatSearch_SearchPlaceholder: String { return self._s[1018]! } - public var Passport_Identity_AddPassport: String { return self._s[1019]! } - public var GroupPermission_NoAddMembers: String { return self._s[1021]! } - public var ContactList_Context_SendMessage: String { return self._s[1022]! } - public var PhotoEditor_GrainTool: String { return self._s[1023]! } - public var Settings_CopyPhoneNumber: String { return self._s[1024]! } - public var Passport_Address_City: String { return self._s[1025]! } - public var VoiceChat_LeaveAndCancelVoiceChat: String { return self._s[1026]! } - public var ChannelRemoved_RemoveInfo: String { return self._s[1027]! } - public var SocksProxySetup_Password: String { return self._s[1029]! } - public var Settings_Passport: String { return self._s[1030]! } - public var Channel_MessagePhotoUpdated: String { return self._s[1032]! } - public var Stats_LanguagesTitle: String { return self._s[1033]! } - public var ChatList_PeerTypeGroup: String { return self._s[1034]! } - public var Privacy_Calls_P2PHelp: String { return self._s[1035]! } - public var VoiceOver_Chat_PollNoVotes: String { return self._s[1036]! } - public var Embed_PlayingInPIP: String { return self._s[1037]! } - public var ImportStickerPack_GeneratingLink: String { return self._s[1039]! } - public var BlockedUsers_BlockUser: String { return self._s[1041]! } - public var Login_CancelPhoneVerificationContinue: String { return self._s[1042]! } + public var Notification_CallBack: String { return self._s[1009]! } + public var Appearance_Title: String { return self._s[1012]! } + public var NotificationsSound_Glass: String { return self._s[1014]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[1016]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[1018]! } + public var ChatSearch_SearchPlaceholder: String { return self._s[1019]! } + public var Passport_Identity_AddPassport: String { return self._s[1020]! } + public var GroupPermission_NoAddMembers: String { return self._s[1022]! } + public var ContactList_Context_SendMessage: String { return self._s[1023]! } + public var PhotoEditor_GrainTool: String { return self._s[1024]! } + public var Settings_CopyPhoneNumber: String { return self._s[1025]! } + public var Passport_Address_City: String { return self._s[1026]! } + public var VoiceChat_LeaveAndCancelVoiceChat: String { return self._s[1027]! } + public var ChannelRemoved_RemoveInfo: String { return self._s[1028]! } + public var SocksProxySetup_Password: String { return self._s[1030]! } + public var Settings_Passport: String { return self._s[1031]! } + public var Channel_MessagePhotoUpdated: String { return self._s[1033]! } + public var Stats_LanguagesTitle: String { return self._s[1034]! } + public var ChatList_PeerTypeGroup: String { return self._s[1035]! } + public var Privacy_Calls_P2PHelp: String { return self._s[1036]! } + public var VoiceOver_Chat_PollNoVotes: String { return self._s[1037]! } + public var Embed_PlayingInPIP: String { return self._s[1038]! } + public var ImportStickerPack_GeneratingLink: String { return self._s[1040]! } + public var BlockedUsers_BlockUser: String { return self._s[1042]! } + public var Login_CancelPhoneVerificationContinue: String { return self._s[1043]! } public func PUSH_CHANNEL_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1043]!, self._r[1043]!, [_1]) + return formatWithArgumentRanges(self._s[1044]!, self._r[1044]!, [_1]) } - public var AuthSessions_LoggedIn: String { return self._s[1044]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[1045]! } - public var Activity_UploadingDocument: String { return self._s[1046]! } - public var PeopleNearby_NoMembers: String { return self._s[1047]! } - public var TwoFactorRemember_Text: String { return self._s[1049]! } - public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1051]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[1052]! } - public var VoiceOver_Chat_OpenLinkHint: String { return self._s[1053]! } - public var InstantPage_VoiceOver_IncreaseFontSize: String { return self._s[1054]! } - public var Settings_ViewVideo: String { return self._s[1055]! } - public var Map_ShowPlaces: String { return self._s[1057]! } - public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1058]! } - public var InviteLink_Create_Title: String { return self._s[1059]! } - public var Notification_CreatedGroup: String { return self._s[1060]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[1061]! } + public var AuthSessions_LoggedIn: String { return self._s[1045]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[1046]! } + public var Activity_UploadingDocument: String { return self._s[1047]! } + public var PeopleNearby_NoMembers: String { return self._s[1048]! } + public var TwoFactorRemember_Text: String { return self._s[1050]! } + public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1052]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[1053]! } + public var VoiceOver_Chat_OpenLinkHint: String { return self._s[1054]! } + public var InstantPage_VoiceOver_IncreaseFontSize: String { return self._s[1055]! } + public var Settings_ViewVideo: String { return self._s[1056]! } + public var Map_ShowPlaces: String { return self._s[1058]! } + public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1059]! } + public var InviteLink_Create_Title: String { return self._s[1060]! } + public var Notification_CreatedGroup: String { return self._s[1061]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[1062]! } public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1062]!, self._r[1062]!, [_0]) + return formatWithArgumentRanges(self._s[1063]!, self._r[1063]!, [_0]) } - public var Conversation_StatusLeftGroup: String { return self._s[1063]! } - public var Theme_Colors_Messages: String { return self._s[1064]! } - public var AuthSessions_EmptyText: String { return self._s[1065]! } + public var Conversation_StatusLeftGroup: String { return self._s[1064]! } + public var Theme_Colors_Messages: String { return self._s[1065]! } + public var AuthSessions_EmptyText: String { return self._s[1066]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1066]!, self._r[1066]!, [_1]) + return formatWithArgumentRanges(self._s[1067]!, self._r[1067]!, [_1]) } - public var UserInfo_StartSecretChat: String { return self._s[1067]! } - public var ChatListFolderSettings_EditFoldersInfo: String { return self._s[1068]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[1069]! } - public var TwoFactorSetup_ResetDone_Title: String { return self._s[1070]! } - public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1071]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[1073]! } - public var PeerInfo_PaneFiles: String { return self._s[1074]! } - public var VoiceChat_DisplayAs: String { return self._s[1075]! } - public var PrivacySettings_AutoArchive: String { return self._s[1076]! } - public var Camera_VideoMode: String { return self._s[1077]! } - public var NotificationsSound_Alert: String { return self._s[1078]! } - public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1079]! } - public var Appearance_AutoNightTheme: String { return self._s[1080]! } - public var Passport_Language_he: String { return self._s[1081]! } - public var Passport_InvalidPasswordError: String { return self._s[1082]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1083]! } - public var UserInfo_InviteBotToGroup: String { return self._s[1084]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[1085]! } - public var Common_TakePhoto: String { return self._s[1086]! } + public var UserInfo_StartSecretChat: String { return self._s[1068]! } + public var ChatListFolderSettings_EditFoldersInfo: String { return self._s[1069]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[1070]! } + public var TwoFactorSetup_ResetDone_Title: String { return self._s[1071]! } + public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1072]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[1074]! } + public var PeerInfo_PaneFiles: String { return self._s[1075]! } + public var VoiceChat_DisplayAs: String { return self._s[1076]! } + public var PrivacySettings_AutoArchive: String { return self._s[1077]! } + public var Camera_VideoMode: String { return self._s[1078]! } + public var NotificationsSound_Alert: String { return self._s[1079]! } + public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1080]! } + public var Appearance_AutoNightTheme: String { return self._s[1081]! } + public var Passport_Language_he: String { return self._s[1082]! } + public var Passport_InvalidPasswordError: String { return self._s[1083]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1084]! } + public var UserInfo_InviteBotToGroup: String { return self._s[1085]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[1086]! } + public var Common_TakePhoto: String { return self._s[1087]! } public func Channel_AdminLog_RevokedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1087]!, self._r[1087]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1088]!, self._r[1088]!, [_1, _2]) } - public var Passport_Email_UseTelegramEmailHelp: String { return self._s[1088]! } - public var ChatList_Context_JoinChannel: String { return self._s[1089]! } - public var MediaPlayer_UnknownArtist: String { return self._s[1090]! } - public var VoiceChat_EditDescriptionText: String { return self._s[1091]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[1094]! } - public var Channel_OwnershipTransfer_Title: String { return self._s[1095]! } - public var EditTheme_UploadEditedTheme: String { return self._s[1096]! } - public var Settings_SetProfilePhotoOrVideo: String { return self._s[1098]! } - public var Passport_FieldOneOf_Delimeter: String { return self._s[1099]! } - public var MessagePoll_ViewResults: String { return self._s[1100]! } - public var Group_Setup_TypePrivateHelp: String { return self._s[1101]! } + public var Passport_Email_UseTelegramEmailHelp: String { return self._s[1089]! } + public var ChatList_Context_JoinChannel: String { return self._s[1090]! } + public var MediaPlayer_UnknownArtist: String { return self._s[1091]! } + public var VoiceChat_EditDescriptionText: String { return self._s[1092]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[1095]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[1096]! } + public var EditTheme_UploadEditedTheme: String { return self._s[1097]! } + public var Settings_SetProfilePhotoOrVideo: String { return self._s[1099]! } + public var Passport_FieldOneOf_Delimeter: String { return self._s[1100]! } + public var MessagePoll_ViewResults: String { return self._s[1101]! } + public var Group_Setup_TypePrivateHelp: String { return self._s[1102]! } public func UserInfo_ContactForwardTooltip_Chat_One(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1102]!, self._r[1102]!, [_0]) + return formatWithArgumentRanges(self._s[1103]!, self._r[1103]!, [_0]) } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1103]! } - public var Privacy_PaymentsClear_ShippingInfoCleared: String { return self._s[1104]! } - public var ChatList_Search_ShowLess: String { return self._s[1105]! } - public var InviteLink_Create_UsersLimitNoLimit: String { return self._s[1106]! } - public var UserInfo_ShareBot: String { return self._s[1107]! } - public var Privacy_Calls_P2P: String { return self._s[1109]! } - public var WebBrowser_InAppSafari: String { return self._s[1110]! } - public var SharedMedia_EmptyFilesText: String { return self._s[1113]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[1114]! } - public var GroupInfo_SetSound: String { return self._s[1115]! } - public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1116]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1104]! } + public var Privacy_PaymentsClear_ShippingInfoCleared: String { return self._s[1105]! } + public var ChatList_Search_ShowLess: String { return self._s[1106]! } + public var InviteLink_Create_UsersLimitNoLimit: String { return self._s[1107]! } + public var UserInfo_ShareBot: String { return self._s[1108]! } + public var Privacy_Calls_P2P: String { return self._s[1110]! } + public var WebBrowser_InAppSafari: String { return self._s[1111]! } + public var SharedMedia_EmptyFilesText: String { return self._s[1114]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[1115]! } + public var GroupInfo_SetSound: String { return self._s[1116]! } + public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1117]! } public func Conversation_AutoremoveRemainingTime(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1117]!, self._r[1117]!, [_0]) + return formatWithArgumentRanges(self._s[1118]!, self._r[1118]!, [_0]) } - public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1118]! } - public var Channel_AdminLogFilter_EventsAll: String { return self._s[1119]! } - public var CallSettings_UseLessData: String { return self._s[1120]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[1121]! } - public var NotificationsSound_Chord: String { return self._s[1122]! } - public var PhotoEditor_CurvesTool: String { return self._s[1123]! } - public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1124]! } - public var Resolve_ErrorNotFound: String { return self._s[1125]! } - public var Activity_PlayingGame: String { return self._s[1126]! } + public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1119]! } + public var Channel_AdminLogFilter_EventsAll: String { return self._s[1120]! } + public var CallSettings_UseLessData: String { return self._s[1121]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[1122]! } + public var NotificationsSound_Chord: String { return self._s[1123]! } + public var PhotoEditor_CurvesTool: String { return self._s[1124]! } + public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1125]! } + public var Resolve_ErrorNotFound: String { return self._s[1126]! } + public var Activity_PlayingGame: String { return self._s[1127]! } public func VoiceChat_InvitedPeerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1130]!, self._r[1130]!, [_0]) + return formatWithArgumentRanges(self._s[1131]!, self._r[1131]!, [_0]) } - public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1131]! } + public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1132]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1132]!, self._r[1132]!, [_1]) + return formatWithArgumentRanges(self._s[1133]!, self._r[1133]!, [_1]) } - public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[1133]! } - public var Notification_CallIncoming: String { return self._s[1134]! } - public var Stats_EnabledNotifications: String { return self._s[1135]! } - public var Notification_VoiceChatStartedChannel: String { return self._s[1136]! } - public var Notifications_PermissionsOpenSettings: String { return self._s[1137]! } - public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1138]! } + public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[1134]! } + public var Notification_CallIncoming: String { return self._s[1135]! } + public var Stats_EnabledNotifications: String { return self._s[1136]! } + public var Notification_VoiceChatStartedChannel: String { return self._s[1137]! } + public var Notifications_PermissionsOpenSettings: String { return self._s[1138]! } + public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1139]! } public func Activity_RemindAboutChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1139]!, self._r[1139]!, [_0]) + return formatWithArgumentRanges(self._s[1140]!, self._r[1140]!, [_0]) } - public var VoiceChat_StatusMutedYou: String { return self._s[1140]! } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[1141]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[1142]! } - public var StickerPacksSettings_Title: String { return self._s[1143]! } + public var VoiceChat_StatusMutedYou: String { return self._s[1141]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[1142]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[1143]! } + public var StickerPacksSettings_Title: String { return self._s[1144]! } public func Channel_AdminLog_MessageGroupPreHistoryVisible(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1144]!, self._r[1144]!, [_0]) + return formatWithArgumentRanges(self._s[1145]!, self._r[1145]!, [_0]) } - public var Watch_NoConnection: String { return self._s[1145]! } - public var EncryptionKey_Title: String { return self._s[1146]! } - public var Widget_AuthRequired: String { return self._s[1147]! } + public var Watch_NoConnection: String { return self._s[1146]! } + public var EncryptionKey_Title: String { return self._s[1147]! } + public var Widget_AuthRequired: String { return self._s[1148]! } public func PUSH_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1148]!, self._r[1148]!, [_1]) + return formatWithArgumentRanges(self._s[1149]!, self._r[1149]!, [_1]) } - public var Notifications_ExceptionsTitle: String { return self._s[1149]! } - public var EditTheme_Expand_TopInfo: String { return self._s[1150]! } + public var Notifications_ExceptionsTitle: String { return self._s[1150]! } + public var EditTheme_Expand_TopInfo: String { return self._s[1151]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1151]!, self._r[1151]!, [_0]) + return formatWithArgumentRanges(self._s[1152]!, self._r[1152]!, [_0]) } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[1153]! } - public var Notifications_GroupNotificationsSound: String { return self._s[1154]! } - public var VoiceChat_SpeakPermissionAdmin: String { return self._s[1155]! } - public var Passport_Email_EnterOtherEmail: String { return self._s[1156]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[1154]! } + public var Notifications_GroupNotificationsSound: String { return self._s[1155]! } + public var VoiceChat_SpeakPermissionAdmin: String { return self._s[1156]! } + public var Passport_Email_EnterOtherEmail: String { return self._s[1157]! } public func VoiceChat_RemovePeerConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1159]!, self._r[1159]!, [_0]) + return formatWithArgumentRanges(self._s[1160]!, self._r[1160]!, [_0]) } - public var Conversation_AddToContacts: String { return self._s[1160]! } - public var AutoDownloadSettings_DataUsageMedium: String { return self._s[1161]! } - public var AuthSessions_LogOutApplications: String { return self._s[1163]! } - public var VoiceChat_LeaveVoiceChat: String { return self._s[1164]! } - public var ChatList_Context_Unpin: String { return self._s[1165]! } - public var PeopleNearby_DiscoverDescription: String { return self._s[1166]! } - public var UserInfo_FakeBotWarning: String { return self._s[1167]! } - public var Notification_MessageLifetime1d: String { return self._s[1168]! } - public var PrivacyLastSeenSettings_NeverShareWith_Title: String { return self._s[1169]! } - public var ChatListFolder_CategoryChannels: String { return self._s[1170]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[1171]! } - public var Notifications_PermissionsAllow: String { return self._s[1172]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[1173]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[1175]! } - public var VoiceChat_ImproveYourProfileText: String { return self._s[1176]! } - public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1177]! } - public var ChatImportActivity_ErrorInvalidChatType: String { return self._s[1178]! } + public var Conversation_AddToContacts: String { return self._s[1161]! } + public var AutoDownloadSettings_DataUsageMedium: String { return self._s[1162]! } + public var AuthSessions_LogOutApplications: String { return self._s[1164]! } + public var VoiceChat_LeaveVoiceChat: String { return self._s[1165]! } + public var ChatList_Context_Unpin: String { return self._s[1166]! } + public var PeopleNearby_DiscoverDescription: String { return self._s[1167]! } + public var UserInfo_FakeBotWarning: String { return self._s[1168]! } + public var Notification_MessageLifetime1d: String { return self._s[1169]! } + public var PrivacyLastSeenSettings_NeverShareWith_Title: String { return self._s[1170]! } + public var ChatListFolder_CategoryChannels: String { return self._s[1171]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[1172]! } + public var Notifications_PermissionsAllow: String { return self._s[1173]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[1174]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[1176]! } + public var VoiceChat_ImproveYourProfileText: String { return self._s[1177]! } + public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1178]! } + public var ChatImportActivity_ErrorInvalidChatType: String { return self._s[1179]! } public func Conversation_ScheduledVoiceChatStartsToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1179]!, self._r[1179]!, [_0]) - } - public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1180]!, self._r[1180]!, [_0]) } - public var Conversation_AutoremoveTimerRemovedChannel: String { return self._s[1182]! } - public var Notifications_MessageNotificationsHelp: String { return self._s[1184]! } - public var WallpaperSearch_ColorPink: String { return self._s[1185]! } - public var ContactInfo_PhoneNumberHidden: String { return self._s[1186]! } - public var Passport_Identity_IssueDate: String { return self._s[1188]! } + public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1181]!, self._r[1181]!, [_0]) + } + public var Conversation_AutoremoveTimerRemovedChannel: String { return self._s[1183]! } + public var Notifications_MessageNotificationsHelp: String { return self._s[1185]! } + public var WallpaperSearch_ColorPink: String { return self._s[1186]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[1187]! } + public var Passport_Identity_IssueDate: String { return self._s[1189]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1189]!, self._r[1189]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1190]!, self._r[1190]!, [_1, _2]) } - public var ChatList_DeleteForAllSubscribersConfirmationText: String { return self._s[1190]! } - public var Channel_Info_Description: String { return self._s[1191]! } - public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1192]! } - public var Weekday_ShortTuesday: String { return self._s[1193]! } - public var Common_Back: String { return self._s[1194]! } - public var Chat_PinnedMessagesHiddenTitle: String { return self._s[1196]! } - public var ChatListFolder_AddChats: String { return self._s[1197]! } - public var Common_Close: String { return self._s[1199]! } - public var Map_OpenIn: String { return self._s[1200]! } - public var Group_Setup_HistoryTitle: String { return self._s[1201]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[1202]! } - public var Notification_MessageLifetime1h: String { return self._s[1203]! } + public var ChatList_DeleteForAllSubscribersConfirmationText: String { return self._s[1191]! } + public var Channel_Info_Description: String { return self._s[1192]! } + public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1193]! } + public var Weekday_ShortTuesday: String { return self._s[1194]! } + public var Common_Back: String { return self._s[1195]! } + public var Chat_PinnedMessagesHiddenTitle: String { return self._s[1197]! } + public var ChatListFolder_AddChats: String { return self._s[1198]! } + public var Common_Close: String { return self._s[1200]! } + public var Map_OpenIn: String { return self._s[1201]! } + public var Group_Setup_HistoryTitle: String { return self._s[1202]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[1203]! } + public var Notification_MessageLifetime1h: String { return self._s[1204]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1204]!, self._r[1204]!, [_0]) + return formatWithArgumentRanges(self._s[1205]!, self._r[1205]!, [_0]) } - public var Watch_Contacts_NoResults: String { return self._s[1206]! } - public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1207]! } - public var Checkout_Phone: String { return self._s[1208]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[1209]! } + public var Watch_Contacts_NoResults: String { return self._s[1207]! } + public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1208]! } + public var Checkout_Phone: String { return self._s[1209]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[1210]! } public func Channel_CommentsGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1210]!, self._r[1210]!, [_0]) + return formatWithArgumentRanges(self._s[1211]!, self._r[1211]!, [_0]) } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1211]!, self._r[1211]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1212]!, self._r[1212]!, ["\(_0)"]) } - public var Conversation_AudioRateTooltipSpeedUp: String { return self._s[1212]! } - public var ChatAdmins_Title: String { return self._s[1213]! } - public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[1214]! } + public var Conversation_AudioRateTooltipSpeedUp: String { return self._s[1213]! } + public var ChatAdmins_Title: String { return self._s[1214]! } + public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[1215]! } public func PUSH_CHANNEL_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1215]!, self._r[1215]!, [_1]) + return formatWithArgumentRanges(self._s[1216]!, self._r[1216]!, [_1]) } - public var Common_Done: String { return self._s[1216]! } - public var ChatList_HeaderImportIntoAnExistingGroup: String { return self._s[1217]! } - public var Appearance_AppIconNew2: String { return self._s[1218]! } + public var Common_Done: String { return self._s[1217]! } + public var ChatList_HeaderImportIntoAnExistingGroup: String { return self._s[1218]! } + public var Appearance_AppIconNew2: String { return self._s[1219]! } public func PUSH_PINNED_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1222]!, self._r[1222]!, [_1]) + return formatWithArgumentRanges(self._s[1223]!, self._r[1223]!, [_1]) } - public var Appearance_ThemeCarouselNight: String { return self._s[1223]! } - public var InviteLink_Expired: String { return self._s[1225]! } - public var Preview_OpenInInstagram: String { return self._s[1226]! } - public var Wallpaper_SetColor: String { return self._s[1231]! } - public var VoiceOver_Media_PlaybackRate: String { return self._s[1232]! } - public var ChatSettings_Groups: String { return self._s[1233]! } + public var Appearance_ThemeCarouselNight: String { return self._s[1224]! } + public var InviteLink_Expired: String { return self._s[1226]! } + public var Preview_OpenInInstagram: String { return self._s[1227]! } + public var Wallpaper_SetColor: String { return self._s[1232]! } + public var VoiceOver_Media_PlaybackRate: String { return self._s[1233]! } + public var ChatSettings_Groups: String { return self._s[1234]! } public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1234]!, self._r[1234]!, [_0]) + return formatWithArgumentRanges(self._s[1235]!, self._r[1235]!, [_0]) } - public var Contacts_SortedByName: String { return self._s[1235]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1236]! } - public var Channel_Management_LabelCreator: String { return self._s[1237]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1238]! } + public var Contacts_SortedByName: String { return self._s[1236]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1237]! } + public var Channel_Management_LabelCreator: String { return self._s[1238]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1239]! } public func PrivacySettings_LastSeenContactsMinusPlus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1239]!, self._r[1239]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1240]!, self._r[1240]!, [_0, _1]) } - public var Group_GroupMembersHeader: String { return self._s[1240]! } - public var Group_PublicLink_Title: String { return self._s[1241]! } - public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1242]! } - public var VoiceOver_Chat_Photo: String { return self._s[1243]! } - public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[1244]! } - public var IntentsSettings_SuggestBy: String { return self._s[1245]! } - public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[1246]! } - public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1247]! } - public var PhoneNumberHelp_ChangeNumber: String { return self._s[1248]! } - public var LogoutOptions_SetPasscodeText: String { return self._s[1249]! } - public var Map_OpenInMaps: String { return self._s[1250]! } - public var ContactInfo_PhoneLabelWorkFax: String { return self._s[1251]! } - public var BlockedUsers_Unblock: String { return self._s[1252]! } + public var Group_GroupMembersHeader: String { return self._s[1241]! } + public var Group_PublicLink_Title: String { return self._s[1242]! } + public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1243]! } + public var VoiceOver_Chat_Photo: String { return self._s[1244]! } + public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[1245]! } + public var IntentsSettings_SuggestBy: String { return self._s[1246]! } + public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[1247]! } + public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1248]! } + public var PhoneNumberHelp_ChangeNumber: String { return self._s[1249]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[1250]! } + public var Map_OpenInMaps: String { return self._s[1251]! } + public var ContactInfo_PhoneLabelWorkFax: String { return self._s[1252]! } + public var BlockedUsers_Unblock: String { return self._s[1253]! } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1253]!, self._r[1253]!, [_1, _2]) - } - public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1254]!, self._r[1254]!, [_1, _2]) } - public var ChatImport_CreateGroupAlertTitle: String { return self._s[1256]! } - public var Conversation_Block: String { return self._s[1257]! } - public var VoiceChat_PersonalAccount: String { return self._s[1258]! } - public var Passport_Scans_UploadNew: String { return self._s[1259]! } - public var Share_Title: String { return self._s[1260]! } - public var Conversation_ApplyLocalization: String { return self._s[1261]! } - public var SharedMedia_EmptyLinksText: String { return self._s[1262]! } - public var Settings_NotificationsAndSounds: String { return self._s[1263]! } - public var Stats_ViewsByHoursTitle: String { return self._s[1264]! } - public var PhotoEditor_QualityMedium: String { return self._s[1265]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[1266]! } + public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1255]!, self._r[1255]!, [_1, _2]) + } + public var ChatImport_CreateGroupAlertTitle: String { return self._s[1257]! } + public var Conversation_Block: String { return self._s[1258]! } + public var VoiceChat_PersonalAccount: String { return self._s[1259]! } + public var Passport_Scans_UploadNew: String { return self._s[1260]! } + public var Share_Title: String { return self._s[1261]! } + public var Conversation_ApplyLocalization: String { return self._s[1262]! } + public var SharedMedia_EmptyLinksText: String { return self._s[1263]! } + public var Settings_NotificationsAndSounds: String { return self._s[1264]! } + public var Stats_ViewsByHoursTitle: String { return self._s[1265]! } + public var PhotoEditor_QualityMedium: String { return self._s[1266]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[1267]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1267]!, self._r[1267]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1268]!, self._r[1268]!, [_1, _2]) } - public var Conversation_RestrictedInline: String { return self._s[1268]! } - public var Passport_Language_tr: String { return self._s[1269]! } - public var Call_Mute: String { return self._s[1270]! } + public var Conversation_RestrictedInline: String { return self._s[1269]! } + public var Passport_Language_tr: String { return self._s[1270]! } + public var Call_Mute: String { return self._s[1271]! } public func Conversation_NoticeInvitedByInGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1271]!, self._r[1271]!, [_0]) + return formatWithArgumentRanges(self._s[1272]!, self._r[1272]!, [_0]) } - public var Passport_Language_bn: String { return self._s[1272]! } - public var Common_Save: String { return self._s[1274]! } - public var AccessDenied_LocationTracking: String { return self._s[1276]! } - public var Month_ShortOctober: String { return self._s[1277]! } - public var AutoDownloadSettings_WiFi: String { return self._s[1278]! } - public var ProfilePhoto_SetMainPhoto: String { return self._s[1280]! } - public var ChangePhoneNumberNumber_NewNumber: String { return self._s[1281]! } + public var Passport_Language_bn: String { return self._s[1273]! } + public var Common_Save: String { return self._s[1275]! } + public var AccessDenied_LocationTracking: String { return self._s[1277]! } + public var Month_ShortOctober: String { return self._s[1278]! } + public var AutoDownloadSettings_WiFi: String { return self._s[1279]! } + public var ProfilePhoto_SetMainPhoto: String { return self._s[1281]! } + public var ChangePhoneNumberNumber_NewNumber: String { return self._s[1282]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1282]!, self._r[1282]!, [_0]) + return formatWithArgumentRanges(self._s[1283]!, self._r[1283]!, [_0]) } - public var Watch_ChannelInfo_Title: String { return self._s[1283]! } - public var State_Updating: String { return self._s[1284]! } - public var Conversation_UnblockUser: String { return self._s[1285]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1286]! } - public var Map_GetDirections: String { return self._s[1287]! } - public var Watch_Compose_AddContact: String { return self._s[1289]! } - public var Conversation_Dice_u26BD: String { return self._s[1290]! } - public var AccessDenied_PhotosRestricted: String { return self._s[1291]! } + public var Watch_ChannelInfo_Title: String { return self._s[1284]! } + public var State_Updating: String { return self._s[1285]! } + public var Conversation_UnblockUser: String { return self._s[1286]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[1287]! } + public var Map_GetDirections: String { return self._s[1288]! } + public var Watch_Compose_AddContact: String { return self._s[1290]! } + public var Conversation_Dice_u26BD: String { return self._s[1291]! } + public var AccessDenied_PhotosRestricted: String { return self._s[1292]! } public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1292]!, self._r[1292]!, [_1]) + return formatWithArgumentRanges(self._s[1293]!, self._r[1293]!, [_1]) } - public var Map_LoadError: String { return self._s[1294]! } - public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[1295]! } - public var PhotoEditor_CropAuto: String { return self._s[1296]! } + public var Map_LoadError: String { return self._s[1295]! } + public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[1296]! } + public var PhotoEditor_CropAuto: String { return self._s[1297]! } public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1299]!, self._r[1299]!, [_0]) + return formatWithArgumentRanges(self._s[1300]!, self._r[1300]!, [_0]) } - public var Username_TooManyPublicUsernamesError: String { return self._s[1301]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[1302]! } public func PUSH_PINNED_GAME(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1302]!, self._r[1302]!, [_1]) + return formatWithArgumentRanges(self._s[1303]!, self._r[1303]!, [_1]) } - public var Settings_PhoneNumber: String { return self._s[1303]! } + public var Settings_PhoneNumber: String { return self._s[1304]! } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1304]!, self._r[1304]!, [_1]) + return formatWithArgumentRanges(self._s[1305]!, self._r[1305]!, [_1]) } - public var Month_GenJune: String { return self._s[1306]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[1307]! } - public var ChatListFolder_CategoryRead: String { return self._s[1308]! } - public var LoginPassword_ResetAccount: String { return self._s[1309]! } + public var Month_GenJune: String { return self._s[1307]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[1308]! } + public var ChatListFolder_CategoryRead: String { return self._s[1309]! } + public var LoginPassword_ResetAccount: String { return self._s[1310]! } public func DialogList_SingleUploadingFileSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1310]!, self._r[1310]!, [_0]) + return formatWithArgumentRanges(self._s[1311]!, self._r[1311]!, [_0]) } - public var Call_CameraConfirmationConfirm: String { return self._s[1311]! } - public var Notification_RenamedChannel: String { return self._s[1312]! } + public var Call_CameraConfirmationConfirm: String { return self._s[1312]! } + public var Notification_RenamedChannel: String { return self._s[1313]! } public func Channel_AdminLog_MessageUnpinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1313]!, self._r[1313]!, [_0]) + return formatWithArgumentRanges(self._s[1314]!, self._r[1314]!, [_0]) } - public var Channel_AdminLogFilter_EventsAdmins: String { return self._s[1314]! } - public var IntentsSettings_Title: String { return self._s[1316]! } - public var CallList_DeleteAllForMe: String { return self._s[1317]! } - public var Settings_AppleWatch: String { return self._s[1318]! } - public var Conversation_LinkCopied: String { return self._s[1319]! } - public var DialogList_NoMessagesText: String { return self._s[1320]! } + public var Channel_AdminLogFilter_EventsAdmins: String { return self._s[1315]! } + public var IntentsSettings_Title: String { return self._s[1317]! } + public var CallList_DeleteAllForMe: String { return self._s[1318]! } + public var Settings_AppleWatch: String { return self._s[1319]! } + public var Conversation_LinkCopied: String { return self._s[1320]! } + public var DialogList_NoMessagesText: String { return self._s[1321]! } public func VoiceChat_SendPublicLinkText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1321]!, self._r[1321]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1322]!, self._r[1322]!, [_1, _2]) } - public var GroupPermission_NoChangeInfo: String { return self._s[1322]! } - public var Channel_ErrorAccessDenied: String { return self._s[1324]! } - public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1325]! } + public var GroupPermission_NoChangeInfo: String { return self._s[1323]! } + public var Channel_ErrorAccessDenied: String { return self._s[1325]! } + public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1326]! } public func Message_StickerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1326]!, self._r[1326]!, [_0]) + return formatWithArgumentRanges(self._s[1327]!, self._r[1327]!, [_0]) } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1327]! } - public var StickerPacksSettings_AnimatedStickers: String { return self._s[1328]! } - public var Month_ShortJanuary: String { return self._s[1329]! } - public var Conversation_UnreadMessages: String { return self._s[1330]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[1332]! } - public var Call_VoiceOver_VideoCallCanceled: String { return self._s[1333]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[1335]! } - public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1336]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1328]! } + public var StickerPacksSettings_AnimatedStickers: String { return self._s[1329]! } + public var Month_ShortJanuary: String { return self._s[1330]! } + public var Conversation_UnreadMessages: String { return self._s[1331]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[1333]! } + public var Call_VoiceOver_VideoCallCanceled: String { return self._s[1334]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[1336]! } + public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1337]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1340]!, self._r[1340]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1341]!, self._r[1341]!, [_1, _2]) } - public var Widget_ApplicationLocked: String { return self._s[1341]! } + public var Widget_ApplicationLocked: String { return self._s[1342]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1342]!, self._r[1342]!, [_0]) + return formatWithArgumentRanges(self._s[1343]!, self._r[1343]!, [_0]) } - public var Common_TakePhotoOrVideo: String { return self._s[1343]! } - public var Passport_Language_ru: String { return self._s[1345]! } - public var MediaPicker_VideoMuteDescription: String { return self._s[1346]! } - public var EditTheme_ErrorLinkTaken: String { return self._s[1347]! } + public var Common_TakePhotoOrVideo: String { return self._s[1344]! } + public var Passport_Language_ru: String { return self._s[1346]! } + public var MediaPicker_VideoMuteDescription: String { return self._s[1347]! } + public var EditTheme_ErrorLinkTaken: String { return self._s[1348]! } public func Group_EditAdmin_RankInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1349]!, self._r[1349]!, [_0]) + return formatWithArgumentRanges(self._s[1350]!, self._r[1350]!, [_0]) } - public var VoiceChat_ShareShort: String { return self._s[1350]! } - public var Channel_Members_AddAdminErrorBlacklisted: String { return self._s[1351]! } - public var Conversation_Owner: String { return self._s[1353]! } - public var Settings_FAQ_Intro: String { return self._s[1354]! } - public var PhotoEditor_QualityLow: String { return self._s[1356]! } - public var Widget_GalleryTitle: String { return self._s[1357]! } - public var Call_End: String { return self._s[1358]! } - public var StickerPacksSettings_FeaturedPacks: String { return self._s[1360]! } - public var Privacy_ContactsSyncHelp: String { return self._s[1361]! } - public var OldChannels_NoticeUpgradeText: String { return self._s[1365]! } - public var Conversation_Call: String { return self._s[1367]! } - public var Watch_MessageView_Title: String { return self._s[1368]! } + public var VoiceChat_ShareShort: String { return self._s[1351]! } + public var Channel_Members_AddAdminErrorBlacklisted: String { return self._s[1352]! } + public var Conversation_Owner: String { return self._s[1354]! } + public var Settings_FAQ_Intro: String { return self._s[1355]! } + public var PhotoEditor_QualityLow: String { return self._s[1357]! } + public var Widget_GalleryTitle: String { return self._s[1358]! } + public var Call_End: String { return self._s[1359]! } + public var StickerPacksSettings_FeaturedPacks: String { return self._s[1361]! } + public var Privacy_ContactsSyncHelp: String { return self._s[1362]! } + public var OldChannels_NoticeUpgradeText: String { return self._s[1366]! } + public var Conversation_Call: String { return self._s[1368]! } + public var Watch_MessageView_Title: String { return self._s[1369]! } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1369]!, self._r[1369]!, [_0]) + return formatWithArgumentRanges(self._s[1370]!, self._r[1370]!, [_0]) } - public var Passport_PasswordCompleteSetup: String { return self._s[1370]! } + public var Passport_PasswordCompleteSetup: String { return self._s[1371]! } public func Notification_ChangedGroupVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1371]!, self._r[1371]!, [_0]) + return formatWithArgumentRanges(self._s[1372]!, self._r[1372]!, [_0]) } public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1373]!, self._r[1373]!, [_0]) + return formatWithArgumentRanges(self._s[1374]!, self._r[1374]!, [_0]) } - public var Map_Location: String { return self._s[1374]! } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1375]! } - public var Login_CountryCode: String { return self._s[1376]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[1378]! } - public var ChatState_ConnectingToProxy: String { return self._s[1379]! } - public var Login_CallRequestState3: String { return self._s[1380]! } - public var NetworkUsageSettings_MediaAudioDataSection: String { return self._s[1383]! } - public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1384]! } - public var Widget_ChatsGalleryDescription: String { return self._s[1386]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[1388]! } - public var InstantPage_FontSanFrancisco: String { return self._s[1389]! } - public var Call_StatusEnded: String { return self._s[1390]! } + public var Map_Location: String { return self._s[1375]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1376]! } + public var Login_CountryCode: String { return self._s[1377]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[1379]! } + public var ChatState_ConnectingToProxy: String { return self._s[1380]! } + public var Login_CallRequestState3: String { return self._s[1381]! } + public var NetworkUsageSettings_MediaAudioDataSection: String { return self._s[1384]! } + public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1385]! } + public var Widget_ChatsGalleryDescription: String { return self._s[1387]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[1389]! } + public var InstantPage_FontSanFrancisco: String { return self._s[1390]! } + public var Call_StatusEnded: String { return self._s[1391]! } public func Checkout_SuccessfulTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1393]!, self._r[1393]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1394]!, self._r[1394]!, [_1, _2]) } - public var MusicPlayer_VoiceNote: String { return self._s[1394]! } - public var ChatImportActivity_ErrorUserBlocked: String { return self._s[1395]! } + public var MusicPlayer_VoiceNote: String { return self._s[1395]! } + public var ChatImportActivity_ErrorUserBlocked: String { return self._s[1396]! } public func PUSH_CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1396]!, self._r[1396]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1397]!, self._r[1397]!, [_1, _2]) } - public var VoiceOver_MessageContextShare: String { return self._s[1397]! } - public var ProfilePhoto_SearchWeb: String { return self._s[1398]! } - public var EditProfile_Title: String { return self._s[1399]! } + public var VoiceOver_MessageContextShare: String { return self._s[1398]! } + public var ProfilePhoto_SearchWeb: String { return self._s[1399]! } + public var EditProfile_Title: String { return self._s[1400]! } public func Notification_PinnedQuizMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1400]!, self._r[1400]!, [_0]) + return formatWithArgumentRanges(self._s[1401]!, self._r[1401]!, [_0]) } - public var VoiceChat_Unmute: String { return self._s[1401]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[1402]! } - public var NetworkUsageSettings_ResetStats: String { return self._s[1404]! } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[1405]! } - public var StickerPackActionInfo_AddedTitle: String { return self._s[1406]! } - public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[1407]! } + public var VoiceChat_Unmute: String { return self._s[1402]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[1403]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[1405]! } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[1406]! } + public var StickerPackActionInfo_AddedTitle: String { return self._s[1407]! } + public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[1408]! } public func Call_ParticipantVideoVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1408]!, self._r[1408]!, [_0]) + return formatWithArgumentRanges(self._s[1409]!, self._r[1409]!, [_0]) } - public var Location_ProximityNotification_Title: String { return self._s[1409]! } - public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[1410]! } - public var Passport_Identity_LatinNameHelp: String { return self._s[1413]! } - public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[1414]! } - public var Stats_GroupMembersTitle: String { return self._s[1415]! } - public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[1416]! } - public var InviteLink_InviteLinkRevoked: String { return self._s[1417]! } - public var Contacts_PermissionsSuppressWarningText: String { return self._s[1418]! } - public var OpenFile_PotentiallyDangerousContentAlert: String { return self._s[1419]! } - public var Settings_SetUsername: String { return self._s[1420]! } - public var GroupInfo_ActionRestrict: String { return self._s[1421]! } - public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1422]! } + public var Location_ProximityNotification_Title: String { return self._s[1410]! } + public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[1411]! } + public var Passport_Identity_LatinNameHelp: String { return self._s[1414]! } + public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[1415]! } + public var Stats_GroupMembersTitle: String { return self._s[1416]! } + public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[1417]! } + public var InviteLink_InviteLinkRevoked: String { return self._s[1418]! } + public var Contacts_PermissionsSuppressWarningText: String { return self._s[1419]! } + public var OpenFile_PotentiallyDangerousContentAlert: String { return self._s[1420]! } + public var Settings_SetUsername: String { return self._s[1421]! } + public var GroupInfo_ActionRestrict: String { return self._s[1422]! } + public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1423]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1423]!, self._r[1423]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1424]!, self._r[1424]!, [_1, _2, _3]) } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1425]! } - public var Notification_Exceptions_AlwaysOff: String { return self._s[1426]! } - public var Conversation_ContextMenuDelete: String { return self._s[1427]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[1428]! } - public var ChatList_PsaAlert_covid: String { return self._s[1431]! } - public var VoiceOver_SilentPostOn: String { return self._s[1432]! } - public var DialogList_Pin: String { return self._s[1433]! } - public var Channel_AdminLog_CanInviteUsersViaLink: String { return self._s[1434]! } - public var PrivacySettings_SecurityTitle: String { return self._s[1435]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[1436]! } - public var PeopleNearby_Groups: String { return self._s[1437]! } - public var Message_File: String { return self._s[1438]! } - public var Calls_NoCallsPlaceholder: String { return self._s[1439]! } - public var ChatList_GenericPsaLabel: String { return self._s[1442]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[1443]! } - public var IntentsSettings_Reset: String { return self._s[1445]! } - public var Call_ConnectionErrorTitle: String { return self._s[1446]! } - public var PhotoEditor_SaturationTool: String { return self._s[1447]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[1448]! } - public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1449]! } - public var Conversation_SearchNoResults: String { return self._s[1450]! } - public var Channel_DiscussionGroup_PrivateChannel: String { return self._s[1451]! } - public var Map_OpenInWaze: String { return self._s[1452]! } - public var InviteLink_PeopleJoinedNone: String { return self._s[1453]! } - public var WallpaperPreview_Title: String { return self._s[1454]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1426]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[1427]! } + public var Conversation_ContextMenuDelete: String { return self._s[1428]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[1429]! } + public var ChatList_PsaAlert_covid: String { return self._s[1432]! } + public var VoiceOver_SilentPostOn: String { return self._s[1433]! } + public var DialogList_Pin: String { return self._s[1434]! } + public var Channel_AdminLog_CanInviteUsersViaLink: String { return self._s[1435]! } + public var PrivacySettings_SecurityTitle: String { return self._s[1436]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[1437]! } + public var PeopleNearby_Groups: String { return self._s[1438]! } + public var Message_File: String { return self._s[1439]! } + public var Calls_NoCallsPlaceholder: String { return self._s[1440]! } + public var ChatList_GenericPsaLabel: String { return self._s[1443]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[1444]! } + public var IntentsSettings_Reset: String { return self._s[1446]! } + public var Call_ConnectionErrorTitle: String { return self._s[1447]! } + public var PhotoEditor_SaturationTool: String { return self._s[1448]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[1449]! } + public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1450]! } + public var Conversation_SearchNoResults: String { return self._s[1451]! } + public var Channel_DiscussionGroup_PrivateChannel: String { return self._s[1452]! } + public var Map_OpenInWaze: String { return self._s[1453]! } + public var InviteLink_PeopleJoinedNone: String { return self._s[1454]! } + public var WallpaperPreview_Title: String { return self._s[1455]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1456]!, self._r[1456]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1457]!, self._r[1457]!, [_1, _2]) } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[1457]! } - public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[1458]! } - public var TwoFactorSetup_ResetDone_TextNoPassword: String { return self._s[1459]! } - public var VoiceOver_Chat_ChannelInfo: String { return self._s[1460]! } - public var Conversation_ImageCopied: String { return self._s[1461]! } - public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[1462]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[1464]! } - public var Stats_Total: String { return self._s[1467]! } - public var Stats_GroupMessages: String { return self._s[1468]! } - public var TwoFactorSetup_Email_SkipAction: String { return self._s[1469]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[1470]! } - public var VoiceChat_You: String { return self._s[1471]! } - public var VoiceChat_DisplayAsInfoGroup: String { return self._s[1472]! } - public var Passport_Identity_Translation: String { return self._s[1473]! } - public var Notifications_TextTone: String { return self._s[1476]! } - public var Settings_RemoveConfirmation: String { return self._s[1478]! } - public var ScheduledMessages_Delete: String { return self._s[1479]! } - public var Channel_AdminLog_BanEmbedLinks: String { return self._s[1480]! } - public var Passport_PasswordNext: String { return self._s[1481]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[1458]! } + public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[1459]! } + public var TwoFactorSetup_ResetDone_TextNoPassword: String { return self._s[1460]! } + public var VoiceOver_Chat_ChannelInfo: String { return self._s[1461]! } + public var Conversation_ImageCopied: String { return self._s[1462]! } + public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[1463]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[1465]! } + public var Stats_Total: String { return self._s[1468]! } + public var Stats_GroupMessages: String { return self._s[1469]! } + public var TwoFactorSetup_Email_SkipAction: String { return self._s[1470]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[1471]! } + public var VoiceChat_You: String { return self._s[1472]! } + public var VoiceChat_DisplayAsInfoGroup: String { return self._s[1473]! } + public var Passport_Identity_Translation: String { return self._s[1474]! } + public var Notifications_TextTone: String { return self._s[1477]! } + public var Settings_RemoveConfirmation: String { return self._s[1479]! } + public var ScheduledMessages_Delete: String { return self._s[1480]! } + public var Channel_AdminLog_BanEmbedLinks: String { return self._s[1481]! } + public var Passport_PasswordNext: String { return self._s[1482]! } public func PUSH_ENCRYPTED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1482]!, self._r[1482]!, [_1]) + return formatWithArgumentRanges(self._s[1483]!, self._r[1483]!, [_1]) } - public var Passport_Address_EditBankStatement: String { return self._s[1483]! } - public var PhotoEditor_ShadowsTool: String { return self._s[1484]! } - public var Notification_VideoCallMissed: String { return self._s[1485]! } - public var AccessDenied_CameraDisabled: String { return self._s[1487]! } - public var AuthSessions_AddDevice_ScanInfo: String { return self._s[1488]! } - public var Notifications_ExceptionsMuted: String { return self._s[1489]! } - public var VoiceChat_TapToViewScreenVideo: String { return self._s[1490]! } - public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[1491]! } - public var Channel_BlackList_Title: String { return self._s[1492]! } - public var PasscodeSettings_4DigitCode: String { return self._s[1493]! } - public var NotificationsSound_Bamboo: String { return self._s[1494]! } - public var Conversation_InputMenu: String { return self._s[1495]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[1496]! } - public var Passport_Address_TypeUtilityBill: String { return self._s[1497]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[1498]! } - public var GroupPermission_SectionTitle: String { return self._s[1499]! } - public var InviteLink_ContextRevoke: String { return self._s[1500]! } + public var Passport_Address_EditBankStatement: String { return self._s[1484]! } + public var PhotoEditor_ShadowsTool: String { return self._s[1485]! } + public var Notification_VideoCallMissed: String { return self._s[1486]! } + public var AccessDenied_CameraDisabled: String { return self._s[1488]! } + public var AuthSessions_AddDevice_ScanInfo: String { return self._s[1489]! } + public var Notifications_ExceptionsMuted: String { return self._s[1490]! } + public var VoiceChat_TapToViewScreenVideo: String { return self._s[1491]! } + public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[1492]! } + public var Channel_BlackList_Title: String { return self._s[1493]! } + public var PasscodeSettings_4DigitCode: String { return self._s[1494]! } + public var NotificationsSound_Bamboo: String { return self._s[1495]! } + public var Conversation_InputMenu: String { return self._s[1496]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[1497]! } + public var Passport_Address_TypeUtilityBill: String { return self._s[1498]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[1499]! } + public var GroupPermission_SectionTitle: String { return self._s[1500]! } + public var InviteLink_ContextRevoke: String { return self._s[1501]! } public func Notification_InvitedMultiple(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1501]!, self._r[1501]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1502]!, self._r[1502]!, [_0, _1]) } - public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1502]! } - public var Channel_LeaveChannel: String { return self._s[1503]! } - public var Watch_Notification_Joined: String { return self._s[1504]! } - public var PeerInfo_ButtonMore: String { return self._s[1505]! } - public var Passport_FieldEmailHelp: String { return self._s[1506]! } - public var ChatList_Context_Pin: String { return self._s[1507]! } + public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1503]! } + public var Channel_LeaveChannel: String { return self._s[1504]! } + public var Watch_Notification_Joined: String { return self._s[1505]! } + public var PeerInfo_ButtonMore: String { return self._s[1506]! } + public var Passport_FieldEmailHelp: String { return self._s[1507]! } + public var ChatList_Context_Pin: String { return self._s[1508]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1508]!, self._r[1508]!, [_0]) + return formatWithArgumentRanges(self._s[1509]!, self._r[1509]!, [_0]) } - public var Group_Location_CreateInThisPlace: String { return self._s[1509]! } - public var PhotoEditor_QualityVeryHigh: String { return self._s[1510]! } - public var Tour_Title5: String { return self._s[1511]! } + public var Group_Location_CreateInThisPlace: String { return self._s[1510]! } + public var PhotoEditor_QualityVeryHigh: String { return self._s[1511]! } + public var Tour_Title5: String { return self._s[1512]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1512]!, self._r[1512]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1513]!, self._r[1513]!, [_1, _2]) } - public var Passport_Language_en: String { return self._s[1513]! } - public var Checkout_Name: String { return self._s[1514]! } - public var ChatImport_Title: String { return self._s[1515]! } + public var Passport_Language_en: String { return self._s[1514]! } + public var Checkout_Name: String { return self._s[1515]! } + public var ChatImport_Title: String { return self._s[1516]! } public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1516]!, self._r[1516]!, [_0]) + return formatWithArgumentRanges(self._s[1517]!, self._r[1517]!, [_0]) } - public var PhotoEditor_EnhanceTool: String { return self._s[1517]! } + public var PhotoEditor_EnhanceTool: String { return self._s[1518]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1518]!, self._r[1518]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1519]!, self._r[1519]!, [_1, _2]) } public func VoiceChat_UserCanNowSpeak(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1519]!, self._r[1519]!, [_0]) + return formatWithArgumentRanges(self._s[1520]!, self._r[1520]!, [_0]) } - public var PeerInfo_CustomizeNotifications: String { return self._s[1520]! } + public var PeerInfo_CustomizeNotifications: String { return self._s[1521]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1521]!, self._r[1521]!, [_0]) + return formatWithArgumentRanges(self._s[1522]!, self._r[1522]!, [_0]) } - public var Group_ErrorSendRestrictedMedia: String { return self._s[1522]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[1523]! } public func UserInfo_NotificationsDefaultSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1523]!, self._r[1523]!, [_0]) + return formatWithArgumentRanges(self._s[1524]!, self._r[1524]!, [_0]) } - public var Login_UnknownError: String { return self._s[1524]! } - public var Conversation_ImportedMessageHint: String { return self._s[1526]! } + public var Login_UnknownError: String { return self._s[1525]! } + public var Conversation_ImportedMessageHint: String { return self._s[1527]! } public func VoiceChat_ForwardTooltip_Chat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1527]!, self._r[1527]!, [_0]) + return formatWithArgumentRanges(self._s[1528]!, self._r[1528]!, [_0]) } - public var Passport_Identity_TypeDriversLicense: String { return self._s[1529]! } - public var ChatList_AutoarchiveSuggestion_Title: String { return self._s[1530]! } - public var Watch_PhotoView_Title: String { return self._s[1531]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[1532]! } - public var Checkout_TotalAmount: String { return self._s[1533]! } - public var ChatList_RemoveFolderAction: String { return self._s[1534]! } + public var Passport_Identity_TypeDriversLicense: String { return self._s[1530]! } + public var ChatList_AutoarchiveSuggestion_Title: String { return self._s[1531]! } + public var Watch_PhotoView_Title: String { return self._s[1532]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[1533]! } + public var Checkout_TotalAmount: String { return self._s[1534]! } + public var ChatList_RemoveFolderAction: String { return self._s[1535]! } public func GroupInfo_Permissions_BroadcastConvertInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1535]!, self._r[1535]!, [_0]) + return formatWithArgumentRanges(self._s[1536]!, self._r[1536]!, [_0]) } - public var GroupInfo_SetGroupPhoto: String { return self._s[1536]! } - public var Watch_AppName: String { return self._s[1537]! } + public var GroupInfo_SetGroupPhoto: String { return self._s[1537]! } + public var Watch_AppName: String { return self._s[1538]! } public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1538]!, self._r[1538]!, [_1]) + return formatWithArgumentRanges(self._s[1539]!, self._r[1539]!, [_1]) } - public var Channel_Username_CheckingUsername: String { return self._s[1539]! } - public var ContactList_Context_Call: String { return self._s[1540]! } - public var ChatList_ReorderTabs: String { return self._s[1541]! } - public var Watch_ChatList_Compose: String { return self._s[1542]! } + public var Channel_Username_CheckingUsername: String { return self._s[1540]! } + public var ContactList_Context_Call: String { return self._s[1541]! } + public var ChatList_ReorderTabs: String { return self._s[1542]! } + public var Watch_ChatList_Compose: String { return self._s[1543]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1543]!, self._r[1543]!, [_0]) + return formatWithArgumentRanges(self._s[1544]!, self._r[1544]!, [_0]) } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[1544]! } - public var ArchivedChats_IntroTitle1: String { return self._s[1545]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[1545]! } + public var ArchivedChats_IntroTitle1: String { return self._s[1546]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1546]!, self._r[1546]!, [_1]) + return formatWithArgumentRanges(self._s[1547]!, self._r[1547]!, [_1]) } - public var Call_StatusRequesting: String { return self._s[1548]! } - public var Checkout_TotalPaidAmount: String { return self._s[1549]! } - public var Weekday_Friday: String { return self._s[1551]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[1552]! } + public var Call_StatusRequesting: String { return self._s[1549]! } + public var Checkout_TotalPaidAmount: String { return self._s[1550]! } + public var Weekday_Friday: String { return self._s[1552]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[1553]! } public func ChatImport_SelectionConfirmationUserWithoutTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1553]!, self._r[1553]!, [_0]) + return formatWithArgumentRanges(self._s[1554]!, self._r[1554]!, [_0]) } - public var Watch_ChatList_NoConversationsText: String { return self._s[1554]! } - public var Group_Members_AddMembersHelp: String { return self._s[1555]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[1555]! } + public var Group_Members_AddMembersHelp: String { return self._s[1556]! } public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1556]!, self._r[1556]!, [_0]) + return formatWithArgumentRanges(self._s[1557]!, self._r[1557]!, [_0]) } - public var SecretVideo_Title: String { return self._s[1557]! } + public var SecretVideo_Title: String { return self._s[1558]! } public func Notification_PinnedStickerMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1560]!, self._r[1560]!, [_0]) + return formatWithArgumentRanges(self._s[1561]!, self._r[1561]!, [_0]) } - public var Undo_Undo: String { return self._s[1561]! } - public var Watch_Microphone_Access: String { return self._s[1562]! } + public var Undo_Undo: String { return self._s[1562]! } + public var Watch_Microphone_Access: String { return self._s[1563]! } public func ChatImport_SelectionConfirmationGroupWithTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1563]!, self._r[1563]!, [_1, _2]) - } - public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1564]!, self._r[1564]!, [_1, _2]) } - public func ChatList_Search_NoResultsQueryDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1565]!, self._r[1565]!, [_0]) + public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1565]!, self._r[1565]!, [_1, _2]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[1567]! } - public var TwoFactorSetup_Intro_Action: String { return self._s[1568]! } - public var Passport_Language_ne: String { return self._s[1569]! } - public var TwoStepAuth_EmailHelp: String { return self._s[1571]! } - public var Profile_MessageLifetime2s: String { return self._s[1572]! } + public func ChatList_Search_NoResultsQueryDescription(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1566]!, self._r[1566]!, [_0]) + } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[1568]! } + public var TwoFactorSetup_Intro_Action: String { return self._s[1569]! } + public var Passport_Language_ne: String { return self._s[1570]! } + public var TwoStepAuth_EmailHelp: String { return self._s[1572]! } + public var Profile_MessageLifetime2s: String { return self._s[1573]! } public func Conversation_MessageDialogRetryAll(_ _1: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1574]!, self._r[1574]!, ["\(_1)"]) + return formatWithArgumentRanges(self._s[1575]!, self._r[1575]!, ["\(_1)"]) } public func Items_NOfM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1575]!, self._r[1575]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1576]!, self._r[1576]!, [_1, _2]) } - public var VoiceChat_SendPublicLinkSend: String { return self._s[1576]! } - public var Media_LimitedAccessText: String { return self._s[1577]! } + public var VoiceChat_SendPublicLinkSend: String { return self._s[1577]! } + public var Media_LimitedAccessText: String { return self._s[1578]! } public func PUSH_CHAT_TITLE_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1578]!, self._r[1578]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1579]!, self._r[1579]!, [_1, _2]) } - public var GroupPermission_NoPinMessages: String { return self._s[1579]! } + public var GroupPermission_NoPinMessages: String { return self._s[1580]! } public func Notification_VoiceChatStarted(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1580]!, self._r[1580]!, [_1]) + return formatWithArgumentRanges(self._s[1581]!, self._r[1581]!, [_1]) } public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1581]!, self._r[1581]!, [_0]) + return formatWithArgumentRanges(self._s[1582]!, self._r[1582]!, [_0]) } - public var FastTwoStepSetup_HintHelp: String { return self._s[1582]! } - public var VoiceOver_SilentPostOff: String { return self._s[1583]! } - public var WallpaperSearch_ColorRed: String { return self._s[1584]! } - public var Watch_ConnectionDescription: String { return self._s[1585]! } - public var Notification_Exceptions_AddException: String { return self._s[1586]! } - public var LocalGroup_IrrelevantWarning: String { return self._s[1587]! } - public var VoiceOver_MessageContextDelete: String { return self._s[1588]! } - public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1589]! } - public var Passport_PasswordPlaceholder: String { return self._s[1590]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[1591]! } - public var Stats_MessageInteractionsTitle: String { return self._s[1592]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[1593]! } - public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1595]! } - public var Channel_AdminLog_PinMessages: String { return self._s[1596]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[1598]! } - public var Watch_Message_Game: String { return self._s[1599]! } - public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1600]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[1601]! } - public var EditTheme_FileReadError: String { return self._s[1602]! } - public var Group_ErrorAddBlocked: String { return self._s[1603]! } - public var CallSettings_UseLessDataLongDescription: String { return self._s[1604]! } + public var FastTwoStepSetup_HintHelp: String { return self._s[1583]! } + public var VoiceOver_SilentPostOff: String { return self._s[1584]! } + public var WallpaperSearch_ColorRed: String { return self._s[1585]! } + public var Watch_ConnectionDescription: String { return self._s[1586]! } + public var Notification_Exceptions_AddException: String { return self._s[1587]! } + public var LocalGroup_IrrelevantWarning: String { return self._s[1588]! } + public var VoiceOver_MessageContextDelete: String { return self._s[1589]! } + public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1590]! } + public var Passport_PasswordPlaceholder: String { return self._s[1591]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[1592]! } + public var Stats_MessageInteractionsTitle: String { return self._s[1593]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[1594]! } + public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1596]! } + public var Channel_AdminLog_PinMessages: String { return self._s[1597]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[1599]! } + public var Watch_Message_Game: String { return self._s[1600]! } + public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1601]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[1602]! } + public var EditTheme_FileReadError: String { return self._s[1603]! } + public var Group_ErrorAddBlocked: String { return self._s[1604]! } + public var CallSettings_UseLessDataLongDescription: String { return self._s[1605]! } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1606]!, self._r[1606]!, [_1]) + return formatWithArgumentRanges(self._s[1607]!, self._r[1607]!, [_1]) } - public var GroupRemoved_ViewChannelInfo: String { return self._s[1607]! } + public var GroupRemoved_ViewChannelInfo: String { return self._s[1608]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1608]!, self._r[1608]!, [_0]) + return formatWithArgumentRanges(self._s[1609]!, self._r[1609]!, [_0]) } - public var CheckoutInfo_ShippingInfoAddress2Placeholder: String { return self._s[1609]! } - public var TwoFactorSetup_EmailVerification_Action: String { return self._s[1610]! } + public var CheckoutInfo_ShippingInfoAddress2Placeholder: String { return self._s[1610]! } + public var TwoFactorSetup_EmailVerification_Action: String { return self._s[1611]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1611]!, self._r[1611]!, [_0]) + return formatWithArgumentRanges(self._s[1612]!, self._r[1612]!, [_0]) } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[1612]! } - public var Bot_GroupStatusReadsHistory: String { return self._s[1613]! } - public var PhotoEditor_CurvesRed: String { return self._s[1614]! } - public var InstantPage_TapToOpenLink: String { return self._s[1615]! } - public var InviteLink_PeopleJoinedShortNoneExpired: String { return self._s[1616]! } - public var FastTwoStepSetup_PasswordHelp: String { return self._s[1617]! } - public var Conversation_DiscussionNotStarted: String { return self._s[1618]! } - public var Notification_CallMissedShort: String { return self._s[1619]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[1613]! } + public var Bot_GroupStatusReadsHistory: String { return self._s[1614]! } + public var PhotoEditor_CurvesRed: String { return self._s[1615]! } + public var InstantPage_TapToOpenLink: String { return self._s[1616]! } + public var InviteLink_PeopleJoinedShortNoneExpired: String { return self._s[1617]! } + public var FastTwoStepSetup_PasswordHelp: String { return self._s[1618]! } + public var Conversation_DiscussionNotStarted: String { return self._s[1619]! } + public var Notification_CallMissedShort: String { return self._s[1620]! } public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1620]!, self._r[1620]!, [_0]) + return formatWithArgumentRanges(self._s[1621]!, self._r[1621]!, [_0]) } - public var Conversation_DeleteMessagesForEveryone: String { return self._s[1621]! } - public var VoiceChat_UnpinVideo: String { return self._s[1622]! } - public var Permissions_SiriTitle_v0: String { return self._s[1623]! } - public var GroupInfo_AddUserLeftError: String { return self._s[1624]! } - public var Conversation_SendMessage_SendSilently: String { return self._s[1625]! } - public var Paint_Duplicate: String { return self._s[1626]! } - public var AttachmentMenu_WebSearch: String { return self._s[1627]! } - public var Bot_Stop: String { return self._s[1629]! } - public var Conversation_PrivateChannelTimeLimitedAlertTitle: String { return self._s[1630]! } - public var ReportGroupLocation_Report: String { return self._s[1631]! } - public var Compose_Create: String { return self._s[1632]! } - public var Stats_GroupViewers: String { return self._s[1633]! } - public var AutoDownloadSettings_Channels: String { return self._s[1634]! } - public var PhotoEditor_QualityHigh: String { return self._s[1635]! } - public var VoiceChat_Leave: String { return self._s[1636]! } - public var Call_Speaker: String { return self._s[1637]! } + public var Conversation_DeleteMessagesForEveryone: String { return self._s[1622]! } + public var VoiceChat_UnpinVideo: String { return self._s[1623]! } + public var Permissions_SiriTitle_v0: String { return self._s[1624]! } + public var GroupInfo_AddUserLeftError: String { return self._s[1625]! } + public var Conversation_SendMessage_SendSilently: String { return self._s[1626]! } + public var Paint_Duplicate: String { return self._s[1627]! } + public var AttachmentMenu_WebSearch: String { return self._s[1628]! } + public var Bot_Stop: String { return self._s[1630]! } + public var Conversation_PrivateChannelTimeLimitedAlertTitle: String { return self._s[1631]! } + public var ReportGroupLocation_Report: String { return self._s[1632]! } + public var Compose_Create: String { return self._s[1633]! } + public var Stats_GroupViewers: String { return self._s[1634]! } + public var AutoDownloadSettings_Channels: String { return self._s[1635]! } + public var PhotoEditor_QualityHigh: String { return self._s[1636]! } + public var VoiceChat_Leave: String { return self._s[1637]! } + public var Call_Speaker: String { return self._s[1638]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1638]!, self._r[1638]!, [_0]) + return formatWithArgumentRanges(self._s[1639]!, self._r[1639]!, [_0]) } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[1639]! } - public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1640]! } - public var ChatList_Context_AddToFolder: String { return self._s[1641]! } - public var InviteLink_QRCode_Info: String { return self._s[1642]! } - public var AutoremoveSetup_Title: String { return self._s[1643]! } - public var ChatList_DeleteForAllMembersConfirmationText: String { return self._s[1644]! } - public var Conversation_Unblock: String { return self._s[1645]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[1646]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[1640]! } + public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1641]! } + public var ChatList_Context_AddToFolder: String { return self._s[1642]! } + public var InviteLink_QRCode_Info: String { return self._s[1643]! } + public var AutoremoveSetup_Title: String { return self._s[1644]! } + public var ChatList_DeleteForAllMembersConfirmationText: String { return self._s[1645]! } + public var Conversation_Unblock: String { return self._s[1646]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[1647]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1647]!, self._r[1647]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1648]!, self._r[1648]!, [_1, _2, _3]) } - public var Conversation_ContextMenuReply: String { return self._s[1648]! } - public var Contacts_SearchLabel: String { return self._s[1649]! } - public var Forward_ErrorPublicQuizDisabledInChannels: String { return self._s[1650]! } - public var Stats_GroupMessagesTitle: String { return self._s[1652]! } - public var VoiceChat_NoiseSuppression: String { return self._s[1653]! } - public var Notification_CallCanceled: String { return self._s[1654]! } - public var VoiceOver_Chat_Selected: String { return self._s[1655]! } - public var NotificationsSound_Tremolo: String { return self._s[1657]! } - public var VoiceOver_AuthSessions_CurrentSession: String { return self._s[1658]! } - public var ChatList_Search_NoResultsDescription: String { return self._s[1659]! } - public var AccessDenied_PhotosAndVideos: String { return self._s[1660]! } - public var LogoutOptions_ClearCacheText: String { return self._s[1661]! } + public var Conversation_ContextMenuReply: String { return self._s[1649]! } + public var Contacts_SearchLabel: String { return self._s[1650]! } + public var Forward_ErrorPublicQuizDisabledInChannels: String { return self._s[1651]! } + public var Stats_GroupMessagesTitle: String { return self._s[1653]! } + public var VoiceChat_NoiseSuppression: String { return self._s[1654]! } + public var Notification_CallCanceled: String { return self._s[1655]! } + public var VoiceOver_Chat_Selected: String { return self._s[1656]! } + public var NotificationsSound_Tremolo: String { return self._s[1658]! } + public var VoiceOver_AuthSessions_CurrentSession: String { return self._s[1659]! } + public var ChatList_Search_NoResultsDescription: String { return self._s[1660]! } + public var AccessDenied_PhotosAndVideos: String { return self._s[1661]! } + public var LogoutOptions_ClearCacheText: String { return self._s[1662]! } public func VoiceChat_DisplayAsSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1663]!, self._r[1663]!, [_0]) + return formatWithArgumentRanges(self._s[1664]!, self._r[1664]!, [_0]) } - public var VoiceOver_Chat_Sticker: String { return self._s[1664]! } - public var ChatListFolder_NameUnread: String { return self._s[1665]! } - public var PeerInfo_ButtonMessage: String { return self._s[1667]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[1668]! } - public var Settings_KeepPassword: String { return self._s[1669]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[1670]! } - public var ChatSettings_Other: String { return self._s[1671]! } - public var UserInfo_NotificationsEnabled: String { return self._s[1672]! } - public var CreatePoll_OptionsHeader: String { return self._s[1673]! } - public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1676]! } - public var Channel_Moderator_Title: String { return self._s[1677]! } + public var VoiceOver_Chat_Sticker: String { return self._s[1665]! } + public var ChatListFolder_NameUnread: String { return self._s[1666]! } + public var PeerInfo_ButtonMessage: String { return self._s[1668]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[1669]! } + public var Settings_KeepPassword: String { return self._s[1670]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[1671]! } + public var ChatSettings_Other: String { return self._s[1672]! } + public var UserInfo_NotificationsEnabled: String { return self._s[1673]! } + public var CreatePoll_OptionsHeader: String { return self._s[1674]! } + public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1677]! } + public var Channel_Moderator_Title: String { return self._s[1678]! } public func Conversation_ForwardTooltip_Chat_Many(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1678]!, self._r[1678]!, [_0]) + return formatWithArgumentRanges(self._s[1679]!, self._r[1679]!, [_0]) } public func UserInfo_ContactForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1679]!, self._r[1679]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1680]!, self._r[1680]!, [_0, _1]) } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[1680]! } - public var WallpaperColors_Title: String { return self._s[1681]! } - public var InviteLink_InviteLink: String { return self._s[1683]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[1684]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[1685]! } - public var Your_card_was_declined: String { return self._s[1686]! } - public var SettingsSearch_FAQ: String { return self._s[1688]! } - public var EditTheme_Expand_Preview_IncomingReplyName: String { return self._s[1689]! } - public var Conversation_ReportSpamConfirmation: String { return self._s[1690]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[1692]! } - public var PrivacySettings_DataSettingsHelp: String { return self._s[1693]! } - public var Settings_About_Help: String { return self._s[1694]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[1681]! } + public var WallpaperColors_Title: String { return self._s[1682]! } + public var InviteLink_InviteLink: String { return self._s[1684]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[1685]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[1686]! } + public var Your_card_was_declined: String { return self._s[1687]! } + public var SettingsSearch_FAQ: String { return self._s[1689]! } + public var EditTheme_Expand_Preview_IncomingReplyName: String { return self._s[1690]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[1691]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[1693]! } + public var PrivacySettings_DataSettingsHelp: String { return self._s[1694]! } + public var Settings_About_Help: String { return self._s[1695]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1695]!, self._r[1695]!, [_0]) + return formatWithArgumentRanges(self._s[1696]!, self._r[1696]!, [_0]) } - public var Settings_Proxy: String { return self._s[1696]! } - public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1697]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[1699]! } - public var NotificationsSound_Bell: String { return self._s[1700]! } - public var PrivacySettings_Title: String { return self._s[1702]! } - public var PrivacySettings_DataSettings: String { return self._s[1703]! } - public var ConversationMedia_Title: String { return self._s[1704]! } + public var Settings_Proxy: String { return self._s[1697]! } + public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1698]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[1700]! } + public var NotificationsSound_Bell: String { return self._s[1701]! } + public var PrivacySettings_Title: String { return self._s[1703]! } + public var PrivacySettings_DataSettings: String { return self._s[1704]! } + public var ConversationMedia_Title: String { return self._s[1705]! } public func Channel_AdminLog_MessageAddedAdminName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1705]!, self._r[1705]!, [_1]) + return formatWithArgumentRanges(self._s[1706]!, self._r[1706]!, [_1]) } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1706]!, self._r[1706]!, [_0]) + return formatWithArgumentRanges(self._s[1707]!, self._r[1707]!, [_0]) } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[1707]! } - public var ReportPeer_ReasonPornography: String { return self._s[1709]! } - public var Privacy_Calls: String { return self._s[1711]! } - public var TwoFactorSetup_Email_Text: String { return self._s[1712]! } - public var Conversation_EncryptedDescriptionTitle: String { return self._s[1713]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[1708]! } + public var ReportPeer_ReasonPornography: String { return self._s[1710]! } + public var Privacy_Calls: String { return self._s[1712]! } + public var TwoFactorSetup_Email_Text: String { return self._s[1713]! } + public var Conversation_EncryptedDescriptionTitle: String { return self._s[1714]! } public func VoiceOver_Chat_MusicTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1714]!, self._r[1714]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1715]!, self._r[1715]!, [_1, _2]) } - public var Passport_Identity_FrontSideHelp: String { return self._s[1715]! } - public var InstantPage_VoiceOver_DecreaseFontSize: String { return self._s[1716]! } - public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1718]! } - public var ContactList_Context_VideoCall: String { return self._s[1719]! } - public var Settings_SaveIncomingPhotos: String { return self._s[1720]! } - public var Passport_Identity_MiddleName: String { return self._s[1721]! } - public var MessagePoll_QuizNoUsers: String { return self._s[1722]! } + public var Passport_Identity_FrontSideHelp: String { return self._s[1716]! } + public var InstantPage_VoiceOver_DecreaseFontSize: String { return self._s[1717]! } + public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1719]! } + public var ContactList_Context_VideoCall: String { return self._s[1720]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1721]! } + public var Passport_Identity_MiddleName: String { return self._s[1722]! } + public var MessagePoll_QuizNoUsers: String { return self._s[1723]! } public func Channel_AdminLog_MutedParticipant(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1723]!, self._r[1723]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1724]!, self._r[1724]!, [_1, _2]) } - public var OldChannels_ChannelFormat: String { return self._s[1724]! } - public var Watch_Message_Call: String { return self._s[1725]! } - public var VoiceChat_OpenChannel: String { return self._s[1726]! } - public var Wallpaper_Title: String { return self._s[1727]! } - public var PasscodeSettings_TurnPasscodeOff: String { return self._s[1728]! } - public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1729]! } - public var ReportGroupLocation_Text: String { return self._s[1730]! } - public var InviteText_URL: String { return self._s[1731]! } - public var ClearCache_StorageServiceFiles: String { return self._s[1732]! } - public var MessageTimer_Custom: String { return self._s[1733]! } - public var Message_PinnedLocationMessage: String { return self._s[1734]! } + public var OldChannels_ChannelFormat: String { return self._s[1725]! } + public var Watch_Message_Call: String { return self._s[1726]! } + public var VoiceChat_OpenChannel: String { return self._s[1727]! } + public var Wallpaper_Title: String { return self._s[1728]! } + public var PasscodeSettings_TurnPasscodeOff: String { return self._s[1729]! } + public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1730]! } + public var ReportGroupLocation_Text: String { return self._s[1731]! } + public var InviteText_URL: String { return self._s[1732]! } + public var ClearCache_StorageServiceFiles: String { return self._s[1733]! } + public var MessageTimer_Custom: String { return self._s[1734]! } + public var Message_PinnedLocationMessage: String { return self._s[1735]! } public func VoiceOver_Chat_ContactOrganization(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1735]!, self._r[1735]!, [_0]) + return formatWithArgumentRanges(self._s[1736]!, self._r[1736]!, [_0]) } - public var EditTheme_UploadNewTheme: String { return self._s[1736]! } - public var TwoFactorRemember_CheckPassword: String { return self._s[1739]! } - public var ChatImportActivity_ErrorLimitExceeded: String { return self._s[1740]! } + public var EditTheme_UploadNewTheme: String { return self._s[1737]! } + public var TwoFactorRemember_CheckPassword: String { return self._s[1740]! } + public var ChatImportActivity_ErrorLimitExceeded: String { return self._s[1741]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1741]!, self._r[1741]!, [_0]) + return formatWithArgumentRanges(self._s[1742]!, self._r[1742]!, [_0]) } - public var Login_CodeSentCall: String { return self._s[1743]! } + public var Login_CodeSentCall: String { return self._s[1744]! } public func Conversation_AutoremoveTimerSetUser(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1744]!, self._r[1744]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1745]!, self._r[1745]!, [_1, _2]) } - public var Conversation_Report: String { return self._s[1745]! } - public var NotificationSettings_ContactJoined: String { return self._s[1746]! } + public var Conversation_Report: String { return self._s[1746]! } + public var NotificationSettings_ContactJoined: String { return self._s[1747]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1747]!, self._r[1747]!, [_1]) + return formatWithArgumentRanges(self._s[1748]!, self._r[1748]!, [_1]) } - public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[1748]! } - public var BroadcastGroups_IntroText: String { return self._s[1749]! } - public var IntentsSettings_SuggestByAll: String { return self._s[1751]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[1752]! } - public var AuthSessions_Title: String { return self._s[1753]! } + public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[1749]! } + public var BroadcastGroups_IntroText: String { return self._s[1750]! } + public var IntentsSettings_SuggestByAll: String { return self._s[1752]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[1753]! } + public var AuthSessions_Title: String { return self._s[1754]! } public func Notification_VoiceChatEnded(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1754]!, self._r[1754]!, [_0]) + return formatWithArgumentRanges(self._s[1755]!, self._r[1755]!, [_0]) } - public var Settings_Tips: String { return self._s[1755]! } - public var Channel_AdminLog_TitleAllEvents: String { return self._s[1756]! } - public var WallpaperPreview_WallpaperColors: String { return self._s[1757]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1758]! } - public var VoiceChat_YouCanNowSpeak: String { return self._s[1761]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[1763]! } + public var Settings_Tips: String { return self._s[1756]! } + public var Channel_AdminLog_TitleAllEvents: String { return self._s[1757]! } + public var WallpaperPreview_WallpaperColors: String { return self._s[1758]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1759]! } + public var VoiceChat_YouCanNowSpeak: String { return self._s[1762]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[1764]! } public func UserInfo_LinkForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1764]!, self._r[1764]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1765]!, self._r[1765]!, [_0, _1]) } - public var AutoDownloadSettings_MaxVideoSize: String { return self._s[1765]! } - public var ExplicitContent_AlertTitle: String { return self._s[1766]! } - public var Channel_UpdatePhotoItem: String { return self._s[1768]! } - public var ChatList_AutoarchiveSuggestion_Text: String { return self._s[1770]! } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[1771]! } + public var AutoDownloadSettings_MaxVideoSize: String { return self._s[1766]! } + public var ExplicitContent_AlertTitle: String { return self._s[1767]! } + public var Channel_UpdatePhotoItem: String { return self._s[1769]! } + public var ChatList_AutoarchiveSuggestion_Text: String { return self._s[1771]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[1772]! } public func Call_BatteryLow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1772]!, self._r[1772]!, [_0]) + return formatWithArgumentRanges(self._s[1773]!, self._r[1773]!, [_0]) } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[1773]! } - public var WallpaperPreview_PatternPaternApply: String { return self._s[1774]! } - public var Notifications_MessageNotificationsSound: String { return self._s[1775]! } - public var CommentsGroup_ErrorAccessDenied: String { return self._s[1776]! } - public var Appearance_AccentColor: String { return self._s[1778]! } - public var GroupInfo_SharedMedia: String { return self._s[1779]! } - public var Login_PhonePlaceholder: String { return self._s[1780]! } - public var Appearance_TextSize_Automatic: String { return self._s[1781]! } - public var EmptyGroupInfo_Line2: String { return self._s[1782]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[1774]! } + public var WallpaperPreview_PatternPaternApply: String { return self._s[1775]! } + public var Notifications_MessageNotificationsSound: String { return self._s[1776]! } + public var CommentsGroup_ErrorAccessDenied: String { return self._s[1777]! } + public var Appearance_AccentColor: String { return self._s[1779]! } + public var GroupInfo_SharedMedia: String { return self._s[1780]! } + public var Login_PhonePlaceholder: String { return self._s[1781]! } + public var Appearance_TextSize_Automatic: String { return self._s[1782]! } + public var EmptyGroupInfo_Line2: String { return self._s[1783]! } public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1783]!, self._r[1783]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1784]!, self._r[1784]!, [_1, _2]) } - public var VoiceChat_TapToAddPhotoOrBio: String { return self._s[1784]! } - public var Conversation_ClearChannel: String { return self._s[1785]! } - public var Conversation_MessageDoesntExist: String { return self._s[1786]! } - public var Appearance_AppIconDefaultX: String { return self._s[1788]! } - public var EditProfile_NameAndPhotoOrVideoHelp: String { return self._s[1789]! } - public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[1790]! } - public var Notifications_GroupNotificationsHelp: String { return self._s[1791]! } + public var VoiceChat_TapToAddPhotoOrBio: String { return self._s[1785]! } + public var Conversation_ClearChannel: String { return self._s[1786]! } + public var Conversation_MessageDoesntExist: String { return self._s[1787]! } + public var Appearance_AppIconDefaultX: String { return self._s[1789]! } + public var EditProfile_NameAndPhotoOrVideoHelp: String { return self._s[1790]! } + public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[1791]! } + public var Notifications_GroupNotificationsHelp: String { return self._s[1792]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1792]!, self._r[1792]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1793]!, self._r[1793]!, [_1, _2]) } - public var ChatList_EmptyChatListEditFilter: String { return self._s[1793]! } - public var ChatSettings_ConnectionType_UseProxy: String { return self._s[1796]! } - public var Chat_PinnedMessagesHiddenText: String { return self._s[1797]! } + public var ChatList_EmptyChatListEditFilter: String { return self._s[1794]! } + public var ChatSettings_ConnectionType_UseProxy: String { return self._s[1797]! } + public var Chat_PinnedMessagesHiddenText: String { return self._s[1798]! } public func Message_PinnedGenericMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1798]!, self._r[1798]!, [_0]) - } - public func Location_ProximityTip(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1799]!, self._r[1799]!, [_0]) } - public var UserInfo_NotificationsEnable: String { return self._s[1800]! } - public var Checkout_PayWithTouchId: String { return self._s[1801]! } - public var SharedMedia_ViewInChat: String { return self._s[1802]! } - public func Notification_CreatedChatWithTitle(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1803]!, self._r[1803]!, [_0, _1]) + public func Location_ProximityTip(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1800]!, self._r[1800]!, [_0]) } - public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1804]! } + public var UserInfo_NotificationsEnable: String { return self._s[1801]! } + public var Checkout_PayWithTouchId: String { return self._s[1802]! } + public var SharedMedia_ViewInChat: String { return self._s[1803]! } + public func Notification_CreatedChatWithTitle(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1804]!, self._r[1804]!, [_0, _1]) + } + public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1805]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1805]!, self._r[1805]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1806]!, self._r[1806]!, [_1, _2]) } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1807]!, self._r[1807]!, [_0]) + return formatWithArgumentRanges(self._s[1808]!, self._r[1808]!, [_0]) } - public var Conversation_PeerNearbyText: String { return self._s[1809]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[1810]! } - public var PhotoEditor_Skip: String { return self._s[1811]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[1812]! } - public var ChatList_EmptyChatList: String { return self._s[1813]! } - public var Channel_BanUser_Unban: String { return self._s[1814]! } + public var Conversation_PeerNearbyText: String { return self._s[1810]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[1811]! } + public var PhotoEditor_Skip: String { return self._s[1812]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[1813]! } + public var ChatList_EmptyChatList: String { return self._s[1814]! } + public var Channel_BanUser_Unban: String { return self._s[1815]! } public func Message_GenericForwardedPsa(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1815]!, self._r[1815]!, [_0]) + return formatWithArgumentRanges(self._s[1816]!, self._r[1816]!, [_0]) } - public var Appearance_TextSize_Apply: String { return self._s[1816]! } + public var Appearance_TextSize_Apply: String { return self._s[1817]! } public func Conversation_MessageViewCommentsFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1817]!, self._r[1817]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1818]!, self._r[1818]!, [_1, _2]) } - public var Login_InfoFirstNamePlaceholder: String { return self._s[1818]! } - public var VoiceOver_Chat_YourSticker: String { return self._s[1819]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[1820]! } - public var TwoStepAuth_EmailSkip: String { return self._s[1822]! } - public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1823]! } - public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[1824]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[1819]! } + public var VoiceOver_Chat_YourSticker: String { return self._s[1820]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[1821]! } + public var TwoStepAuth_EmailSkip: String { return self._s[1823]! } + public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1824]! } + public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[1825]! } public func PUSH_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1825]!, self._r[1825]!, [_1]) + return formatWithArgumentRanges(self._s[1826]!, self._r[1826]!, [_1]) } - public var VoiceOver_Chat_GoToOriginalMessage: String { return self._s[1827]! } - public var State_WaitingForNetwork: String { return self._s[1828]! } - public var AccessDenied_CameraRestricted: String { return self._s[1829]! } - public var ChatSettings_Appearance: String { return self._s[1830]! } - public var ScheduledMessages_BotActionUnavailable: String { return self._s[1831]! } - public var GroupInfo_InviteLink_CopyAlert_Success: String { return self._s[1832]! } - public var Channel_DiscussionGroupAdd: String { return self._s[1833]! } - public var Conversation_SelectMessages: String { return self._s[1835]! } - public var Map_NoPlacesNearby: String { return self._s[1836]! } - public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1837]! } - public var GroupRemoved_Title: String { return self._s[1838]! } - public var ImportStickerPack_RemoveFromImport: String { return self._s[1839]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1841]! } - public var VoiceChat_Mute: String { return self._s[1842]! } - public var Paint_Marker: String { return self._s[1843]! } - public var Widget_ChatsGalleryTitle: String { return self._s[1844]! } + public var VoiceOver_Chat_GoToOriginalMessage: String { return self._s[1828]! } + public var State_WaitingForNetwork: String { return self._s[1829]! } + public var AccessDenied_CameraRestricted: String { return self._s[1830]! } + public var ChatSettings_Appearance: String { return self._s[1831]! } + public var ScheduledMessages_BotActionUnavailable: String { return self._s[1832]! } + public var GroupInfo_InviteLink_CopyAlert_Success: String { return self._s[1833]! } + public var Channel_DiscussionGroupAdd: String { return self._s[1834]! } + public var Conversation_SelectMessages: String { return self._s[1836]! } + public var Map_NoPlacesNearby: String { return self._s[1837]! } + public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1838]! } + public var GroupRemoved_Title: String { return self._s[1839]! } + public var ImportStickerPack_RemoveFromImport: String { return self._s[1840]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1842]! } + public var VoiceChat_Mute: String { return self._s[1843]! } + public var Paint_Marker: String { return self._s[1844]! } + public var Widget_ChatsGalleryTitle: String { return self._s[1845]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1845]!, self._r[1845]!, [_1]) + return formatWithArgumentRanges(self._s[1846]!, self._r[1846]!, [_1]) } - public var SocksProxySetup_ShareProxyList: String { return self._s[1846]! } - public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[1847]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[1847]! } + public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[1848]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1848]!, self._r[1848]!, [_0]) + return formatWithArgumentRanges(self._s[1849]!, self._r[1849]!, [_0]) } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[1849]! } - public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[1850]! } - public var Settings_CheckPasswordTitle: String { return self._s[1851]! } - public var Notifications_GroupNotificationsAlert: String { return self._s[1852]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[1853]! } - public var Compose_NewGroup: String { return self._s[1855]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[1850]! } + public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[1851]! } + public var Settings_CheckPasswordTitle: String { return self._s[1852]! } + public var Notifications_GroupNotificationsAlert: String { return self._s[1853]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[1854]! } + public var Compose_NewGroup: String { return self._s[1856]! } public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1856]!, self._r[1856]!, [_0]) + return formatWithArgumentRanges(self._s[1857]!, self._r[1857]!, [_0]) } - public var Location_LiveLocationRequired_Description: String { return self._s[1858]! } - public var Conversation_ClearGroupHistory: String { return self._s[1859]! } - public var GroupInfo_InviteLink_Help: String { return self._s[1862]! } - public var VoiceOver_BotKeyboard: String { return self._s[1863]! } - public var Channel_BanUser_BlockFor: String { return self._s[1864]! } - public var Bot_Start: String { return self._s[1865]! } - public var Your_card_has_expired: String { return self._s[1866]! } - public var Channel_About_Title: String { return self._s[1867]! } - public var VoiceChat_EditTitleTitle: String { return self._s[1868]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1869]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[1871]! } - public var Conversation_FileDropbox: String { return self._s[1872]! } - public var ChatList_Search_NoResultsFitlerMusic: String { return self._s[1873]! } - public var Month_GenNovember: String { return self._s[1874]! } - public var IntentsSettings_SuggestByShare: String { return self._s[1875]! } + public var Location_LiveLocationRequired_Description: String { return self._s[1859]! } + public var Conversation_ClearGroupHistory: String { return self._s[1860]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1863]! } + public var VoiceOver_BotKeyboard: String { return self._s[1864]! } + public var Channel_BanUser_BlockFor: String { return self._s[1865]! } + public var Bot_Start: String { return self._s[1866]! } + public var Your_card_has_expired: String { return self._s[1867]! } + public var Channel_About_Title: String { return self._s[1868]! } + public var VoiceChat_EditTitleTitle: String { return self._s[1869]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1870]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[1872]! } + public var Conversation_FileDropbox: String { return self._s[1873]! } + public var ChatList_Search_NoResultsFitlerMusic: String { return self._s[1874]! } + public var Month_GenNovember: String { return self._s[1875]! } + public var IntentsSettings_SuggestByShare: String { return self._s[1876]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1876]!, self._r[1876]!, [_0]) + return formatWithArgumentRanges(self._s[1877]!, self._r[1877]!, [_0]) } - public var StickerPack_Add: String { return self._s[1877]! } - public var Theme_ErrorNotFound: String { return self._s[1878]! } - public var Wallpaper_SearchShort: String { return self._s[1880]! } - public var Channel_BanUser_PermissionsHeader: String { return self._s[1881]! } - public var ConversationProfile_UsersTooMuchError: String { return self._s[1882]! } - public var ChatList_FolderAllChats: String { return self._s[1883]! } - public var VoiceChat_EndConfirmationEnd: String { return self._s[1884]! } - public var Passport_Authorize: String { return self._s[1885]! } + public var StickerPack_Add: String { return self._s[1878]! } + public var Theme_ErrorNotFound: String { return self._s[1879]! } + public var Wallpaper_SearchShort: String { return self._s[1881]! } + public var Channel_BanUser_PermissionsHeader: String { return self._s[1882]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[1883]! } + public var ChatList_FolderAllChats: String { return self._s[1884]! } + public var VoiceChat_EndConfirmationEnd: String { return self._s[1885]! } + public var Passport_Authorize: String { return self._s[1886]! } public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1886]!, self._r[1886]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1887]!, self._r[1887]!, [_1, _2]) } - public var GroupInfo_GroupHistoryVisible: String { return self._s[1887]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[1888]! } public func PUSH_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1888]!, self._r[1888]!, [_1]) + return formatWithArgumentRanges(self._s[1889]!, self._r[1889]!, [_1]) } - public var LocalGroup_ButtonTitle: String { return self._s[1889]! } - public var VoiceOver_Stickers: String { return self._s[1891]! } - public var UserInfo_GroupsInCommon: String { return self._s[1892]! } - public var LoginPassword_Title: String { return self._s[1894]! } - public var Wallpaper_Set: String { return self._s[1895]! } - public var Stats_InteractionsTitle: String { return self._s[1896]! } + public var LocalGroup_ButtonTitle: String { return self._s[1890]! } + public var VoiceOver_Stickers: String { return self._s[1892]! } + public var UserInfo_GroupsInCommon: String { return self._s[1893]! } + public var LoginPassword_Title: String { return self._s[1895]! } + public var Wallpaper_Set: String { return self._s[1896]! } + public var Stats_InteractionsTitle: String { return self._s[1897]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1898]!, self._r[1898]!, [_0]) + return formatWithArgumentRanges(self._s[1899]!, self._r[1899]!, [_0]) } - public var Conversation_MessageDialogEdit: String { return self._s[1899]! } - public var Paint_Outlined: String { return self._s[1900]! } + public var Conversation_MessageDialogEdit: String { return self._s[1900]! } + public var Paint_Outlined: String { return self._s[1901]! } public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1901]!, self._r[1901]!, [_0]) - } - public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1902]!, self._r[1902]!, [_0]) } - public var Invite_LargeRecipientsCountWarning: String { return self._s[1903]! } - public var Passport_Address_Street1Placeholder: String { return self._s[1904]! } - public var Appearance_ColorThemeNight: String { return self._s[1905]! } - public var ChannelInfo_Stats: String { return self._s[1906]! } - public var Widget_ShortcutsGalleryTitle: String { return self._s[1907]! } - public var TwoStepAuth_RecoveryTitle: String { return self._s[1908]! } - public var MediaPicker_TimerTooltip: String { return self._s[1909]! } - public var ChatImportActivity_ErrorNotAdmin: String { return self._s[1910]! } - public var TwoFactorRemember_Title: String { return self._s[1911]! } - public var Common_ChoosePhoto: String { return self._s[1912]! } - public var Media_LimitedAccessTitle: String { return self._s[1913]! } - public var ChatSettings_AutoDownloadVideos: String { return self._s[1914]! } - public var PeerInfo_PaneGroups: String { return self._s[1915]! } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[1917]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[1918]! } - public var ContactInfo_PhoneLabelMobile: String { return self._s[1919]! } - public var OldChannels_ChannelsHeader: String { return self._s[1920]! } - public var MuteFor_Forever: String { return self._s[1921]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[1922]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[1924]! } - public var MessagePoll_LabelAnonymous: String { return self._s[1925]! } - public var ContactInfo_Job: String { return self._s[1926]! } - public var Passport_Language_mk: String { return self._s[1927]! } - public var EditTheme_ShortLink: String { return self._s[1928]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[1931]! } - public var Month_GenApril: String { return self._s[1933]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[1935]! } - public var NetworkUsageSettings_TotalSection: String { return self._s[1936]! } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[1937]! } - public var EditTheme_Title: String { return self._s[1938]! } - public var Conversation_LinkDialogCopy: String { return self._s[1939]! } + public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1903]!, self._r[1903]!, [_0]) + } + public var Invite_LargeRecipientsCountWarning: String { return self._s[1904]! } + public var Passport_Address_Street1Placeholder: String { return self._s[1905]! } + public var Appearance_ColorThemeNight: String { return self._s[1906]! } + public var ChannelInfo_Stats: String { return self._s[1907]! } + public var Widget_ShortcutsGalleryTitle: String { return self._s[1908]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[1909]! } + public var MediaPicker_TimerTooltip: String { return self._s[1910]! } + public var ChatImportActivity_ErrorNotAdmin: String { return self._s[1911]! } + public var TwoFactorRemember_Title: String { return self._s[1912]! } + public var Common_ChoosePhoto: String { return self._s[1913]! } + public var Media_LimitedAccessTitle: String { return self._s[1914]! } + public var ChatSettings_AutoDownloadVideos: String { return self._s[1915]! } + public var PeerInfo_PaneGroups: String { return self._s[1916]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[1918]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[1919]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[1920]! } + public var OldChannels_ChannelsHeader: String { return self._s[1921]! } + public var MuteFor_Forever: String { return self._s[1922]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[1923]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[1925]! } + public var MessagePoll_LabelAnonymous: String { return self._s[1926]! } + public var ContactInfo_Job: String { return self._s[1927]! } + public var Passport_Language_mk: String { return self._s[1928]! } + public var EditTheme_ShortLink: String { return self._s[1929]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[1932]! } + public var Month_GenApril: String { return self._s[1934]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[1936]! } + public var NetworkUsageSettings_TotalSection: String { return self._s[1937]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[1938]! } + public var EditTheme_Title: String { return self._s[1939]! } + public var Conversation_LinkDialogCopy: String { return self._s[1940]! } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1940]!, self._r[1940]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1941]!, self._r[1941]!, [_1, _2]) } - public var Passport_ForgottenPassword: String { return self._s[1941]! } - public var WallpaperSearch_Recent: String { return self._s[1942]! } - public var ChatSettings_Title: String { return self._s[1947]! } - public var Appearance_ReduceMotionInfo: String { return self._s[1948]! } + public var Passport_ForgottenPassword: String { return self._s[1942]! } + public var WallpaperSearch_Recent: String { return self._s[1943]! } + public var ChatSettings_Title: String { return self._s[1948]! } + public var Appearance_ReduceMotionInfo: String { return self._s[1949]! } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1949]!, self._r[1949]!, [_0]) + return formatWithArgumentRanges(self._s[1950]!, self._r[1950]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[1950]! } - public var LastSeen_WithinAMonth: String { return self._s[1951]! } - public var VoiceChat_Live: String { return self._s[1952]! } - public var PeerInfo_ButtonCall: String { return self._s[1953]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[1954]! } - public var Group_Username_InvalidStartsWithNumber: String { return self._s[1955]! } - public var Call_AudioRouteHide: String { return self._s[1956]! } - public var DialogList_SavedMessages: String { return self._s[1957]! } - public var ChatList_Context_Mute: String { return self._s[1958]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[1959]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[1951]! } + public var LastSeen_WithinAMonth: String { return self._s[1952]! } + public var VoiceChat_Live: String { return self._s[1953]! } + public var PeerInfo_ButtonCall: String { return self._s[1954]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[1955]! } + public var Group_Username_InvalidStartsWithNumber: String { return self._s[1956]! } + public var Call_AudioRouteHide: String { return self._s[1957]! } + public var DialogList_SavedMessages: String { return self._s[1958]! } + public var ChatList_Context_Mute: String { return self._s[1959]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[1960]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1960]!, self._r[1960]!, [_0]) + return formatWithArgumentRanges(self._s[1961]!, self._r[1961]!, [_0]) } - public var VoiceChat_StatusMutedForYou: String { return self._s[1961]! } - public var Passport_Language_et: String { return self._s[1962]! } - public var Conversation_MessageLeaveCommentShort: String { return self._s[1963]! } - public var PhotoEditor_CropReset: String { return self._s[1964]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[1965]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[1966]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[1967]! } - public var WallpaperSearch_ColorWhite: String { return self._s[1970]! } - public var Channel_AdminLog_CanEditMessages: String { return self._s[1972]! } - public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[1973]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[1975]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[1977]! } - public var Map_YouAreHere: String { return self._s[1979]! } - public var Core_ServiceUserStatus: String { return self._s[1980]! } - public var Channel_Setup_TypePrivateHelp: String { return self._s[1983]! } - public var VoiceChat_StartRecording: String { return self._s[1984]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[1985]! } - public var MediaPicker_Videos: String { return self._s[1987]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[1989]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[1990]! } - public var SharedMedia_CategoryMedia: String { return self._s[1991]! } + public var VoiceChat_StatusMutedForYou: String { return self._s[1962]! } + public var Passport_Language_et: String { return self._s[1963]! } + public var Conversation_MessageLeaveCommentShort: String { return self._s[1964]! } + public var PhotoEditor_CropReset: String { return self._s[1965]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[1966]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[1967]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[1968]! } + public var WallpaperSearch_ColorWhite: String { return self._s[1971]! } + public var Channel_AdminLog_CanEditMessages: String { return self._s[1973]! } + public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[1974]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[1976]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[1978]! } + public var Map_YouAreHere: String { return self._s[1980]! } + public var Core_ServiceUserStatus: String { return self._s[1981]! } + public var Channel_Setup_TypePrivateHelp: String { return self._s[1984]! } + public var VoiceChat_StartRecording: String { return self._s[1985]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[1986]! } + public var MediaPicker_Videos: String { return self._s[1988]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[1990]! } + public var Passport_Identity_TranslationsHelp: String { return self._s[1991]! } + public var SharedMedia_CategoryMedia: String { return self._s[1992]! } public func MediaPicker_Nof(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1992]!, self._r[1992]!, [_0]) + return formatWithArgumentRanges(self._s[1993]!, self._r[1993]!, [_0]) } - public var ChatSettings_AutoPlayGifs: String { return self._s[1993]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[1994]! } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[1995]! } - public var Conversation_JoinVoiceChatAsListener: String { return self._s[1996]! } - public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1997]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[1994]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[1995]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[1996]! } + public var Conversation_JoinVoiceChatAsListener: String { return self._s[1997]! } + public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1998]! } public func Chat_SlowmodeTooltip(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1998]!, self._r[1998]!, [_0]) + return formatWithArgumentRanges(self._s[1999]!, self._r[1999]!, [_0]) } - public var Web_Error: String { return self._s[1999]! } - public var PhotoEditor_SkinTool: String { return self._s[2000]! } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[2001]! } - public var AutoremoveSetup_TimerInfoChat: String { return self._s[2002]! } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[2004]! } - public var PasscodeSettings_Help: String { return self._s[2005]! } - public var Appearance_ColorTheme: String { return self._s[2006]! } + public var Web_Error: String { return self._s[2000]! } + public var PhotoEditor_SkinTool: String { return self._s[2001]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[2002]! } + public var AutoremoveSetup_TimerInfoChat: String { return self._s[2003]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[2005]! } + public var PasscodeSettings_Help: String { return self._s[2006]! } + public var Appearance_ColorTheme: String { return self._s[2007]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2007]!, self._r[2007]!, [_0]) + return formatWithArgumentRanges(self._s[2008]!, self._r[2008]!, [_0]) } - public var InviteLink_DeleteAllRevokedLinks: String { return self._s[2008]! } + public var InviteLink_DeleteAllRevokedLinks: String { return self._s[2009]! } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2009]!, self._r[2009]!, [_1]) + return formatWithArgumentRanges(self._s[2010]!, self._r[2010]!, [_1]) } - public var InviteLink_QRCode_Title: String { return self._s[2010]! } - public var GroupInfo_LeftStatus: String { return self._s[2011]! } - public var EditTheme_Preview: String { return self._s[2012]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[2013]! } + public var InviteLink_QRCode_Title: String { return self._s[2011]! } + public var GroupInfo_LeftStatus: String { return self._s[2012]! } + public var EditTheme_Preview: String { return self._s[2013]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[2014]! } public func AutoDownloadSettings_PreloadVideoInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2014]!, self._r[2014]!, [_0]) + return formatWithArgumentRanges(self._s[2015]!, self._r[2015]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[2015]! } - public var VoiceChat_StatusWantsToSpeak: String { return self._s[2016]! } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[2017]! } - public var ChatList_Context_MarkAsUnread: String { return self._s[2018]! } - public var DialogList_AdNoticeAlert: String { return self._s[2019]! } - public var UserInfo_Invite: String { return self._s[2020]! } - public var Checkout_Email: String { return self._s[2021]! } - public var Stats_GroupActionsTitle: String { return self._s[2022]! } - public var Coub_TapForSound: String { return self._s[2023]! } - public var Conversation_AutoremoveTimerRemovedUserYou: String { return self._s[2024]! } - public var Theme_ThemeChangedText: String { return self._s[2025]! } - public var Call_ExternalCallInProgressMessage: String { return self._s[2026]! } - public var AutoremoveSetup_TimerInfoChannel: String { return self._s[2027]! } - public var Settings_ApplyProxyAlertEnable: String { return self._s[2028]! } - public var ScheduledMessages_ScheduledToday: String { return self._s[2029]! } - public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[2030]! } + public var NotificationsSound_Keys: String { return self._s[2016]! } + public var VoiceChat_StatusWantsToSpeak: String { return self._s[2017]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[2018]! } + public var ChatList_Context_MarkAsUnread: String { return self._s[2019]! } + public var DialogList_AdNoticeAlert: String { return self._s[2020]! } + public var UserInfo_Invite: String { return self._s[2021]! } + public var Checkout_Email: String { return self._s[2022]! } + public var Stats_GroupActionsTitle: String { return self._s[2023]! } + public var Coub_TapForSound: String { return self._s[2024]! } + public var Conversation_AutoremoveTimerRemovedUserYou: String { return self._s[2025]! } + public var Theme_ThemeChangedText: String { return self._s[2026]! } + public var Call_ExternalCallInProgressMessage: String { return self._s[2027]! } + public var AutoremoveSetup_TimerInfoChannel: String { return self._s[2028]! } + public var Settings_ApplyProxyAlertEnable: String { return self._s[2029]! } + public var ScheduledMessages_ScheduledToday: String { return self._s[2030]! } + public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[2031]! } public func VoiceChat_InviteMemberToChannelFirstText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2031]!, self._r[2031]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2032]!, self._r[2032]!, [_1, _2]) } - public var Call_ReportIncludeLogDescription: String { return self._s[2032]! } - public var Settings_FrequentlyAskedQuestions: String { return self._s[2034]! } - public var Call_VoiceOver_VoiceCallMissed: String { return self._s[2035]! } - public var Channel_MessagePhotoRemoved: String { return self._s[2036]! } - public var Passport_Email_Delete: String { return self._s[2037]! } + public var Call_ReportIncludeLogDescription: String { return self._s[2033]! } + public var Settings_FrequentlyAskedQuestions: String { return self._s[2035]! } + public var Call_VoiceOver_VoiceCallMissed: String { return self._s[2036]! } + public var Channel_MessagePhotoRemoved: String { return self._s[2037]! } + public var Passport_Email_Delete: String { return self._s[2038]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2038]!, self._r[2038]!, [_1]) + return formatWithArgumentRanges(self._s[2039]!, self._r[2039]!, [_1]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2039]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2040]! } public func Conversation_AutoremoveTimerRemovedUser(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2040]!, self._r[2040]!, [_1]) + return formatWithArgumentRanges(self._s[2041]!, self._r[2041]!, [_1]) } - public var Channel_AdminLog_CanAddAdmins: String { return self._s[2041]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[2043]! } - public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[2044]! } - public var Common_of: String { return self._s[2045]! } - public var VoiceChat_CreateNewVoiceChatText: String { return self._s[2046]! } - public var VoiceChat_StartRecordingStart: String { return self._s[2047]! } - public var PeerInfo_ButtonUnmute: String { return self._s[2050]! } + public var Channel_AdminLog_CanAddAdmins: String { return self._s[2042]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[2044]! } + public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[2045]! } + public var Common_of: String { return self._s[2046]! } + public var VoiceChat_CreateNewVoiceChatText: String { return self._s[2047]! } + public var VoiceChat_StartRecordingStart: String { return self._s[2048]! } + public var PeerInfo_ButtonUnmute: String { return self._s[2051]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2051]!, self._r[2051]!, [_0]) + return formatWithArgumentRanges(self._s[2052]!, self._r[2052]!, [_0]) } - public var Privacy_ContactsReset_ContactsDeleted: String { return self._s[2052]! } - public var ChatList_AddChatsToFolder: String { return self._s[2053]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2054]! } - public var Settings_Title: String { return self._s[2056]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2058]! } - public var Appearance_BubbleCornersSetting: String { return self._s[2059]! } - public var InviteLink_OtherAdminsLinks: String { return self._s[2060]! } - public var Privacy_Calls_AlwaysAllow: String { return self._s[2061]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[2063]! } - public var WallpaperPreview_CropBottomText: String { return self._s[2064]! } - public var SecretTimer_VideoDescription: String { return self._s[2065]! } - public var VoiceOver_Chat_AnimatedSticker: String { return self._s[2066]! } - public var WallpaperPreview_Blurred: String { return self._s[2067]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[2068]! } - public var ChatListFolder_ExcludedSectionHeader: String { return self._s[2070]! } - public var Conversation_CancelForwardSelectChat: String { return self._s[2071]! } - public var DialogList_PasscodeLockHelp: String { return self._s[2072]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2073]! } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2074]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2075]! } - public var Passport_FieldAddressTranslationHelp: String { return self._s[2076]! } - public var SocksProxySetup_Connection: String { return self._s[2077]! } - public var Passport_Address_TypePassportRegistration: String { return self._s[2078]! } - public var Contacts_PermissionsAllowInSettings: String { return self._s[2079]! } - public var Conversation_Unpin: String { return self._s[2080]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[2081]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[2082]! } - public var Call_ReportSkip: String { return self._s[2083]! } + public var Privacy_ContactsReset_ContactsDeleted: String { return self._s[2053]! } + public var ChatList_AddChatsToFolder: String { return self._s[2054]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2055]! } + public var Settings_Title: String { return self._s[2057]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2059]! } + public var Appearance_BubbleCornersSetting: String { return self._s[2060]! } + public var InviteLink_OtherAdminsLinks: String { return self._s[2061]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[2062]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[2064]! } + public var WallpaperPreview_CropBottomText: String { return self._s[2065]! } + public var SecretTimer_VideoDescription: String { return self._s[2066]! } + public var VoiceOver_Chat_AnimatedSticker: String { return self._s[2067]! } + public var WallpaperPreview_Blurred: String { return self._s[2068]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[2069]! } + public var ChatListFolder_ExcludedSectionHeader: String { return self._s[2071]! } + public var Conversation_CancelForwardSelectChat: String { return self._s[2072]! } + public var DialogList_PasscodeLockHelp: String { return self._s[2073]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2074]! } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2075]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2076]! } + public var Passport_FieldAddressTranslationHelp: String { return self._s[2077]! } + public var SocksProxySetup_Connection: String { return self._s[2078]! } + public var Passport_Address_TypePassportRegistration: String { return self._s[2079]! } + public var Contacts_PermissionsAllowInSettings: String { return self._s[2080]! } + public var Conversation_Unpin: String { return self._s[2081]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[2082]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[2083]! } + public var Call_ReportSkip: String { return self._s[2084]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2084]!, self._r[2084]!, [_0]) + return formatWithArgumentRanges(self._s[2085]!, self._r[2085]!, [_0]) } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2086]!, self._r[2086]!, [_0]) + return formatWithArgumentRanges(self._s[2087]!, self._r[2087]!, [_0]) } - public var AutoNightTheme_Automatic: String { return self._s[2087]! } - public var Passport_Language_az: String { return self._s[2089]! } + public var AutoNightTheme_Automatic: String { return self._s[2088]! } + public var Passport_Language_az: String { return self._s[2090]! } public func Conversation_AutoremoveChanged(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2090]!, self._r[2090]!, [_0]) + return formatWithArgumentRanges(self._s[2091]!, self._r[2091]!, [_0]) } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[2091]! } - public var Watch_UserInfo_Unmute: String { return self._s[2092]! } - public var Channel_Stickers_YourStickers: String { return self._s[2093]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2094]! } - public var PeerInfo_AutoremoveMessagesDisabled: String { return self._s[2095]! } - public var Tour_Text1: String { return self._s[2096]! } - public var Common_Delete: String { return self._s[2097]! } - public var Settings_EditPhoto: String { return self._s[2098]! } - public var Common_Edit: String { return self._s[2099]! } - public var ShareMenu_ShareTo: String { return self._s[2101]! } - public var Passport_Identity_ExpiryDate: String { return self._s[2102]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[2092]! } + public var Watch_UserInfo_Unmute: String { return self._s[2093]! } + public var Channel_Stickers_YourStickers: String { return self._s[2094]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2095]! } + public var PeerInfo_AutoremoveMessagesDisabled: String { return self._s[2096]! } + public var Tour_Text1: String { return self._s[2097]! } + public var Common_Delete: String { return self._s[2098]! } + public var Settings_EditPhoto: String { return self._s[2099]! } + public var Common_Edit: String { return self._s[2100]! } + public var ShareMenu_ShareTo: String { return self._s[2102]! } + public var Passport_Identity_ExpiryDate: String { return self._s[2103]! } public func Channel_AdminLog_MutedNewMembers(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2103]!, self._r[2103]!, [_1]) + return formatWithArgumentRanges(self._s[2104]!, self._r[2104]!, [_1]) } - public var Preview_DeleteGif: String { return self._s[2104]! } - public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2105]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[2106]! } - public var Conversation_ViewReply: String { return self._s[2107]! } - public var Stats_LoadingText: String { return self._s[2108]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[2109]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[2110]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[2111]! } + public var Preview_DeleteGif: String { return self._s[2105]! } + public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2106]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[2107]! } + public var Conversation_ViewReply: String { return self._s[2108]! } + public var Stats_LoadingText: String { return self._s[2109]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[2110]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[2111]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[2112]! } public func Passport_Phone_UseTelegramNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2112]!, self._r[2112]!, [_0]) - } - public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2113]!, self._r[2113]!, [_0]) } + public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2114]!, self._r[2114]!, [_0]) + } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2115]!, self._r[2115]!, [_0]) + return formatWithArgumentRanges(self._s[2116]!, self._r[2116]!, [_0]) } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[2116]! } - public var InviteLink_Share: String { return self._s[2118]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[2117]! } + public var InviteLink_Share: String { return self._s[2119]! } public func Conversation_ImportProgress(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2120]!, self._r[2120]!, [_0]) + return formatWithArgumentRanges(self._s[2121]!, self._r[2121]!, [_0]) } - public var IntentsSettings_MainAccount: String { return self._s[2121]! } - public var Group_MessagePhotoRemoved: String { return self._s[2124]! } - public var Conversation_ContextMenuSelect: String { return self._s[2125]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2127]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[2128]! } - public var Contacts_PermissionsEnable: String { return self._s[2129]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[2130]! } - public var Common_NotNow: String { return self._s[2131]! } - public var Notification_CreatedChannel: String { return self._s[2132]! } - public var Stats_ViewsBySourceTitle: String { return self._s[2134]! } - public var InviteLink_ContextShare: String { return self._s[2135]! } - public var Appearance_AppIconClassic: String { return self._s[2136]! } - public var PhotoEditor_QualityTool: String { return self._s[2137]! } - public var ClearCache_ClearCache: String { return self._s[2138]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[2139]! } - public var AutoDownloadSettings_Videos: String { return self._s[2140]! } - public var GroupPermission_Duration: String { return self._s[2141]! } - public var ChatList_Read: String { return self._s[2142]! } + public var IntentsSettings_MainAccount: String { return self._s[2122]! } + public var Group_MessagePhotoRemoved: String { return self._s[2125]! } + public var Conversation_ContextMenuSelect: String { return self._s[2126]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2128]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[2129]! } + public var Contacts_PermissionsEnable: String { return self._s[2130]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[2131]! } + public var Common_NotNow: String { return self._s[2132]! } + public var Notification_CreatedChannel: String { return self._s[2133]! } + public var Stats_ViewsBySourceTitle: String { return self._s[2135]! } + public var InviteLink_ContextShare: String { return self._s[2136]! } + public var Appearance_AppIconClassic: String { return self._s[2137]! } + public var PhotoEditor_QualityTool: String { return self._s[2138]! } + public var ClearCache_ClearCache: String { return self._s[2139]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[2140]! } + public var AutoDownloadSettings_Videos: String { return self._s[2141]! } + public var GroupPermission_Duration: String { return self._s[2142]! } + public var ChatList_Read: String { return self._s[2143]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2143]!, self._r[2143]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2144]!, self._r[2144]!, [_1, _2]) } public func ScheduleVoiceChat_ScheduleTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2144]!, self._r[2144]!, [_0]) + return formatWithArgumentRanges(self._s[2145]!, self._r[2145]!, [_0]) } - public var CallFeedback_Send: String { return self._s[2145]! } - public var Channel_Stickers_Searching: String { return self._s[2146]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[2147]! } - public var FastTwoStepSetup_HintSection: String { return self._s[2148]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2149]! } - public var EditTheme_CreateTitle: String { return self._s[2151]! } - public var Application_Name: String { return self._s[2152]! } - public var Paint_Stickers: String { return self._s[2153]! } - public var Appearance_ThemePreview_Chat_1_Text: String { return self._s[2154]! } - public var Call_StatusFailed: String { return self._s[2155]! } - public var Stickers_FavoriteStickers: String { return self._s[2156]! } - public var ClearCache_Clear: String { return self._s[2157]! } - public var Passport_Language_mn: String { return self._s[2158]! } - public var WallpaperPreview_PreviewTopText: String { return self._s[2159]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[2160]! } - public var Call_VoiceOver_VideoCallOutgoing: String { return self._s[2162]! } - public var TwoFactorSetup_Hint_Text: String { return self._s[2164]! } - public var WallpaperPreview_PatternIntensity: String { return self._s[2165]! } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2166]! } - public var Passport_Address_AddBankStatement: String { return self._s[2167]! } + public var CallFeedback_Send: String { return self._s[2146]! } + public var Channel_Stickers_Searching: String { return self._s[2147]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[2148]! } + public var FastTwoStepSetup_HintSection: String { return self._s[2149]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2150]! } + public var EditTheme_CreateTitle: String { return self._s[2152]! } + public var Application_Name: String { return self._s[2153]! } + public var Paint_Stickers: String { return self._s[2154]! } + public var Appearance_ThemePreview_Chat_1_Text: String { return self._s[2155]! } + public var Call_StatusFailed: String { return self._s[2156]! } + public var Stickers_FavoriteStickers: String { return self._s[2157]! } + public var ClearCache_Clear: String { return self._s[2158]! } + public var Passport_Language_mn: String { return self._s[2159]! } + public var WallpaperPreview_PreviewTopText: String { return self._s[2160]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[2161]! } + public var Call_VoiceOver_VideoCallOutgoing: String { return self._s[2163]! } + public var TwoFactorSetup_Hint_Text: String { return self._s[2165]! } + public var WallpaperPreview_PatternIntensity: String { return self._s[2166]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2167]! } + public var Passport_Address_AddBankStatement: String { return self._s[2168]! } public func Conversation_TitleRepliesFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2170]!, self._r[2170]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2171]!, self._r[2171]!, [_1, _2]) } - public var ChatListFolderSettings_RecommendedNewFolder: String { return self._s[2171]! } - public var UserInfo_ShareContact: String { return self._s[2172]! } - public var Passport_Identity_NamePlaceholder: String { return self._s[2173]! } - public var Channel_ErrorAdminsTooMuch: String { return self._s[2175]! } - public var Call_RateCall: String { return self._s[2176]! } - public var Contacts_AccessDeniedError: String { return self._s[2177]! } - public var Invite_ChannelsTooMuch: String { return self._s[2178]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[2179]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[2180]! } - public var InviteLink_Create_TimeLimitInfo: String { return self._s[2181]! } - public var Cache_NoLimit: String { return self._s[2184]! } - public var Conversation_EmptyPlaceholder: String { return self._s[2185]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2189]! } - public var Notification_Exceptions_MessagePreviewAlwaysOff: String { return self._s[2190]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2191]! } - public var Privacy_PaymentsClear_AllInfoCleared: String { return self._s[2192]! } - public var Privacy_Calls_IntegrationHelp: String { return self._s[2193]! } + public var ChatListFolderSettings_RecommendedNewFolder: String { return self._s[2172]! } + public var UserInfo_ShareContact: String { return self._s[2173]! } + public var Passport_Identity_NamePlaceholder: String { return self._s[2174]! } + public var Channel_ErrorAdminsTooMuch: String { return self._s[2176]! } + public var Call_RateCall: String { return self._s[2177]! } + public var Contacts_AccessDeniedError: String { return self._s[2178]! } + public var Invite_ChannelsTooMuch: String { return self._s[2179]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[2180]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[2181]! } + public var InviteLink_Create_TimeLimitInfo: String { return self._s[2182]! } + public var Cache_NoLimit: String { return self._s[2185]! } + public var Conversation_EmptyPlaceholder: String { return self._s[2186]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2190]! } + public var Notification_Exceptions_MessagePreviewAlwaysOff: String { return self._s[2191]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2192]! } + public var Privacy_PaymentsClear_AllInfoCleared: String { return self._s[2193]! } + public var Privacy_Calls_IntegrationHelp: String { return self._s[2194]! } public func PUSH_VIDEO_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2194]!, self._r[2194]!, [_1]) + return formatWithArgumentRanges(self._s[2195]!, self._r[2195]!, [_1]) } - public var VoiceOver_Media_PlaybackRateFast: String { return self._s[2195]! } - public var Theme_ThemeChanged: String { return self._s[2196]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2198]! } - public var AutoDownloadSettings_MediaTypes: String { return self._s[2199]! } + public var VoiceOver_Media_PlaybackRateFast: String { return self._s[2196]! } + public var Theme_ThemeChanged: String { return self._s[2197]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2199]! } + public var AutoDownloadSettings_MediaTypes: String { return self._s[2200]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2200]!, self._r[2200]!, [_0]) + return formatWithArgumentRanges(self._s[2201]!, self._r[2201]!, [_0]) } - public var Channel_AdminLog_InfoPanelTitle: String { return self._s[2201]! } - public var Passport_Language_da: String { return self._s[2203]! } - public var Chat_SlowmodeSendError: String { return self._s[2204]! } - public var Application_Update: String { return self._s[2206]! } - public var SocksProxySetup_SaveProxy: String { return self._s[2207]! } + public var Channel_AdminLog_InfoPanelTitle: String { return self._s[2202]! } + public var Passport_Language_da: String { return self._s[2204]! } + public var Chat_SlowmodeSendError: String { return self._s[2205]! } + public var Application_Update: String { return self._s[2207]! } + public var SocksProxySetup_SaveProxy: String { return self._s[2208]! } public func PUSH_AUTH_REGION(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2208]!, self._r[2208]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2209]!, self._r[2209]!, [_1, _2]) } - public var Privacy_AddNewPeer: String { return self._s[2210]! } - public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[2212]! } - public var Channel_Members_Title: String { return self._s[2213]! } - public var StickerPacks_ActionDelete: String { return self._s[2214]! } - public var Conversation_ScheduledVoiceChat: String { return self._s[2215]! } - public var Settings_LogoutConfirmationText: String { return self._s[2217]! } - public var Chat_UnsendMyMessages: String { return self._s[2218]! } - public var PeerInfo_ReportProfilePhoto: String { return self._s[2219]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2221]! } - public var ChatListFilter_AddChatsTitle: String { return self._s[2222]! } - public var Passport_FloodError: String { return self._s[2223]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[2224]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2225]! } - public var CallSettings_TabIconDescription: String { return self._s[2226]! } - public var Group_Setup_HistoryHeader: String { return self._s[2228]! } + public var Privacy_AddNewPeer: String { return self._s[2211]! } + public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[2213]! } + public var Channel_Members_Title: String { return self._s[2214]! } + public var StickerPacks_ActionDelete: String { return self._s[2215]! } + public var Conversation_ScheduledVoiceChat: String { return self._s[2216]! } + public var Settings_LogoutConfirmationText: String { return self._s[2218]! } + public var Chat_UnsendMyMessages: String { return self._s[2219]! } + public var PeerInfo_ReportProfilePhoto: String { return self._s[2220]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2222]! } + public var ChatListFilter_AddChatsTitle: String { return self._s[2223]! } + public var Passport_FloodError: String { return self._s[2224]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[2225]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2226]! } + public var CallSettings_TabIconDescription: String { return self._s[2227]! } + public var Group_Setup_HistoryHeader: String { return self._s[2229]! } public func Channel_AdminLog_AllowedNewMembersToSpeak(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2229]!, self._r[2229]!, [_1]) + return formatWithArgumentRanges(self._s[2230]!, self._r[2230]!, [_1]) } - public var TwoStepAuth_EmailTitle: String { return self._s[2230]! } - public var GroupInfo_Permissions_Removed: String { return self._s[2231]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[2232]! } - public var Contacts_Title: String { return self._s[2234]! } + public var TwoStepAuth_EmailTitle: String { return self._s[2231]! } + public var GroupInfo_Permissions_Removed: String { return self._s[2232]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[2233]! } + public var Contacts_Title: String { return self._s[2235]! } public func Notification_Invited(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2235]!, self._r[2235]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2236]!, self._r[2236]!, [_0, _1]) } - public var ChatList_PeerTypeBot: String { return self._s[2238]! } + public var ChatList_PeerTypeBot: String { return self._s[2239]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2239]!, self._r[2239]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2240]!, self._r[2240]!, [_1, _2]) } - public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[2240]! } + public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[2241]! } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2241]!, self._r[2241]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2242]!, self._r[2242]!, [_1, _2, _3]) } - public var Camera_PhotoMode: String { return self._s[2243]! } + public var Camera_PhotoMode: String { return self._s[2244]! } public func PUSH_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2244]!, self._r[2244]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2245]!, self._r[2245]!, [_1, _2, _3]) } - public var ContactInfo_PhoneLabelPager: String { return self._s[2245]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[2246]! } - public var Call_CallAgain: String { return self._s[2247]! } - public var TwoStepAuth_PasswordSet: String { return self._s[2248]! } - public var VoiceChat_EditDescriptionPlaceholder: String { return self._s[2249]! } + public var ContactInfo_PhoneLabelPager: String { return self._s[2246]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[2247]! } + public var Call_CallAgain: String { return self._s[2248]! } + public var TwoStepAuth_PasswordSet: String { return self._s[2249]! } + public var VoiceChat_EditDescriptionPlaceholder: String { return self._s[2250]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2250]!, self._r[2250]!, [_0]) + return formatWithArgumentRanges(self._s[2251]!, self._r[2251]!, [_0]) } - public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[2251]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[2252]! } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2253]! } - public var Group_LeaveGroup: String { return self._s[2254]! } - public var Channel_Setup_LinkTypePrivate: String { return self._s[2256]! } - public var GroupInfo_LabelAdmin: String { return self._s[2258]! } - public var CheckoutInfo_ErrorStateInvalid: String { return self._s[2260]! } - public var Notification_PassportValuePersonalDetails: String { return self._s[2261]! } + public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[2252]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2253]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2254]! } + public var Group_LeaveGroup: String { return self._s[2255]! } + public var Channel_Setup_LinkTypePrivate: String { return self._s[2257]! } + public var GroupInfo_LabelAdmin: String { return self._s[2259]! } + public var CheckoutInfo_ErrorStateInvalid: String { return self._s[2261]! } + public var Notification_PassportValuePersonalDetails: String { return self._s[2262]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2262]!, self._r[2262]!, [_0]) + return formatWithArgumentRanges(self._s[2263]!, self._r[2263]!, [_0]) } - public var Stats_GroupNewMembersBySourceTitle: String { return self._s[2263]! } - public var Appearance_Preview: String { return self._s[2264]! } - public var VoiceOver_Chat_Contact: String { return self._s[2265]! } - public var Passport_Language_th: String { return self._s[2266]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2268]! } - public var LastSeen_Offline: String { return self._s[2271]! } - public var Map_OpenInHereMaps: String { return self._s[2272]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[2273]! } - public var InviteLink_ContextEdit: String { return self._s[2275]! } - public var AutoDownloadSettings_Reset: String { return self._s[2276]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[2277]! } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[2278]! } + public var Stats_GroupNewMembersBySourceTitle: String { return self._s[2264]! } + public var Appearance_Preview: String { return self._s[2265]! } + public var VoiceOver_Chat_Contact: String { return self._s[2266]! } + public var Passport_Language_th: String { return self._s[2267]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2269]! } + public var LastSeen_Offline: String { return self._s[2272]! } + public var Map_OpenInHereMaps: String { return self._s[2273]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[2274]! } + public var InviteLink_ContextEdit: String { return self._s[2276]! } + public var AutoDownloadSettings_Reset: String { return self._s[2277]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[2278]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[2279]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2279]!, self._r[2279]!, [_0]) - } - public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2280]!, self._r[2280]!, [_0]) } - public var Passport_Identity_EditDriversLicense: String { return self._s[2281]! } - public var ChatListFolder_NameNonMuted: String { return self._s[2282]! } - public var Username_Placeholder: String { return self._s[2283]! } + public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2281]!, self._r[2281]!, [_0]) + } + public var Passport_Identity_EditDriversLicense: String { return self._s[2282]! } + public var ChatListFolder_NameNonMuted: String { return self._s[2283]! } + public var Username_Placeholder: String { return self._s[2284]! } public func PUSH_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2284]!, self._r[2284]!, [_1]) + return formatWithArgumentRanges(self._s[2285]!, self._r[2285]!, [_1]) } - public var Passport_Language_it: String { return self._s[2285]! } - public var Checkout_NewCard_SaveInfo: String { return self._s[2286]! } + public var Passport_Language_it: String { return self._s[2286]! } + public var Checkout_NewCard_SaveInfo: String { return self._s[2287]! } public func Channel_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2287]!, self._r[2287]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2288]!, self._r[2288]!, [_1, _2]) } - public var NotificationsSound_Pulse: String { return self._s[2288]! } - public var VoiceOver_DismissContextMenu: String { return self._s[2290]! } - public var MessagePoll_NoVotes: String { return self._s[2293]! } - public var Message_Wallpaper: String { return self._s[2294]! } - public var Conversation_JoinVoiceChat: String { return self._s[2295]! } - public var Appearance_Other: String { return self._s[2296]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[2298]! } - public var Group_PublicLink_Placeholder: String { return self._s[2302]! } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[2303]! } - public var VoiceOver_Recording_StopAndPreview: String { return self._s[2304]! } - public var ChatListFolder_NameBots: String { return self._s[2305]! } - public var Conversation_StopPollConfirmation: String { return self._s[2306]! } - public var UserInfo_DeleteContact: String { return self._s[2307]! } + public var NotificationsSound_Pulse: String { return self._s[2289]! } + public var VoiceOver_DismissContextMenu: String { return self._s[2291]! } + public var MessagePoll_NoVotes: String { return self._s[2294]! } + public var Message_Wallpaper: String { return self._s[2295]! } + public var Conversation_JoinVoiceChat: String { return self._s[2296]! } + public var Appearance_Other: String { return self._s[2297]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[2299]! } + public var Group_PublicLink_Placeholder: String { return self._s[2303]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[2304]! } + public var VoiceOver_Recording_StopAndPreview: String { return self._s[2305]! } + public var ChatListFolder_NameBots: String { return self._s[2306]! } + public var Conversation_StopPollConfirmation: String { return self._s[2307]! } + public var UserInfo_DeleteContact: String { return self._s[2308]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2308]!, self._r[2308]!, [_0]) + return formatWithArgumentRanges(self._s[2309]!, self._r[2309]!, [_0]) } - public var Wallpaper_Wallpaper: String { return self._s[2310]! } + public var Wallpaper_Wallpaper: String { return self._s[2311]! } public func PUSH_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2311]!, self._r[2311]!, [_1]) + return formatWithArgumentRanges(self._s[2312]!, self._r[2312]!, [_1]) } - public var LoginPassword_ForgotPassword: String { return self._s[2312]! } - public var FeaturedStickerPacks_Title: String { return self._s[2313]! } - public var Paint_Pen: String { return self._s[2314]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2315]! } - public var ChatListFolderSettings_Info: String { return self._s[2316]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2317]! } - public var PhotoEditor_CurvesAll: String { return self._s[2319]! } + public var LoginPassword_ForgotPassword: String { return self._s[2313]! } + public var FeaturedStickerPacks_Title: String { return self._s[2314]! } + public var Paint_Pen: String { return self._s[2315]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2316]! } + public var ChatListFolderSettings_Info: String { return self._s[2317]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2318]! } + public var PhotoEditor_CurvesAll: String { return self._s[2320]! } public func Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2321]!, self._r[2321]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2322]!, self._r[2322]!, [_1, _2, _3]) } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2323]! } - public var Message_ImageExpired: String { return self._s[2324]! } - public var Call_ConnectionErrorMessage: String { return self._s[2325]! } - public var SearchImages_NoImagesFound: String { return self._s[2327]! } - public var PeerInfo_PaneGifs: String { return self._s[2328]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2329]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2330]! } - public var PhotoEditor_VignetteTool: String { return self._s[2331]! } - public var Passport_Language_dz: String { return self._s[2332]! } - public var Notifications_ChannelNotificationsHelp: String { return self._s[2333]! } - public var Conversation_BlockUser: String { return self._s[2334]! } - public var GroupPermission_PermissionDisabledByDefault: String { return self._s[2337]! } - public var TwoStepAuth_CancelResetText: String { return self._s[2339]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2340]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2324]! } + public var Message_ImageExpired: String { return self._s[2325]! } + public var Call_ConnectionErrorMessage: String { return self._s[2326]! } + public var SearchImages_NoImagesFound: String { return self._s[2328]! } + public var PeerInfo_PaneGifs: String { return self._s[2329]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2330]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2331]! } + public var PhotoEditor_VignetteTool: String { return self._s[2332]! } + public var Passport_Language_dz: String { return self._s[2333]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[2334]! } + public var Conversation_BlockUser: String { return self._s[2335]! } + public var GroupPermission_PermissionDisabledByDefault: String { return self._s[2338]! } + public var TwoStepAuth_CancelResetText: String { return self._s[2340]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2341]! } public func Time_MonthOfYear_m8(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2341]!, self._r[2341]!, [_0]) + return formatWithArgumentRanges(self._s[2342]!, self._r[2342]!, [_0]) } - public var KeyCommand_NewMessage: String { return self._s[2342]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[2345]! } + public var KeyCommand_NewMessage: String { return self._s[2343]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[2346]! } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2347]!, self._r[2347]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2348]!, self._r[2348]!, [_1, _2]) } - public var ContactList_Context_StartSecretChat: String { return self._s[2348]! } - public var VoiceOver_Chat_File: String { return self._s[2349]! } - public var ChatList_EditFolder: String { return self._s[2351]! } - public var Appearance_BubbleCorners_Title: String { return self._s[2352]! } - public var PeerInfo_PaneAudio: String { return self._s[2353]! } - public var ChatListFolder_CategoryContacts: String { return self._s[2355]! } - public var VoiceOver_ScheduledMessages: String { return self._s[2356]! } + public var ContactList_Context_StartSecretChat: String { return self._s[2349]! } + public var VoiceOver_Chat_File: String { return self._s[2350]! } + public var ChatList_EditFolder: String { return self._s[2352]! } + public var Appearance_BubbleCorners_Title: String { return self._s[2353]! } + public var PeerInfo_PaneAudio: String { return self._s[2354]! } + public var ChatListFolder_CategoryContacts: String { return self._s[2356]! } + public var VoiceOver_ScheduledMessages: String { return self._s[2357]! } public func Login_InvalidPhoneEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2357]!, self._r[2357]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[2358]!, self._r[2358]!, [_1, _2, _3, _4, _5]) } - public var ChatList_PeerTypeChannel: String { return self._s[2358]! } - public var VoiceOver_Navigation_Search: String { return self._s[2359]! } - public var Settings_Search: String { return self._s[2360]! } - public var WallpaperSearch_ColorYellow: String { return self._s[2361]! } - public var Login_PhoneBannedError: String { return self._s[2362]! } - public var KeyCommand_JumpToNextChat: String { return self._s[2363]! } - public var Passport_Language_fa: String { return self._s[2364]! } - public var Settings_About: String { return self._s[2365]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[2366]! } - public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[2367]! } - public var AutoDownloadSettings_DataUsageHigh: String { return self._s[2368]! } + public var ChatList_PeerTypeChannel: String { return self._s[2359]! } + public var VoiceOver_Navigation_Search: String { return self._s[2360]! } + public var Settings_Search: String { return self._s[2361]! } + public var WallpaperSearch_ColorYellow: String { return self._s[2362]! } + public var Login_PhoneBannedError: String { return self._s[2363]! } + public var KeyCommand_JumpToNextChat: String { return self._s[2364]! } + public var Passport_Language_fa: String { return self._s[2365]! } + public var Settings_About: String { return self._s[2366]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[2367]! } + public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[2368]! } + public var AutoDownloadSettings_DataUsageHigh: String { return self._s[2369]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2369]!, self._r[2369]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2370]!, self._r[2370]!, [_1, _2, _3]) } - public var Common_OK: String { return self._s[2370]! } - public var Contacts_SortBy: String { return self._s[2371]! } - public var ImportStickerPack_LinkTaken: String { return self._s[2372]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[2373]! } + public var Common_OK: String { return self._s[2371]! } + public var Contacts_SortBy: String { return self._s[2372]! } + public var ImportStickerPack_LinkTaken: String { return self._s[2373]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[2374]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2375]!, self._r[2375]!, [_0]) + return formatWithArgumentRanges(self._s[2376]!, self._r[2376]!, [_0]) } - public var CallFeedback_IncludeLogs: String { return self._s[2378]! } + public var CallFeedback_IncludeLogs: String { return self._s[2379]! } public func External_OpenIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2379]!, self._r[2379]!, [_0]) + return formatWithArgumentRanges(self._s[2380]!, self._r[2380]!, [_0]) } - public var ImportStickerPack_ChooseLink: String { return self._s[2381]! } - public var Passcode_AppLockedAlert: String { return self._s[2382]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[2383]! } - public var Channel_NotificationLoading: String { return self._s[2385]! } - public var Passport_Identity_DocumentNumber: String { return self._s[2386]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2387]! } - public var VoiceOver_Chat_OpenHint: String { return self._s[2388]! } - public var Weekday_ShortFriday: String { return self._s[2389]! } - public var Conversation_TitleMute: String { return self._s[2390]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2391]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[2392]! } - public var DialogList_LanguageTooltip: String { return self._s[2394]! } - public var BroadcastGroups_IntroTitle: String { return self._s[2395]! } - public var Channel_AdminLogFilter_EventsPinned: String { return self._s[2396]! } + public var ImportStickerPack_ChooseLink: String { return self._s[2382]! } + public var Passcode_AppLockedAlert: String { return self._s[2383]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[2384]! } + public var Channel_NotificationLoading: String { return self._s[2386]! } + public var Passport_Identity_DocumentNumber: String { return self._s[2387]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2388]! } + public var VoiceOver_Chat_OpenHint: String { return self._s[2389]! } + public var Weekday_ShortFriday: String { return self._s[2390]! } + public var Conversation_TitleMute: String { return self._s[2391]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2392]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[2393]! } + public var DialogList_LanguageTooltip: String { return self._s[2395]! } + public var BroadcastGroups_IntroTitle: String { return self._s[2396]! } + public var Channel_AdminLogFilter_EventsPinned: String { return self._s[2397]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2397]!, self._r[2397]!, [_0]) + return formatWithArgumentRanges(self._s[2398]!, self._r[2398]!, [_0]) } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[2399]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[2400]! } - public var Settings_EditVideo: String { return self._s[2401]! } - public var VoiceOver_Common_Off: String { return self._s[2402]! } - public var Stickers_FrequentlyUsed: String { return self._s[2403]! } - public var GroupPermission_Title: String { return self._s[2404]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[2405]! } - public var Appearance_ThemeCarouselDay: String { return self._s[2406]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[2400]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[2401]! } + public var Settings_EditVideo: String { return self._s[2402]! } + public var VoiceOver_Common_Off: String { return self._s[2403]! } + public var Stickers_FrequentlyUsed: String { return self._s[2404]! } + public var GroupPermission_Title: String { return self._s[2405]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[2406]! } + public var Appearance_ThemeCarouselDay: String { return self._s[2407]! } public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2407]!, self._r[2407]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2408]!, self._r[2408]!, [_1, _2]) } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2408]! } - public var Tour_Title6: String { return self._s[2409]! } - public var EmptyGroupInfo_Title: String { return self._s[2410]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2409]! } + public var Tour_Title6: String { return self._s[2410]! } + public var EmptyGroupInfo_Title: String { return self._s[2411]! } public func Channel_AdminLog_MessageToggleSignaturesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2411]!, self._r[2411]!, [_0]) + return formatWithArgumentRanges(self._s[2412]!, self._r[2412]!, [_0]) } - public var Passport_Language_sk: String { return self._s[2412]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[2413]! } - public var TwoFactorRemember_WrongPassword: String { return self._s[2414]! } - public var Preview_SaveToCameraRoll: String { return self._s[2415]! } + public var Passport_Language_sk: String { return self._s[2413]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[2414]! } + public var TwoFactorRemember_WrongPassword: String { return self._s[2415]! } + public var Preview_SaveToCameraRoll: String { return self._s[2416]! } public func VoiceChat_YouCanNowSpeakIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2416]!, self._r[2416]!, [_0]) + return formatWithArgumentRanges(self._s[2417]!, self._r[2417]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[2417]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[2418]! } - public var Conversation_ContextMenuMore: String { return self._s[2419]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[2420]! } - public var Channel_AdminLog_CanBeAnonymous: String { return self._s[2421]! } - public var CallFeedback_ReasonSilentLocal: String { return self._s[2423]! } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[2418]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[2419]! } + public var Conversation_ContextMenuMore: String { return self._s[2420]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[2421]! } + public var Channel_AdminLog_CanBeAnonymous: String { return self._s[2422]! } + public var CallFeedback_ReasonSilentLocal: String { return self._s[2424]! } public func Channel_AdminLog_UnmutedMutedParticipant(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2424]!, self._r[2424]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2425]!, self._r[2425]!, [_1, _2]) } - public var UserInfo_NotificationsDisable: String { return self._s[2425]! } + public var UserInfo_NotificationsDisable: String { return self._s[2426]! } public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2427]!, self._r[2427]!, [_0]) + return formatWithArgumentRanges(self._s[2428]!, self._r[2428]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[2428]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[2429]! } public func Date_ChatDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2430]!, self._r[2430]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2431]!, self._r[2431]!, [_1, _2]) } - public var WallpaperSearch_ColorPrefix: String { return self._s[2431]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2432]! } public func Message_ForwardedPsa_covid(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2432]!, self._r[2432]!, [_0]) + return formatWithArgumentRanges(self._s[2433]!, self._r[2433]!, [_0]) } - public var VoiceChat_NoiseSuppressionDisabled: String { return self._s[2434]! } - public var Conversation_RestrictedMedia: String { return self._s[2435]! } - public var Group_MessageVideoUpdated: String { return self._s[2436]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2437]! } - public var GroupInfo_DeleteAndExit: String { return self._s[2438]! } - public var TwoFactorSetup_Email_Action: String { return self._s[2439]! } - public var TwoFactorSetup_ResetDone_TitleNoPassword: String { return self._s[2440]! } - public var Media_ShareThisVideo: String { return self._s[2442]! } - public var DialogList_Replies: String { return self._s[2444]! } + public var VoiceChat_NoiseSuppressionDisabled: String { return self._s[2435]! } + public var Conversation_RestrictedMedia: String { return self._s[2436]! } + public var Group_MessageVideoUpdated: String { return self._s[2437]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2438]! } + public var GroupInfo_DeleteAndExit: String { return self._s[2439]! } + public var TwoFactorSetup_Email_Action: String { return self._s[2440]! } + public var TwoFactorSetup_ResetDone_TitleNoPassword: String { return self._s[2441]! } + public var Media_ShareThisVideo: String { return self._s[2443]! } + public var DialogList_Replies: String { return self._s[2445]! } public func Conversation_Moderate_DeleteAllMessages(_ _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 CheckoutInfo_ShippingInfoAddress1: String { return self._s[2446]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[2447]! } - public var ImportStickerPack_ImportingStickers: String { return self._s[2448]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2449]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2447]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[2448]! } + public var ImportStickerPack_ImportingStickers: String { return self._s[2449]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2450]! } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2450]!, self._r[2450]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2451]!, self._r[2451]!, [_1, _2]) } public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2451]!, self._r[2451]!, [_0]) + return formatWithArgumentRanges(self._s[2452]!, self._r[2452]!, [_0]) } - public var Channel_EditAdmin_PermissinAddAdminOff: String { return self._s[2452]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2453]! } - public var ChatList_Search_NoResultsFitlerMedia: String { return self._s[2454]! } - public var Channel_Members_InviteLink: String { return self._s[2455]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[2456]! } - public var WatchRemote_AlertText: String { return self._s[2457]! } + public var Channel_EditAdmin_PermissinAddAdminOff: String { return self._s[2453]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2454]! } + public var ChatList_Search_NoResultsFitlerMedia: String { return self._s[2455]! } + public var Channel_Members_InviteLink: String { return self._s[2456]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[2457]! } + public var WatchRemote_AlertText: String { return self._s[2458]! } public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2458]!, self._r[2458]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2459]!, self._r[2459]!, [_1, _2]) } - public var Conversation_Pin: String { return self._s[2459]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2460]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2461]! } - public var Conversation_CancelForwardTitle: String { return self._s[2462]! } + public var Conversation_Pin: String { return self._s[2460]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2461]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2462]! } + public var Conversation_CancelForwardTitle: String { return self._s[2463]! } public func Notification_PinnedPollMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2463]!, self._r[2463]!, [_0]) + return formatWithArgumentRanges(self._s[2464]!, self._r[2464]!, [_0]) } - public var Appearance_AppIconFilled: String { return self._s[2464]! } - public var StickerPack_ErrorNotFound: String { return self._s[2465]! } + public var Appearance_AppIconFilled: String { return self._s[2465]! } + public var StickerPack_ErrorNotFound: String { return self._s[2466]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2466]!, self._r[2466]!, [_1]) + return formatWithArgumentRanges(self._s[2467]!, self._r[2467]!, [_1]) } - public var Passport_Identity_AddIdentityCard: String { return self._s[2467]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[2468]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2469]!, self._r[2469]!, [_1]) + return formatWithArgumentRanges(self._s[2470]!, self._r[2470]!, [_1]) } - public var Call_Camera: String { return self._s[2470]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2471]! } - public var Group_Location_Info: String { return self._s[2472]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[2473]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[2474]! } + public var Call_Camera: String { return self._s[2471]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2472]! } + public var Group_Location_Info: String { return self._s[2473]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[2474]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[2475]! } public func DialogList_PinLimitError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2475]!, self._r[2475]!, [_0]) + return formatWithArgumentRanges(self._s[2476]!, self._r[2476]!, [_0]) } - public var Weekday_Yesterday: String { return self._s[2476]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[2477]! } - public var InviteLink_Create_UsersLimit: String { return self._s[2478]! } + public var Weekday_Yesterday: String { return self._s[2477]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[2478]! } + public var InviteLink_Create_UsersLimit: String { return self._s[2479]! } public func Notification_VoiceChatScheduledTodayChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2479]!, self._r[2479]!, [_0]) + return formatWithArgumentRanges(self._s[2480]!, self._r[2480]!, [_0]) } - public var ArchivedPacksAlert_Title: String { return self._s[2480]! } - public var PeerInfo_PaneMembers: String { return self._s[2481]! } - public var PhotoEditor_SelectCoverFrame: String { return self._s[2482]! } + public var ArchivedPacksAlert_Title: String { return self._s[2481]! } + public var PeerInfo_PaneMembers: String { return self._s[2482]! } + public var PhotoEditor_SelectCoverFrame: String { return self._s[2483]! } public func Location_ProximityAlertSetTextGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2483]!, self._r[2483]!, [_0]) + return formatWithArgumentRanges(self._s[2484]!, self._r[2484]!, [_0]) } - public var ContactInfo_PhoneLabelMain: String { return self._s[2484]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[2485]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2485]!, self._r[2485]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2486]!, self._r[2486]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[2486]! } - public var Channel_DiscussionGroup: String { return self._s[2487]! } - public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[2488]! } - public var InviteLink_Create_TimeLimit: String { return self._s[2490]! } - public var Channel_EditAdmin_PermissionsHeader: String { return self._s[2491]! } - public var VoiceOver_MessageContextForward: String { return self._s[2492]! } - public var SocksProxySetup_TypeNone: String { return self._s[2493]! } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[2495]! } - public var ProfilePhoto_OpenInEditor: String { return self._s[2497]! } - public var WallpaperSearch_ColorPurple: String { return self._s[2498]! } - public var ChatListFolder_IncludeChatsTitle: String { return self._s[2499]! } - public var Group_Username_InvalidTooShort: String { return self._s[2500]! } - public var Location_ProximityNotification_DistanceM: String { return self._s[2501]! } - public var VoiceChat_EditTitleText: String { return self._s[2502]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[2487]! } + public var Channel_DiscussionGroup: String { return self._s[2488]! } + public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[2489]! } + public var InviteLink_Create_TimeLimit: String { return self._s[2491]! } + public var Channel_EditAdmin_PermissionsHeader: String { return self._s[2492]! } + public var VoiceOver_MessageContextForward: String { return self._s[2493]! } + public var SocksProxySetup_TypeNone: String { return self._s[2494]! } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[2496]! } + public var ProfilePhoto_OpenInEditor: String { return self._s[2498]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2499]! } + public var ChatListFolder_IncludeChatsTitle: String { return self._s[2500]! } + public var Group_Username_InvalidTooShort: String { return self._s[2501]! } + public var Location_ProximityNotification_DistanceM: String { return self._s[2502]! } + public var VoiceChat_EditTitleText: String { return self._s[2503]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2503]!, self._r[2503]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2504]!, self._r[2504]!, [_0, _1, _2]) } - public var Passport_Language_tk: String { return self._s[2504]! } - public var ConvertToSupergroup_Title: String { return self._s[2505]! } - public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[2506]! } - public var Cache_KeepMediaHelp: String { return self._s[2507]! } - public var Channel_Management_Title: String { return self._s[2508]! } + public var Passport_Language_tk: String { return self._s[2505]! } + public var ConvertToSupergroup_Title: String { return self._s[2506]! } + public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[2507]! } + public var Cache_KeepMediaHelp: String { return self._s[2508]! } + public var Channel_Management_Title: String { return self._s[2509]! } public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2509]!, self._r[2509]!, [_1]) + return formatWithArgumentRanges(self._s[2510]!, self._r[2510]!, [_1]) } - public var Conversation_ForwardChats: String { return self._s[2510]! } - public var Passport_Language_bg: String { return self._s[2511]! } - public var SocksProxySetup_TypeSocks: String { return self._s[2512]! } - public var Permissions_PrivacyPolicy: String { return self._s[2513]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2514]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[2515]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2516]! } - public var Conversation_ContextMenuOpenChannel: String { return self._s[2517]! } - public var Report_AdditionalDetailsPlaceholder: String { return self._s[2518]! } - public var Activity_UploadingVideo: String { return self._s[2519]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[2521]! } - public var Widget_LongTapToEdit: String { return self._s[2522]! } - public var VoiceChat_InviteLink_Listener: String { return self._s[2524]! } - public var SocksProxySetup_Credentials: String { return self._s[2525]! } - public var Preview_SaveGif: String { return self._s[2526]! } - public var Cache_Photos: String { return self._s[2527]! } - public var Channel_AdminLogFilter_EventsCalls: String { return self._s[2528]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[2529]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[2530]! } + public var Conversation_ForwardChats: String { return self._s[2511]! } + public var Passport_Language_bg: String { return self._s[2512]! } + public var SocksProxySetup_TypeSocks: String { return self._s[2513]! } + public var Permissions_PrivacyPolicy: String { return self._s[2514]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2515]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[2516]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2517]! } + public var Conversation_ContextMenuOpenChannel: String { return self._s[2518]! } + public var Report_AdditionalDetailsPlaceholder: String { return self._s[2519]! } + public var Activity_UploadingVideo: String { return self._s[2520]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[2522]! } + public var Widget_LongTapToEdit: String { return self._s[2523]! } + public var VoiceChat_InviteLink_Listener: String { return self._s[2525]! } + public var SocksProxySetup_Credentials: String { return self._s[2526]! } + public var Preview_SaveGif: String { return self._s[2527]! } + public var Cache_Photos: String { return self._s[2528]! } + public var Channel_AdminLogFilter_EventsCalls: String { return self._s[2529]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[2530]! } + public var Contacts_FailedToSendInvitesMessage: String { return self._s[2531]! } public func VoiceChat_RemoveAndBanPeerConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2531]!, self._r[2531]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2532]!, self._r[2532]!, [_1, _2]) } - public var Passport_Language_lt: String { return self._s[2532]! } - public var Passport_DeleteDocument: String { return self._s[2534]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2535]! } + public var Passport_Language_lt: String { return self._s[2533]! } + public var Passport_DeleteDocument: String { return self._s[2535]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2536]! } public func Location_ProximityNotification_NotifyLong(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2536]!, self._r[2536]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2537]!, self._r[2537]!, [_1, _2]) } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[2537]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[2538]! } public func PeopleNearby_VisibleUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2538]!, self._r[2538]!, [_0]) + return formatWithArgumentRanges(self._s[2539]!, self._r[2539]!, [_0]) } - public var AccessDenied_VideoCallCamera: String { return self._s[2539]! } + public var AccessDenied_VideoCallCamera: String { return self._s[2540]! } public func Channel_AdminLog_MessageDeleted(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2540]!, self._r[2540]!, [_0]) + return formatWithArgumentRanges(self._s[2541]!, self._r[2541]!, [_0]) } - public var PhotoEditor_SharpenTool: String { return self._s[2541]! } + public var PhotoEditor_SharpenTool: String { return self._s[2542]! } public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2542]!, self._r[2542]!, [_1]) + return formatWithArgumentRanges(self._s[2543]!, self._r[2543]!, [_1]) } - public var DialogList_Unpin: String { return self._s[2543]! } - public var Stickers_NoStickersFound: String { return self._s[2544]! } - public var UserInfo_AddContact: String { return self._s[2546]! } + public var DialogList_Unpin: String { return self._s[2544]! } + public var Stickers_NoStickersFound: String { return self._s[2545]! } + public var UserInfo_AddContact: String { return self._s[2547]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2548]!, self._r[2548]!, [_0]) - } - public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2549]!, self._r[2549]!, [_0]) } - public var CallFeedback_VideoReasonDistorted: String { return self._s[2550]! } - public var Tour_Text2: String { return self._s[2551]! } + public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2550]!, self._r[2550]!, [_0]) + } + public var CallFeedback_VideoReasonDistorted: String { return self._s[2551]! } + public var Tour_Text2: String { return self._s[2552]! } public func Conversation_TitleCommentsFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2553]!, self._r[2553]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2554]!, self._r[2554]!, [_1, _2]) } - public var InviteLink_DeleteAllRevokedLinksAlert_Text: String { return self._s[2555]! } - public var Paint_Delete: String { return self._s[2556]! } + public var InviteLink_DeleteAllRevokedLinksAlert_Text: String { return self._s[2556]! } + public var Paint_Delete: String { return self._s[2557]! } public func Call_VoiceChatInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2557]!, self._r[2557]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2558]!, self._r[2558]!, [_1, _2]) } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2558]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2559]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2560]!, self._r[2560]!, [_0]) + return formatWithArgumentRanges(self._s[2561]!, self._r[2561]!, [_0]) } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[2561]! } - public var Notification_CallOutgoingShort: String { return self._s[2562]! } - public var Checkout_PasswordEntry_Title: String { return self._s[2563]! } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[2564]! } - public var Notification_MessageLifetime1m: String { return self._s[2565]! } - public var BlockedUsers_AddNew: String { return self._s[2567]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[2568]! } - public var Settings_SaveEditedPhotos: String { return self._s[2569]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[2570]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[2562]! } + public var Notification_CallOutgoingShort: String { return self._s[2563]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2564]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[2565]! } + public var Notification_MessageLifetime1m: String { return self._s[2566]! } + public var BlockedUsers_AddNew: String { return self._s[2568]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[2569]! } + public var Settings_SaveEditedPhotos: String { return self._s[2570]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[2571]! } public func ImportStickerPack_Of(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2571]!, self._r[2571]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2572]!, self._r[2572]!, [_1, _2]) } - public var Channel_AboutItem: String { return self._s[2572]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[2573]! } - public var Privacy_Calls_P2PNever: String { return self._s[2575]! } - public var Passport_Language_uk: String { return self._s[2576]! } - public var NetworkUsageSettings_Wifi: String { return self._s[2577]! } - public var Conversation_Moderate_Report: String { return self._s[2578]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2579]! } - public var VoiceOver_Chat_SeenByRecipients: String { return self._s[2580]! } - public var Permissions_SiriText_v0: String { return self._s[2581]! } - public var Theme_Colors_Background: String { return self._s[2582]! } - public var Notification_CallMissed: String { return self._s[2583]! } - public var Stats_ZoomOut: String { return self._s[2584]! } - public var Profile_AddToExisting: String { return self._s[2585]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2588]! } - public var VoiceChat_RemovePeerRemove: String { return self._s[2589]! } - public var Undo_DeletedChannel: String { return self._s[2590]! } + public var Channel_AboutItem: String { return self._s[2573]! } + public var GroupInfo_InviteLink_RevokeLink: String { return self._s[2574]! } + public var Privacy_Calls_P2PNever: String { return self._s[2576]! } + public var Passport_Language_uk: String { return self._s[2577]! } + public var NetworkUsageSettings_Wifi: String { return self._s[2578]! } + public var Conversation_Moderate_Report: String { return self._s[2579]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2580]! } + public var VoiceOver_Chat_SeenByRecipients: String { return self._s[2581]! } + public var Permissions_SiriText_v0: String { return self._s[2582]! } + public var Theme_Colors_Background: String { return self._s[2583]! } + public var Notification_CallMissed: String { return self._s[2584]! } + public var Stats_ZoomOut: String { return self._s[2585]! } + public var Profile_AddToExisting: String { return self._s[2586]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2589]! } + public var VoiceChat_RemovePeerRemove: String { return self._s[2590]! } + public var Undo_DeletedChannel: String { return self._s[2591]! } public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2591]!, self._r[2591]!, [_0]) + return formatWithArgumentRanges(self._s[2592]!, self._r[2592]!, [_0]) } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2592]! } - public var Map_LiveLocationGroupDescription: String { return self._s[2593]! } - public var Passport_InfoFAQ_URL: String { return self._s[2594]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2597]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2593]! } + public var Map_LiveLocationGroupDescription: String { return self._s[2594]! } + public var Passport_InfoFAQ_URL: String { return self._s[2595]! } + public var IntentsSettings_SuggestedChats: String { return self._s[2598]! } public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2598]!, self._r[2598]!, [_1]) + return formatWithArgumentRanges(self._s[2599]!, self._r[2599]!, [_1]) } - public var State_connecting: String { return self._s[2599]! } - public var Passport_Identity_Country: String { return self._s[2600]! } - public var Passport_PasswordDescription: String { return self._s[2601]! } - public var ChatList_PsaLabel_covid: String { return self._s[2602]! } + public var State_connecting: String { return self._s[2600]! } + public var Passport_Identity_Country: String { return self._s[2601]! } + public var Passport_PasswordDescription: String { return self._s[2602]! } + public var ChatList_PsaLabel_covid: String { return self._s[2603]! } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2603]!, self._r[2603]!, [_1]) + return formatWithArgumentRanges(self._s[2604]!, self._r[2604]!, [_1]) } - public var Contacts_AddPeopleNearby: String { return self._s[2604]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[2605]! } - public var ClearCache_Description: String { return self._s[2606]! } - public var Localization_LanguageName: String { return self._s[2607]! } + public var Contacts_AddPeopleNearby: String { return self._s[2605]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[2606]! } + public var ClearCache_Description: String { return self._s[2607]! } + public var Localization_LanguageName: String { return self._s[2608]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2608]!, self._r[2608]!, [_0]) + return formatWithArgumentRanges(self._s[2609]!, self._r[2609]!, [_0]) } - public var Conversation_AddMembers: String { return self._s[2609]! } - public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[2610]! } - public var UserInfo_CreateNewContact: String { return self._s[2611]! } - public var Channel_Stickers_NotFound: String { return self._s[2613]! } - public var Message_FakeAccount: String { return self._s[2614]! } - public var Watch_Message_Poll: String { return self._s[2615]! } - public var Group_Members_Title: String { return self._s[2616]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2617]! } + public var Conversation_AddMembers: String { return self._s[2610]! } + public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[2611]! } + public var UserInfo_CreateNewContact: String { return self._s[2612]! } + public var Channel_Stickers_NotFound: String { return self._s[2614]! } + public var Message_FakeAccount: String { return self._s[2615]! } + public var Watch_Message_Poll: String { return self._s[2616]! } + public var Group_Members_Title: String { return self._s[2617]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2618]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2618]!, self._r[2618]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2619]!, self._r[2619]!, [_0, _1]) } - public var VoiceChat_CancelConfirmationText: String { return self._s[2619]! } - public var BroadcastGroups_Convert: String { return self._s[2620]! } - public var Login_InfoDeletePhoto: String { return self._s[2621]! } - public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[2622]! } - public var InstantPage_FeedbackButton: String { return self._s[2623]! } - public var Appearance_PreviewReplyText: String { return self._s[2624]! } - public var Passport_FieldPhoneHelp: String { return self._s[2625]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2626]! } - public var Media_SendingOptionsTooltip: String { return self._s[2627]! } - public var ScheduledMessages_ScheduledOnline: String { return self._s[2628]! } - public var Notifications_Badge: String { return self._s[2629]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[2630]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2631]! } + public var VoiceChat_CancelConfirmationText: String { return self._s[2620]! } + public var BroadcastGroups_Convert: String { return self._s[2621]! } + public var Login_InfoDeletePhoto: String { return self._s[2622]! } + public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[2623]! } + public var InstantPage_FeedbackButton: String { return self._s[2624]! } + public var Appearance_PreviewReplyText: String { return self._s[2625]! } + public var Passport_FieldPhoneHelp: String { return self._s[2626]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2627]! } + public var Media_SendingOptionsTooltip: String { return self._s[2628]! } + public var ScheduledMessages_ScheduledOnline: String { return self._s[2629]! } + public var Notifications_Badge: String { return self._s[2630]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[2631]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2632]! } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2633]!, self._r[2633]!, [_0]) + return formatWithArgumentRanges(self._s[2634]!, self._r[2634]!, [_0]) } - public var Passport_InfoLearnMore: String { return self._s[2634]! } - public var EnterPasscode_EnterTitle: String { return self._s[2635]! } - public var Appearance_EditTheme: String { return self._s[2636]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2637]! } - public var Stats_FollowersTitle: String { return self._s[2638]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[2639]! } - public var Channel_Subscribers_Title: String { return self._s[2640]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2641]! } - public var ChatImportActivity_ErrorGeneric: String { return self._s[2642]! } - public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[2643]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2644]! } - public var Conversation_AddToReadingList: String { return self._s[2645]! } - public var VoiceChat_EditBioPlaceholder: String { return self._s[2646]! } + public var Passport_InfoLearnMore: String { return self._s[2635]! } + public var EnterPasscode_EnterTitle: String { return self._s[2636]! } + public var Appearance_EditTheme: String { return self._s[2637]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2638]! } + public var Stats_FollowersTitle: String { return self._s[2639]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[2640]! } + public var Channel_Subscribers_Title: String { return self._s[2641]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2642]! } + public var ChatImportActivity_ErrorGeneric: String { return self._s[2643]! } + public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[2644]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2645]! } + public var Conversation_AddToReadingList: String { return self._s[2646]! } + public var VoiceChat_EditBioPlaceholder: String { return self._s[2647]! } public func Notifications_ExceptionsChangeSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2647]!, self._r[2647]!, [_0]) + return formatWithArgumentRanges(self._s[2648]!, self._r[2648]!, [_0]) } - public var Group_AdminLog_EmptyText: String { return self._s[2648]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[2649]! } - public var Watch_Location_Current: String { return self._s[2650]! } - public var Appearance_AppIconNew1: String { return self._s[2651]! } - public var PrivacyPolicy_Title: String { return self._s[2652]! } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2659]! } - public var Channel_TypeSetup_Title: String { return self._s[2663]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[2664]! } - public var Passport_Language_ja: String { return self._s[2665]! } - public var ReportPeer_ReasonSpam: String { return self._s[2666]! } - public var Widget_GalleryDescription: String { return self._s[2667]! } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2668]! } - public var VoiceChat_ChangePhoto: String { return self._s[2670]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[2671]! } - public var Channel_AdminLog_ChangeInfo: String { return self._s[2672]! } - public var ChatListFolder_NameNonContacts: String { return self._s[2673]! } + public var Group_AdminLog_EmptyText: String { return self._s[2649]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[2650]! } + public var Watch_Location_Current: String { return self._s[2651]! } + public var Appearance_AppIconNew1: String { return self._s[2652]! } + public var PrivacyPolicy_Title: String { return self._s[2653]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2660]! } + public var Channel_TypeSetup_Title: String { return self._s[2664]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[2665]! } + public var Passport_Language_ja: String { return self._s[2666]! } + public var ReportPeer_ReasonSpam: String { return self._s[2667]! } + public var Widget_GalleryDescription: String { return self._s[2668]! } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[2669]! } + public var VoiceChat_ChangePhoto: String { return self._s[2671]! } + public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[2672]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[2673]! } + public var ChatListFolder_NameNonContacts: String { return self._s[2674]! } public func InviteLink_ExpiresIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2674]!, self._r[2674]!, [_0]) + return formatWithArgumentRanges(self._s[2675]!, self._r[2675]!, [_0]) } - public var Call_Audio: String { return self._s[2675]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2676]! } - public var ChatList_Search_NoResultsFitlerFiles: String { return self._s[2677]! } - public var Settings_PrivacySettings: String { return self._s[2678]! } - public var InviteLink_UsageLimitReached: String { return self._s[2679]! } - public var Stats_Followers: String { return self._s[2680]! } - public var Notifications_AddExceptionTitle: String { return self._s[2681]! } - public var TwoFactorSetup_Password_Title: String { return self._s[2682]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2683]! } - public var OldChannels_NoticeText: String { return self._s[2684]! } - public var Conversation_SavedMessages: String { return self._s[2685]! } - public var Intents_ErrorLockedText: String { return self._s[2686]! } + public var Call_Audio: String { return self._s[2676]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2677]! } + public var ChatList_Search_NoResultsFitlerFiles: String { return self._s[2678]! } + public var Settings_PrivacySettings: String { return self._s[2679]! } + public var InviteLink_UsageLimitReached: String { return self._s[2680]! } + public var Stats_Followers: String { return self._s[2681]! } + public var Notifications_AddExceptionTitle: String { return self._s[2682]! } + public var TwoFactorSetup_Password_Title: String { return self._s[2683]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2684]! } + public var OldChannels_NoticeText: String { return self._s[2685]! } + public var Conversation_SavedMessages: String { return self._s[2686]! } + public var Intents_ErrorLockedText: String { return self._s[2687]! } public func Conversation_PeerNearbyTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2688]!, self._r[2688]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2689]!, self._r[2689]!, [_1, _2]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2689]! } - public var Appearance_ThemeNightBlue: String { return self._s[2690]! } - public var Notification_ChannelInviterSelf: String { return self._s[2691]! } - public var Conversation_ForwardTooltip_SavedMessages_Many: String { return self._s[2692]! } - public var InviteLink_Create_TimeLimitExpiryDateNever: String { return self._s[2694]! } - public var Watch_UserInfo_Service: String { return self._s[2695]! } - public var ChatList_Context_Back: String { return self._s[2696]! } - public var Passport_Email_Title: String { return self._s[2697]! } - public var ImportStickerPack_AddToExistingStickerSet: String { return self._s[2698]! } - public var Stats_GroupTopAdmin_Promote: String { return self._s[2699]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2690]! } + public var Appearance_ThemeNightBlue: String { return self._s[2691]! } + public var Notification_ChannelInviterSelf: String { return self._s[2692]! } + public var Conversation_ForwardTooltip_SavedMessages_Many: String { return self._s[2693]! } + public var InviteLink_Create_TimeLimitExpiryDateNever: String { return self._s[2695]! } + public var Watch_UserInfo_Service: String { return self._s[2696]! } + public var ChatList_Context_Back: String { return self._s[2697]! } + public var Passport_Email_Title: String { return self._s[2698]! } + public var ImportStickerPack_AddToExistingStickerSet: String { return self._s[2699]! } + public var Stats_GroupTopAdmin_Promote: String { return self._s[2700]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2700]!, self._r[2700]!, [_1]) + return formatWithArgumentRanges(self._s[2701]!, self._r[2701]!, [_1]) } - public var Conversation_UnsupportedMedia: String { return self._s[2701]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2702]! } - public var Privacy_TopPeersHelp: String { return self._s[2704]! } - public var Privacy_Forwards_AlwaysLink: String { return self._s[2705]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2706]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[2707]! } + public var Conversation_UnsupportedMedia: String { return self._s[2702]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2703]! } + public var Privacy_TopPeersHelp: String { return self._s[2705]! } + public var Privacy_Forwards_AlwaysLink: String { return self._s[2706]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2707]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[2708]! } public func Location_ProximityNotification_AlreadyClose(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2708]!, self._r[2708]!, [_0]) + return formatWithArgumentRanges(self._s[2709]!, self._r[2709]!, [_0]) } - public var Notification_PassportValueProofOfAddress: String { return self._s[2709]! } - public var Map_Map: String { return self._s[2710]! } - public var WallpaperSearch_ColorBlue: String { return self._s[2711]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[2712]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2713]! } - public var ChatList_Search_FilterMusic: String { return self._s[2714]! } - public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[2715]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2716]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[2718]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[2710]! } + public var Map_Map: String { return self._s[2711]! } + public var WallpaperSearch_ColorBlue: String { return self._s[2712]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[2713]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2714]! } + public var ChatList_Search_FilterMusic: String { return self._s[2715]! } + public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[2716]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2717]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[2719]! } public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2719]!, self._r[2719]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2720]!, self._r[2720]!, [_1, _2]) } public func Notification_ChangedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2720]!, self._r[2720]!, [_0]) + return formatWithArgumentRanges(self._s[2721]!, self._r[2721]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2721]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2722]! } - public var VoiceOver_ChatList_MessageEmpty: String { return self._s[2724]! } - public var GroupInfo_Location: String { return self._s[2725]! } - public var Passport_Language_ka: String { return self._s[2726]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2722]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2723]! } + public var VoiceOver_ChatList_MessageEmpty: String { return self._s[2725]! } + public var GroupInfo_Location: String { return self._s[2726]! } + public var Passport_Language_ka: String { return self._s[2727]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2727]!, self._r[2727]!, [_0]) + return formatWithArgumentRanges(self._s[2728]!, self._r[2728]!, [_0]) } - public var Conversation_ContextMenuOpenChannelProfile: String { return self._s[2728]! } - public var ChatImport_SelectionConfirmationAlertTitle: String { return self._s[2730]! } - public var ScheduledMessages_ClearAllConfirmation: String { return self._s[2732]! } - public var DialogList_SearchSectionRecent: String { return self._s[2733]! } - public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[2734]! } - public var Conversation_Timer_Send: String { return self._s[2735]! } + public var Conversation_ContextMenuOpenChannelProfile: String { return self._s[2729]! } + public var ChatImport_SelectionConfirmationAlertTitle: String { return self._s[2731]! } + public var ScheduledMessages_ClearAllConfirmation: String { return self._s[2733]! } + public var DialogList_SearchSectionRecent: String { return self._s[2734]! } + public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[2735]! } + public var Conversation_Timer_Send: String { return self._s[2736]! } public func VoiceOver_ScrollStatus(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2737]!, self._r[2737]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2738]!, self._r[2738]!, [_1, _2]) } - public var ChatState_Updating: String { return self._s[2738]! } - public var ChannelMembers_WhoCanAddMembers: String { return self._s[2739]! } - public var ChannelInfo_DeleteGroup: String { return self._s[2740]! } - public var TwoStepAuth_RecoveryFailed: String { return self._s[2741]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2742]! } - public var InviteLink_Create_TimeLimitExpiryTime: String { return self._s[2743]! } - public var ChannelInfo_InviteLink_RevokeAlert_Text: String { return self._s[2744]! } - public var ChatList_Search_NoResults: String { return self._s[2745]! } - public var ChatListFolderSettings_AddRecommended: String { return self._s[2747]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2748]! } - public var PeerInfo_GroupAboutItem: String { return self._s[2749]! } - public var VoiceOver_SelfDestructTimerOff: String { return self._s[2751]! } + public var ChatState_Updating: String { return self._s[2739]! } + public var ChannelMembers_WhoCanAddMembers: String { return self._s[2740]! } + public var ChannelInfo_DeleteGroup: String { return self._s[2741]! } + public var TwoStepAuth_RecoveryFailed: String { return self._s[2742]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2743]! } + public var InviteLink_Create_TimeLimitExpiryTime: String { return self._s[2744]! } + public var ChannelInfo_InviteLink_RevokeAlert_Text: String { return self._s[2745]! } + public var ChatList_Search_NoResults: String { return self._s[2746]! } + public var ChatListFolderSettings_AddRecommended: String { return self._s[2748]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2749]! } + public var PeerInfo_GroupAboutItem: String { return self._s[2750]! } + public var VoiceOver_SelfDestructTimerOff: String { return self._s[2752]! } public func Channel_AdminLog_DeletedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2752]!, self._r[2752]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2753]!, self._r[2753]!, [_1, _2]) } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2753]!, self._r[2753]!, [_0]) + return formatWithArgumentRanges(self._s[2754]!, self._r[2754]!, [_0]) } - public var PrivacySettings_AuthSessions: String { return self._s[2754]! } - public var Passport_Address_Postcode: String { return self._s[2755]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2756]! } + public var PrivacySettings_AuthSessions: String { return self._s[2755]! } + public var Passport_Address_Postcode: String { return self._s[2756]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2757]! } public func VoiceChat_ForwardTooltip_ManyChats(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2757]!, self._r[2757]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2758]!, self._r[2758]!, [_0, _1]) } - public var Passport_Address_Street2Placeholder: String { return self._s[2758]! } - public var Group_Location_Title: String { return self._s[2759]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[2760]! } - public var PeopleNearby_UsersEmpty: String { return self._s[2761]! } - public var Conversation_ContextMenuSpeak: String { return self._s[2763]! } - public var SettingsSearch_Synonyms_Data_Title: String { return self._s[2764]! } + public var Passport_Address_Street2Placeholder: String { return self._s[2759]! } + public var Group_Location_Title: String { return self._s[2760]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[2761]! } + public var PeopleNearby_UsersEmpty: String { return self._s[2762]! } + public var Conversation_ContextMenuSpeak: String { return self._s[2764]! } + public var SettingsSearch_Synonyms_Data_Title: String { return self._s[2765]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2766]!, self._r[2766]!, [_0]) + return formatWithArgumentRanges(self._s[2767]!, self._r[2767]!, [_0]) } - public var Proxy_TooltipUnavailable: String { return self._s[2767]! } - public var Map_Search: String { return self._s[2768]! } - public var VoiceChat_CancelConfirmationTitle: String { return self._s[2769]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[2770]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2771]! } + public var Proxy_TooltipUnavailable: String { return self._s[2768]! } + public var Map_Search: String { return self._s[2769]! } + public var VoiceChat_CancelConfirmationTitle: String { return self._s[2770]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[2771]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2772]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2772]!, self._r[2772]!, [_0]) + return formatWithArgumentRanges(self._s[2773]!, self._r[2773]!, [_0]) } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[2773]! } - public var ProfilePhoto_MainPhoto: String { return self._s[2774]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2775]! } - public var SharedMedia_EmptyMusicText: String { return self._s[2776]! } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[2777]! } - public var NetworkUsageSettings_BytesReceived: String { return self._s[2778]! } - public var Channel_AdminLog_EmptyText: String { return self._s[2779]! } - public var ImportStickerPack_InProgress: String { return self._s[2780]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2781]! } - public var Undo_ChatDeletedForBothSides: String { return self._s[2782]! } - public var Notifications_GroupNotifications: String { return self._s[2783]! } - public var AccessDenied_SaveMedia: String { return self._s[2784]! } - public var InviteLink_Create_Revoke: String { return self._s[2785]! } - public var GroupInfo_LabelOwner: String { return self._s[2786]! } - public var TwoFactorSetup_PasswordRecovery_Action: String { return self._s[2787]! } - public var Passport_Language_id: String { return self._s[2789]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2790]! } - public var Conversation_UnpinMessageAlert: String { return self._s[2791]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[2774]! } + public var ProfilePhoto_MainPhoto: String { return self._s[2775]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2776]! } + public var SharedMedia_EmptyMusicText: String { return self._s[2777]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[2778]! } + public var NetworkUsageSettings_BytesReceived: String { return self._s[2779]! } + public var Channel_AdminLog_EmptyText: String { return self._s[2780]! } + public var ImportStickerPack_InProgress: String { return self._s[2781]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2782]! } + public var Undo_ChatDeletedForBothSides: String { return self._s[2783]! } + public var Notifications_GroupNotifications: String { return self._s[2784]! } + public var AccessDenied_SaveMedia: String { return self._s[2785]! } + public var InviteLink_Create_Revoke: String { return self._s[2786]! } + public var GroupInfo_LabelOwner: String { return self._s[2787]! } + public var TwoFactorSetup_PasswordRecovery_Action: String { return self._s[2788]! } + public var Passport_Language_id: String { return self._s[2790]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2791]! } + public var Conversation_UnpinMessageAlert: String { return self._s[2792]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2792]!, self._r[2792]!, [_0]) - } - public func Call_RemoteVideoPaused(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2793]!, self._r[2793]!, [_0]) } - public var TwoFactorSetup_Done_Text: String { return self._s[2794]! } + public func Call_RemoteVideoPaused(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2794]!, self._r[2794]!, [_0]) + } + public var TwoFactorSetup_Done_Text: String { return self._s[2795]! } public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2795]!, self._r[2795]!, [_0]) + return formatWithArgumentRanges(self._s[2796]!, self._r[2796]!, [_0]) } - public var NetworkUsageSettings_BytesSent: String { return self._s[2796]! } - public var Conversation_AudioRateTooltipNormal: String { return self._s[2797]! } - public var VoiceChat_EditDescriptionSuccess: String { return self._s[2798]! } - public var OwnershipTransfer_Transfer: String { return self._s[2799]! } + public var NetworkUsageSettings_BytesSent: String { return self._s[2797]! } + public var Conversation_AudioRateTooltipNormal: String { return self._s[2798]! } + public var VoiceChat_EditDescriptionSuccess: String { return self._s[2799]! } + public var OwnershipTransfer_Transfer: String { return self._s[2800]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2800]!, self._r[2800]!, [_0]) + return formatWithArgumentRanges(self._s[2801]!, self._r[2801]!, [_0]) } - public var Passport_Language_pt: String { return self._s[2801]! } - public var PrivacySettings_WebSessions: String { return self._s[2802]! } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[2804]! } - public var TwoFactorSetup_Hint_Title: String { return self._s[2805]! } + public var Passport_Language_pt: String { return self._s[2802]! } + public var PrivacySettings_WebSessions: String { return self._s[2803]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[2805]! } + public var TwoFactorSetup_Hint_Title: String { return self._s[2806]! } public func Notification_Joined(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2806]!, self._r[2806]!, [_0]) + return formatWithArgumentRanges(self._s[2807]!, self._r[2807]!, [_0]) } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2807]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2808]! } - public var AutoNightTheme_Scheduled: String { return self._s[2809]! } - public var CreatePoll_ExplanationHeader: String { return self._s[2810]! } - public var Calls_TabTitle: String { return self._s[2811]! } - public var VoiceChat_RecordingInProgress: String { return self._s[2812]! } - public var ChatList_UndoArchiveHiddenText: String { return self._s[2813]! } - public var Notification_VideoCallCanceled: String { return self._s[2814]! } - public var Login_CodeSentInternal: String { return self._s[2815]! } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[2816]! } - public var Call_RecordingDisabledMessage: String { return self._s[2818]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2808]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2809]! } + public var AutoNightTheme_Scheduled: String { return self._s[2810]! } + public var CreatePoll_ExplanationHeader: String { return self._s[2811]! } + public var Calls_TabTitle: String { return self._s[2812]! } + public var VoiceChat_RecordingInProgress: String { return self._s[2813]! } + public var ChatList_UndoArchiveHiddenText: String { return self._s[2814]! } + public var Notification_VideoCallCanceled: String { return self._s[2815]! } + public var Login_CodeSentInternal: String { return self._s[2816]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[2817]! } + public var Call_RecordingDisabledMessage: String { return self._s[2819]! } public func VoiceChat_RemovedPeerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2819]!, self._r[2819]!, [_0]) + return formatWithArgumentRanges(self._s[2820]!, self._r[2820]!, [_0]) } - public var Conversation_UsersTooMuchError: String { return self._s[2821]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[2822]! } - public var VoiceChat_StopScreenSharingShort: String { return self._s[2823]! } - public var Channel_Info_Stickers: String { return self._s[2824]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[2825]! } + public var Conversation_UsersTooMuchError: String { return self._s[2822]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[2823]! } + public var VoiceChat_StopScreenSharingShort: String { return self._s[2824]! } + public var Channel_Info_Stickers: String { return self._s[2825]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[2826]! } public func Conversation_PeerNearbyDistance(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2826]!, self._r[2826]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2827]!, self._r[2827]!, [_1, _2]) } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[2827]! } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[2828]! } public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2828]!, self._r[2828]!, [_0]) + return formatWithArgumentRanges(self._s[2829]!, self._r[2829]!, [_0]) } - public var Passport_DiscardMessageTitle: String { return self._s[2829]! } - public var Call_VoiceOver_VideoCallIncoming: String { return self._s[2830]! } - public var Localization_LanguageOther: String { return self._s[2831]! } - public var Conversation_EncryptionCanceled: String { return self._s[2832]! } - public var ChatSettings_AutomaticPhotoDownload: String { return self._s[2833]! } - public var ReportPeer_ReasonFake: String { return self._s[2835]! } + public var Passport_DiscardMessageTitle: String { return self._s[2830]! } + public var Call_VoiceOver_VideoCallIncoming: String { return self._s[2831]! } + public var Localization_LanguageOther: String { return self._s[2832]! } + public var Conversation_EncryptionCanceled: String { return self._s[2833]! } + public var ChatSettings_AutomaticPhotoDownload: String { return self._s[2834]! } + public var ReportPeer_ReasonFake: String { return self._s[2836]! } public func Notification_SecretChatMessageScreenshot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2836]!, self._r[2836]!, [_0]) + return formatWithArgumentRanges(self._s[2837]!, self._r[2837]!, [_0]) } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2838]! } - public var SocksProxySetup_SavedProxies: String { return self._s[2839]! } - public var InviteLink_Create_UsersLimitNumberOfUsers: String { return self._s[2840]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2839]! } + public var SocksProxySetup_SavedProxies: String { return self._s[2840]! } + public var InviteLink_Create_UsersLimitNumberOfUsers: String { return self._s[2841]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2841]!, self._r[2841]!, [_1]) + return formatWithArgumentRanges(self._s[2842]!, self._r[2842]!, [_1]) } - public var Conversation_ScamWarning: String { return self._s[2843]! } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[2844]! } - public var LocalGroup_Title: String { return self._s[2845]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[2847]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[2848]! } - public var VoiceChat_SelectAccount: String { return self._s[2849]! } - public var Login_PhoneFloodError: String { return self._s[2850]! } - public var Conversation_PinMessageAlert_PinAndNotifyMembers: String { return self._s[2851]! } - public var Username_InvalidTaken: String { return self._s[2853]! } - public var SocksProxySetup_AddProxy: String { return self._s[2855]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[2856]! } - public var MediaPicker_UngroupDescription: String { return self._s[2857]! } - public var Login_CodeExpired: String { return self._s[2858]! } - public var Localization_ChooseLanguage: String { return self._s[2859]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[2860]! } + public var Conversation_ScamWarning: String { return self._s[2844]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[2845]! } + public var LocalGroup_Title: String { return self._s[2846]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[2848]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[2849]! } + public var VoiceChat_SelectAccount: String { return self._s[2850]! } + public var Login_PhoneFloodError: String { return self._s[2851]! } + public var Conversation_PinMessageAlert_PinAndNotifyMembers: String { return self._s[2852]! } + public var Username_InvalidTaken: String { return self._s[2854]! } + public var SocksProxySetup_AddProxy: String { return self._s[2856]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[2857]! } + public var MediaPicker_UngroupDescription: String { return self._s[2858]! } + public var Login_CodeExpired: String { return self._s[2859]! } + public var Localization_ChooseLanguage: String { return self._s[2860]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[2861]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2861]!, self._r[2861]!, [_0]) - } - public func Channel_DiscussionGroup_HeaderSet(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2862]!, self._r[2862]!, [_0]) } - public var ReportPeer_ReasonOther_Title: String { return self._s[2864]! } - public var Conversation_ScheduleMessage_Title: String { return self._s[2865]! } + public func Channel_DiscussionGroup_HeaderSet(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2863]!, self._r[2863]!, [_0]) + } + public var ReportPeer_ReasonOther_Title: String { return self._s[2865]! } + public var Conversation_ScheduleMessage_Title: String { return self._s[2866]! } public func VoiceChat_UserInvited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2866]!, self._r[2866]!, [_0]) + return formatWithArgumentRanges(self._s[2867]!, self._r[2867]!, [_0]) } - public var PeerInfo_ButtonDiscuss: String { return self._s[2867]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[2868]! } - public var Call_StatusNoAnswer: String { return self._s[2869]! } - public var ScheduledMessages_DeleteMany: String { return self._s[2871]! } - public var Channel_DiscussionGroupInfo: String { return self._s[2872]! } - public var Conversation_UnarchiveDone: String { return self._s[2873]! } - public var LogoutOptions_AddAccountText: String { return self._s[2874]! } - public var Message_PinnedContactMessage: String { return self._s[2875]! } + public var PeerInfo_ButtonDiscuss: String { return self._s[2868]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[2869]! } + public var Call_StatusNoAnswer: String { return self._s[2870]! } + public var ScheduledMessages_DeleteMany: String { return self._s[2872]! } + public var Channel_DiscussionGroupInfo: String { return self._s[2873]! } + public var Conversation_UnarchiveDone: String { return self._s[2874]! } + public var LogoutOptions_AddAccountText: String { return self._s[2875]! } + public var Message_PinnedContactMessage: String { return self._s[2876]! } public func ChatList_DeleteAndLeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2876]!, self._r[2876]!, [_0]) + return formatWithArgumentRanges(self._s[2877]!, self._r[2877]!, [_0]) } - public var VoiceChat_EditBioTitle: String { return self._s[2878]! } + public var VoiceChat_EditBioTitle: String { return self._s[2879]! } public func FileSize_GB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2879]!, self._r[2879]!, [_0]) + return formatWithArgumentRanges(self._s[2880]!, self._r[2880]!, [_0]) } - public var Stats_GroupLanguagesTitle: String { return self._s[2880]! } - public var Passport_FieldAddressHelp: String { return self._s[2881]! } + public var Stats_GroupLanguagesTitle: String { return self._s[2881]! } + public var Passport_FieldAddressHelp: String { return self._s[2882]! } public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2882]!, self._r[2882]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2883]!, self._r[2883]!, [_1, _2]) } - public var ChatSettings_OpenLinksIn: String { return self._s[2884]! } - public var TwoFactorSetup_Hint_SkipAction: String { return self._s[2885]! } - public var Message_Photo: String { return self._s[2886]! } - public var Media_LimitedAccessManage: String { return self._s[2888]! } - public var MediaPicker_AddCaption: String { return self._s[2889]! } - public var LogoutOptions_Title: String { return self._s[2890]! } + public var ChatSettings_OpenLinksIn: String { return self._s[2885]! } + public var TwoFactorSetup_Hint_SkipAction: String { return self._s[2886]! } + public var Message_Photo: String { return self._s[2887]! } + public var Media_LimitedAccessManage: String { return self._s[2889]! } + public var MediaPicker_AddCaption: String { return self._s[2890]! } + public var LogoutOptions_Title: String { return self._s[2891]! } public func PUSH_PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2891]!, self._r[2891]!, [_1]) + return formatWithArgumentRanges(self._s[2892]!, self._r[2892]!, [_1]) } - public var Conversation_StatusKickedFromGroup: String { return self._s[2892]! } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[2893]! } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2894]! } - public var Channel_AdminLogFilter_Title: String { return self._s[2895]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[2896]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[2897]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2898]! } - public var ChannelIntro_Title: String { return self._s[2899]! } - public var Stats_Message_Views: String { return self._s[2900]! } - public var Stickers_Install: String { return self._s[2901]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[2893]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[2894]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2895]! } + public var Channel_AdminLogFilter_Title: String { return self._s[2896]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[2897]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[2898]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2899]! } + public var ChannelIntro_Title: String { return self._s[2900]! } + public var Stats_Message_Views: String { return self._s[2901]! } + public var Stickers_Install: String { return self._s[2902]! } public func VoiceOver_Chat_FileFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2902]!, self._r[2902]!, [_0]) + return formatWithArgumentRanges(self._s[2903]!, self._r[2903]!, [_0]) } - public var EditTheme_Create_Preview_IncomingReplyText: String { return self._s[2903]! } - public var Conversation_SwipeToReplyHintTitle: String { return self._s[2905]! } - public var Settings_Username: String { return self._s[2908]! } - public var FastTwoStepSetup_Title: String { return self._s[2909]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2910]! } - public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[2911]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2913]! } - public var CallFeedback_ReasonEcho: String { return self._s[2914]! } + public var EditTheme_Create_Preview_IncomingReplyText: String { return self._s[2904]! } + public var Conversation_SwipeToReplyHintTitle: String { return self._s[2906]! } + public var Settings_Username: String { return self._s[2909]! } + public var FastTwoStepSetup_Title: String { return self._s[2910]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2911]! } + public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[2912]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2914]! } + public var CallFeedback_ReasonEcho: String { return self._s[2915]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2915]!, self._r[2915]!, [_0]) + return formatWithArgumentRanges(self._s[2916]!, self._r[2916]!, [_0]) } - public var Conversation_OpenBotLinkTitle: String { return self._s[2916]! } - public var SocksProxySetup_Title: String { return self._s[2917]! } - public var CallFeedback_Success: String { return self._s[2918]! } - public var WallpaperPreview_SwipeTopText: String { return self._s[2920]! } - public var InstantPage_AutoNightTheme: String { return self._s[2922]! } - public var Watch_Conversation_Reply: String { return self._s[2923]! } - public var VoiceChat_Share: String { return self._s[2925]! } - public var VoiceChat_AddPhoto: String { return self._s[2926]! } - public var Chat_PanelUnpinAllMessages: String { return self._s[2927]! } - public var WallpaperPreview_Pattern: String { return self._s[2928]! } - public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[2929]! } + public var Conversation_OpenBotLinkTitle: String { return self._s[2917]! } + public var SocksProxySetup_Title: String { return self._s[2918]! } + public var CallFeedback_Success: String { return self._s[2919]! } + public var WallpaperPreview_SwipeTopText: String { return self._s[2921]! } + public var InstantPage_AutoNightTheme: String { return self._s[2923]! } + public var Watch_Conversation_Reply: String { return self._s[2924]! } + public var VoiceChat_Share: String { return self._s[2926]! } + public var VoiceChat_AddPhoto: String { return self._s[2927]! } + public var Chat_PanelUnpinAllMessages: String { return self._s[2928]! } + public var WallpaperPreview_Pattern: String { return self._s[2929]! } + public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[2930]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2930]!, self._r[2930]!, [_0]) + return formatWithArgumentRanges(self._s[2931]!, self._r[2931]!, [_0]) } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[2931]! } - public var VoiceOver_Chat_GroupInfo: String { return self._s[2932]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[2934]! } - public var Update_Title: String { return self._s[2935]! } - public var Conversation_ShareMyPhoneNumber: String { return self._s[2936]! } - public var WallpaperPreview_CropTopText: String { return self._s[2939]! } - public var Channel_EditMessageErrorGeneric: String { return self._s[2940]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2941]! } - public var ChatListFolder_DiscardCancel: String { return self._s[2942]! } - public var Message_PinnedPhotoMessage: String { return self._s[2943]! } - public var Appearance_ThemeDayClassic: String { return self._s[2944]! } - public var VoiceChat_ChangeName: String { return self._s[2945]! } - public var SocksProxySetup_ProxySocks5: String { return self._s[2947]! } - public var VoiceChat_DisplayAsInfo: String { return self._s[2949]! } - public var AccessDenied_Wallpapers: String { return self._s[2954]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[2932]! } + public var VoiceOver_Chat_GroupInfo: String { return self._s[2933]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[2935]! } + public var Update_Title: String { return self._s[2936]! } + public var Conversation_ShareMyPhoneNumber: String { return self._s[2937]! } + public var WallpaperPreview_CropTopText: String { return self._s[2940]! } + public var Channel_EditMessageErrorGeneric: String { return self._s[2941]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2942]! } + public var ChatListFolder_DiscardCancel: String { return self._s[2943]! } + public var Message_PinnedPhotoMessage: String { return self._s[2944]! } + public var Appearance_ThemeDayClassic: String { return self._s[2945]! } + public var VoiceChat_ChangeName: String { return self._s[2946]! } + public var SocksProxySetup_ProxySocks5: String { return self._s[2948]! } + public var VoiceChat_DisplayAsInfo: String { return self._s[2950]! } + public var AccessDenied_Wallpapers: String { return self._s[2955]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2955]!, self._r[2955]!, [_0]) + return formatWithArgumentRanges(self._s[2956]!, self._r[2956]!, [_0]) } - public var Weekday_Sunday: String { return self._s[2956]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[2958]! } - public var PeopleNearby_MakeVisibleDescription: String { return self._s[2959]! } - public var AccessDenied_LocationDisabled: String { return self._s[2960]! } - public var Tour_Text3: String { return self._s[2961]! } - public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2962]! } + public var Weekday_Sunday: String { return self._s[2957]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[2959]! } + public var PeopleNearby_MakeVisibleDescription: String { return self._s[2960]! } + public var AccessDenied_LocationDisabled: String { return self._s[2961]! } + public var Tour_Text3: String { return self._s[2962]! } + public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2963]! } public func Time_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2963]!, self._r[2963]!, [_0]) + return formatWithArgumentRanges(self._s[2964]!, self._r[2964]!, [_0]) } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[2964]! } - public var Conversation_ClearCache: String { return self._s[2965]! } - public var StickerPacksSettings_ArchivedMasks_Info: String { return self._s[2966]! } - public var ChatList_Tabs_AllChats: String { return self._s[2967]! } - public var DialogList_RecentTitlePeople: String { return self._s[2968]! } - public var Stickers_AddToFavorites: String { return self._s[2969]! } - public var ChatList_Context_RemoveFromFolder: String { return self._s[2970]! } - public var VoiceChat_CancelSpeakRequest: String { return self._s[2971]! } - public var Settings_RemoveVideo: String { return self._s[2972]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2973]! } - public var ConversationProfile_LeaveDeleteAndExit: String { return self._s[2974]! } - public var VoiceOver_Chat_YourFile: String { return self._s[2975]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[2977]! } - public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[2978]! } - public var VoiceChat_TapToAddBio: String { return self._s[2979]! } - public var Channel_AdminLog_AddMembers: String { return self._s[2980]! } - public var Map_SendThisLocation: String { return self._s[2982]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[2984]! } - public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2985]! } - public var CloudStorage_Title: String { return self._s[2986]! } - public var TwoFactorSetup_Password_Action: String { return self._s[2987]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[2988]! } - public var Passport_Address_EditTemporaryRegistration: String { return self._s[2990]! } - public var Undo_LeftGroup: String { return self._s[2991]! } - public var Conversation_StopLiveLocation: String { return self._s[2992]! } - public var NotificationSettings_ShowNotificationsFromAccountsSection: String { return self._s[2993]! } - public var Message_PinnedInvoice: String { return self._s[2994]! } - public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[2995]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[2965]! } + public var Conversation_ClearCache: String { return self._s[2966]! } + public var StickerPacksSettings_ArchivedMasks_Info: String { return self._s[2967]! } + public var ChatList_Tabs_AllChats: String { return self._s[2968]! } + public var DialogList_RecentTitlePeople: String { return self._s[2969]! } + public var Stickers_AddToFavorites: String { return self._s[2970]! } + public var ChatList_Context_RemoveFromFolder: String { return self._s[2971]! } + public var VoiceChat_CancelSpeakRequest: String { return self._s[2972]! } + public var Settings_RemoveVideo: String { return self._s[2973]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2974]! } + public var ConversationProfile_LeaveDeleteAndExit: String { return self._s[2975]! } + public var VoiceOver_Chat_YourFile: String { return self._s[2976]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[2978]! } + public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[2979]! } + public var VoiceChat_TapToAddBio: String { return self._s[2980]! } + public var Channel_AdminLog_AddMembers: String { return self._s[2981]! } + public var Map_SendThisLocation: String { return self._s[2983]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[2985]! } + public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2986]! } + public var CloudStorage_Title: String { return self._s[2987]! } + public var TwoFactorSetup_Password_Action: String { return self._s[2988]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[2989]! } + public var Passport_Address_EditTemporaryRegistration: String { return self._s[2991]! } + public var Undo_LeftGroup: String { return self._s[2992]! } + public var Conversation_StopLiveLocation: String { return self._s[2993]! } + public var NotificationSettings_ShowNotificationsFromAccountsSection: String { return self._s[2994]! } + public var Message_PinnedInvoice: String { return self._s[2995]! } + public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[2996]! } public func PUSH_CHAT_MESSAGE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2997]!, self._r[2997]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2998]!, self._r[2998]!, [_1, _2]) } public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2998]!, self._r[2998]!, [_0]) + return formatWithArgumentRanges(self._s[2999]!, self._r[2999]!, [_0]) } - public var TwoStepAuth_RecoveryUnavailableResetTitle: String { return self._s[2999]! } - public var Weekday_Tuesday: String { return self._s[3000]! } - public var ChangePhoneNumberCode_Code: String { return self._s[3001]! } - public var VoiceOver_Chat_YourMessage: String { return self._s[3002]! } - public var Calls_CallTabDescription: String { return self._s[3003]! } - public var ChatImport_SelectionErrorNotAdmin: String { return self._s[3004]! } - public var SocksProxySetup_UseProxy: String { return self._s[3006]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3007]! } - public var PasscodeSettings_AlphanumericCode: String { return self._s[3008]! } - public var VoiceOver_Chat_YourVideo: String { return self._s[3009]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[3011]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[3012]! } - public var Exceptions_AddToExceptions: String { return self._s[3013]! } - public var UserInfo_Title: String { return self._s[3014]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[3016]! } - public var VoiceChat_EditDescription: String { return self._s[3018]! } - public var ChatList_Unmute: String { return self._s[3019]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsSync: String { return self._s[3020]! } + public var TwoStepAuth_RecoveryUnavailableResetTitle: String { return self._s[3000]! } + public var Weekday_Tuesday: String { return self._s[3001]! } + public var ChangePhoneNumberCode_Code: String { return self._s[3002]! } + public var VoiceOver_Chat_YourMessage: String { return self._s[3003]! } + public var Calls_CallTabDescription: String { return self._s[3004]! } + public var ChatImport_SelectionErrorNotAdmin: String { return self._s[3005]! } + public var SocksProxySetup_UseProxy: String { return self._s[3007]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3008]! } + public var PasscodeSettings_AlphanumericCode: String { return self._s[3009]! } + public var VoiceOver_Chat_YourVideo: String { return self._s[3010]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[3012]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[3013]! } + public var Exceptions_AddToExceptions: String { return self._s[3014]! } + public var UserInfo_Title: String { return self._s[3015]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[3017]! } + public var VoiceChat_EditDescription: String { return self._s[3019]! } + public var ChatList_Unmute: String { return self._s[3020]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsSync: String { return self._s[3021]! } public func Channel_AdminLog_MessageChangedAutoremoveTimeoutSet(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3021]!, self._r[3021]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3022]!, self._r[3022]!, [_1, _2]) } - public var Stats_GroupTopPostersTitle: String { return self._s[3022]! } - public var Username_CheckingUsername: String { return self._s[3024]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3025]! } - public var PeerSelection_ImportIntoNewGroup: String { return self._s[3029]! } - public var Location_ProximityAlertSetTitle: String { return self._s[3030]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[3031]! } - public var Conversation_JoinVoiceChatAsSpeaker: String { return self._s[3032]! } - public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[3033]! } - public var Settings_ChangePhoneNumber: String { return self._s[3034]! } - public var PeerInfo_PaneLinks: String { return self._s[3035]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3038]! } - public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[3040]! } + public var Stats_GroupTopPostersTitle: String { return self._s[3023]! } + public var Username_CheckingUsername: String { return self._s[3025]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3026]! } + public var PeerSelection_ImportIntoNewGroup: String { return self._s[3030]! } + public var Location_ProximityAlertSetTitle: String { return self._s[3031]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[3032]! } + public var Conversation_JoinVoiceChatAsSpeaker: String { return self._s[3033]! } + public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[3034]! } + public var Settings_ChangePhoneNumber: String { return self._s[3035]! } + public var PeerInfo_PaneLinks: String { return self._s[3036]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3039]! } + public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[3041]! } public func PUSH_CHAT_VOICECHAT_INVITE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3041]!, self._r[3041]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3042]!, self._r[3042]!, [_1, _2]) } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3042]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3043]! } - public var VoiceChat_CancelConfirmationEnd: String { return self._s[3044]! } - public var BroadcastGroups_ConfirmationAlert_Title: String { return self._s[3045]! } - public var Stats_FollowersBySourceTitle: String { return self._s[3047]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3043]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3044]! } + public var VoiceChat_CancelConfirmationEnd: String { return self._s[3045]! } + public var BroadcastGroups_ConfirmationAlert_Title: String { return self._s[3046]! } + public var Stats_FollowersBySourceTitle: String { return self._s[3048]! } public func Conversation_ScheduleMessage_SendOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3048]!, self._r[3048]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3049]!, self._r[3049]!, [_0, _1]) } - public var Compose_NewEncryptedChatTitle: String { return self._s[3049]! } - public var Channel_CommentsGroup_Header: String { return self._s[3051]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3050]! } + public var Channel_CommentsGroup_Header: String { return self._s[3052]! } public func ShareFileTip_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3055]!, self._r[3055]!, [_0]) + return formatWithArgumentRanges(self._s[3056]!, self._r[3056]!, [_0]) } public func PUSH_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3056]!, self._r[3056]!, [_1]) + return formatWithArgumentRanges(self._s[3057]!, self._r[3057]!, [_1]) } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3058]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3059]! } public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3059]!, self._r[3059]!, [_0]) + return formatWithArgumentRanges(self._s[3060]!, self._r[3060]!, [_0]) } - public var Conversation_ReportMessages: String { return self._s[3060]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3061]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3062]! } - public var PrivacySettings_LastSeen: String { return self._s[3064]! } - public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[3065]! } - public var Theme_Colors_Proceed: String { return self._s[3066]! } - public var UserInfo_ScamBotWarning: String { return self._s[3067]! } - public var LogoutOptions_LogOut: String { return self._s[3069]! } - public var Conversation_SendMessage: String { return self._s[3070]! } - public var Conversation_CancelForwardCancelForward: String { return self._s[3071]! } - public var VoiceChat_Scheduled: String { return self._s[3073]! } - public var Passport_Address_Region: String { return self._s[3074]! } - public var MediaPicker_CameraRoll: String { return self._s[3076]! } + public var Conversation_ReportMessages: String { return self._s[3061]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3062]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3063]! } + public var PrivacySettings_LastSeen: String { return self._s[3065]! } + public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[3066]! } + public var Theme_Colors_Proceed: String { return self._s[3067]! } + public var UserInfo_ScamBotWarning: String { return self._s[3068]! } + public var LogoutOptions_LogOut: String { return self._s[3070]! } + public var Conversation_SendMessage: String { return self._s[3071]! } + public var Conversation_CancelForwardCancelForward: String { return self._s[3072]! } + public var VoiceChat_Scheduled: String { return self._s[3074]! } + public var Passport_Address_Region: String { return self._s[3075]! } + public var MediaPicker_CameraRoll: String { return self._s[3077]! } public func VoiceOver_Chat_ForwardedFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3078]!, self._r[3078]!, [_0]) + return formatWithArgumentRanges(self._s[3079]!, self._r[3079]!, [_0]) } - public var Call_ReportSend: String { return self._s[3080]! } - public var VoiceOver_ChatList_Message: String { return self._s[3081]! } - public var Month_ShortJune: String { return self._s[3082]! } - public var AutoDownloadSettings_GroupChats: String { return self._s[3083]! } + public var Call_ReportSend: String { return self._s[3081]! } + public var VoiceOver_ChatList_Message: String { return self._s[3082]! } + public var Month_ShortJune: String { return self._s[3083]! } + public var AutoDownloadSettings_GroupChats: String { return self._s[3084]! } public func Channel_AdminLog_CaptionEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3086]!, self._r[3086]!, [_0]) + return formatWithArgumentRanges(self._s[3087]!, self._r[3087]!, [_0]) } - public var TwoStepAuth_DisableSuccess: String { return self._s[3087]! } - public var Cache_KeepMedia: String { return self._s[3088]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[3088]! } + public var Cache_KeepMedia: String { return self._s[3089]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3089]!, self._r[3089]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3090]!, self._r[3090]!, [_1, _2, _3]) } - public var Appearance_LargeEmoji: String { return self._s[3090]! } + public var Appearance_LargeEmoji: String { return self._s[3091]! } public func Notification_NewAuthDetected(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3091]!, self._r[3091]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[3092]!, self._r[3092]!, [_1, _2, _3, _4, _5, _6]) } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[3092]! } - public var Privacy_PaymentsClear_PaymentInfoCleared: String { return self._s[3093]! } - public var Call_CameraConfirmationText: String { return self._s[3094]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[3093]! } + public var Privacy_PaymentsClear_PaymentInfoCleared: String { return self._s[3094]! } + public var Call_CameraConfirmationText: String { return self._s[3095]! } public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3096]!, self._r[3096]!, [_0]) + return formatWithArgumentRanges(self._s[3097]!, self._r[3097]!, [_0]) } - public var DialogList_SearchSectionChats: String { return self._s[3097]! } - public var VoiceOver_MessageContextReport: String { return self._s[3099]! } - public var VoiceChat_RemovePeer: String { return self._s[3100]! } - public var ChatListFolder_ExcludeChatsTitle: String { return self._s[3101]! } - public var InviteLink_ContextCopy: String { return self._s[3102]! } - public var NotificationsSound_Tritone: String { return self._s[3104]! } - public var VoiceChat_YouAreSharingScreen: String { return self._s[3106]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3108]! } - public var Stats_GroupTopAdmin_Actions: String { return self._s[3109]! } - public var TwoFactorSetup_PasswordRecovery_SkipAlertText: String { return self._s[3110]! } - public var TwoStepAuth_ResetAction: String { return self._s[3111]! } - public var PeerInfo_AddToContacts: String { return self._s[3112]! } - public var VoiceChat_OpenChat: String { return self._s[3113]! } - public var AccessDenied_Title: String { return self._s[3114]! } - public var InviteLink_QRCode_InfoChannel: String { return self._s[3115]! } - public var Tour_Title1: String { return self._s[3116]! } - public var VoiceOver_AttachMedia: String { return self._s[3117]! } + public var DialogList_SearchSectionChats: String { return self._s[3098]! } + public var VoiceOver_MessageContextReport: String { return self._s[3100]! } + public var VoiceChat_RemovePeer: String { return self._s[3101]! } + public var ChatListFolder_ExcludeChatsTitle: String { return self._s[3102]! } + public var InviteLink_ContextCopy: String { return self._s[3103]! } + public var NotificationsSound_Tritone: String { return self._s[3105]! } + public var VoiceChat_YouAreSharingScreen: String { return self._s[3107]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3109]! } + public var Stats_GroupTopAdmin_Actions: String { return self._s[3110]! } + public var TwoFactorSetup_PasswordRecovery_SkipAlertText: String { return self._s[3111]! } + public var TwoStepAuth_ResetAction: String { return self._s[3112]! } + public var PeerInfo_AddToContacts: String { return self._s[3113]! } + public var VoiceChat_OpenChat: String { return self._s[3114]! } + public var AccessDenied_Title: String { return self._s[3115]! } + public var InviteLink_QRCode_InfoChannel: String { return self._s[3116]! } + public var Tour_Title1: String { return self._s[3117]! } + public var VoiceOver_AttachMedia: String { return self._s[3118]! } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3119]!, self._r[3119]!, [_0]) + return formatWithArgumentRanges(self._s[3120]!, self._r[3120]!, [_0]) } - public var Chat_Gifs_SavedSectionHeader: String { return self._s[3120]! } - public var Privacy_DeleteDrafts_DraftsDeleted: String { return self._s[3121]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[3122]! } + public var Chat_Gifs_SavedSectionHeader: String { return self._s[3121]! } + public var Privacy_DeleteDrafts_DraftsDeleted: String { return self._s[3122]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[3123]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3123]!, self._r[3123]!, [_0]) + return formatWithArgumentRanges(self._s[3124]!, self._r[3124]!, [_0]) } - public var Channel_AdminLog_MessagePreviousLink: String { return self._s[3124]! } - public var OldChannels_Title: String { return self._s[3125]! } - public var LoginPassword_FloodError: String { return self._s[3126]! } - public var ChatImportActivity_InProgress: String { return self._s[3128]! } - public var Checkout_ErrorPaymentFailed: String { return self._s[3129]! } + public var Channel_AdminLog_MessagePreviousLink: String { return self._s[3125]! } + public var OldChannels_Title: String { return self._s[3126]! } + public var LoginPassword_FloodError: String { return self._s[3127]! } + public var ChatImportActivity_InProgress: String { return self._s[3129]! } + public var Checkout_ErrorPaymentFailed: String { return self._s[3130]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3130]!, self._r[3130]!, [_0]) + return formatWithArgumentRanges(self._s[3131]!, self._r[3131]!, [_0]) } - public var VoiceOver_Media_PlaybackPlay: String { return self._s[3133]! } - public var Passport_CorrectErrors: String { return self._s[3135]! } + public var VoiceOver_Media_PlaybackPlay: String { return self._s[3134]! } + public var Passport_CorrectErrors: String { return self._s[3136]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3136]!, self._r[3136]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3137]!, self._r[3137]!, [_1, _2]) } - public var ChatListFolderSettings_Title: String { return self._s[3137]! } + public var ChatListFolderSettings_Title: String { return self._s[3138]! } public func AutoDownloadSettings_UpToFor(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3138]!, self._r[3138]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3139]!, self._r[3139]!, [_1, _2]) } - public var PhotoEditor_HighlightsTool: String { return self._s[3139]! } - public var Contacts_NotRegisteredSection: String { return self._s[3142]! } + public var PhotoEditor_HighlightsTool: String { return self._s[3140]! } + public var Contacts_NotRegisteredSection: String { return self._s[3143]! } public func Call_VoiceChatInProgressCallMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3143]!, self._r[3143]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3144]!, self._r[3144]!, [_1, _2]) } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3144]!, self._r[3144]!, [_1]) + return formatWithArgumentRanges(self._s[3145]!, self._r[3145]!, [_1]) } - public var InviteLink_Create_UsersLimitInfo: String { return self._s[3145]! } - public var User_DeletedAccount: String { return self._s[3146]! } - public var Conversation_ViewContactDetails: String { return self._s[3147]! } - public var Conversation_Dice_u1F3B3: String { return self._s[3148]! } - public var WebSearch_GIFs: String { return self._s[3149]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[3150]! } - public var Appearance_PreviewOutgoingText: String { return self._s[3151]! } - public var Calls_CallTabTitle: String { return self._s[3152]! } - public var Call_VoiceChatInProgressTitle: String { return self._s[3153]! } - public var Checkout_OptionalTipItem: String { return self._s[3154]! } + public var InviteLink_Create_UsersLimitInfo: String { return self._s[3146]! } + public var User_DeletedAccount: String { return self._s[3147]! } + public var Conversation_ViewContactDetails: String { return self._s[3148]! } + public var Conversation_Dice_u1F3B3: String { return self._s[3149]! } + public var WebSearch_GIFs: String { return self._s[3150]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[3151]! } + public var Appearance_PreviewOutgoingText: String { return self._s[3152]! } + public var Calls_CallTabTitle: String { return self._s[3153]! } + public var Call_VoiceChatInProgressTitle: String { return self._s[3154]! } + public var Checkout_OptionalTipItem: String { return self._s[3155]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3155]!, self._r[3155]!, [_0]) + return formatWithArgumentRanges(self._s[3156]!, self._r[3156]!, [_0]) } - public var Channel_Status: String { return self._s[3156]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[3158]! } - public var VoiceOver_Chat_OptionSelected: String { return self._s[3159]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3160]! } + public var Channel_Status: String { return self._s[3157]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[3159]! } + public var VoiceOver_Chat_OptionSelected: String { return self._s[3160]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3161]! } public func ClearCache_Success(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3161]!, self._r[3161]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3162]!, self._r[3162]!, [_0, _1]) } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3163]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[3165]! } - public var Month_ShortDecember: String { return self._s[3166]! } - public var Username_Help: String { return self._s[3167]! } - public var Login_InfoAvatarAdd: String { return self._s[3168]! } - public var Month_ShortMay: String { return self._s[3169]! } - public var DialogList_UnknownPinLimitError: String { return self._s[3170]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[3171]! } - public var TwoStepAuth_EnabledSuccess: String { return self._s[3172]! } - public var VoiceChat_StopScreenSharing: String { return self._s[3173]! } - public var VoiceChat_AskedToSpeak: String { return self._s[3174]! } - public var Weekday_ShortSunday: String { return self._s[3175]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3176]! } - public var AuthSessions_TerminateSession: String { return self._s[3177]! } - public var Passport_Identity_FilesTitle: String { return self._s[3178]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3164]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[3166]! } + public var Month_ShortDecember: String { return self._s[3167]! } + public var Username_Help: String { return self._s[3168]! } + public var Login_InfoAvatarAdd: String { return self._s[3169]! } + public var Month_ShortMay: String { return self._s[3170]! } + public var DialogList_UnknownPinLimitError: String { return self._s[3171]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[3172]! } + public var TwoStepAuth_EnabledSuccess: String { return self._s[3173]! } + public var VoiceChat_StopScreenSharing: String { return self._s[3174]! } + public var VoiceChat_AskedToSpeak: String { return self._s[3175]! } + public var Weekday_ShortSunday: String { return self._s[3176]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3177]! } + public var AuthSessions_TerminateSession: String { return self._s[3178]! } + public var Passport_Identity_FilesTitle: String { return self._s[3179]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3179]!, self._r[3179]!, [_0]) + return formatWithArgumentRanges(self._s[3180]!, self._r[3180]!, [_0]) } - public var PeopleNearby_MakeVisible: String { return self._s[3181]! } + public var PeopleNearby_MakeVisible: String { return self._s[3182]! } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3182]!, self._r[3182]!, [_0]) + return formatWithArgumentRanges(self._s[3183]!, self._r[3183]!, [_0]) } - public var Widget_UpdatedAt: String { return self._s[3183]! } + public var Widget_UpdatedAt: String { return self._s[3184]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3184]!, self._r[3184]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3185]!, self._r[3185]!, [_1, _2]) } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3185]!, self._r[3185]!, [_0]) + return formatWithArgumentRanges(self._s[3186]!, self._r[3186]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3186]! } - public var VoiceChat_VideoPreviewShareScreen: String { return self._s[3187]! } - public var ImportStickerPack_ChooseStickerSet: String { return self._s[3189]! } - public var Conversation_ContextMenuForward: String { return self._s[3190]! } - public var Channel_AdminLog_CanManageCalls: String { return self._s[3191]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3187]! } + public var VoiceChat_VideoPreviewShareScreen: String { return self._s[3188]! } + public var ImportStickerPack_ChooseStickerSet: String { return self._s[3190]! } + public var Conversation_ContextMenuForward: String { return self._s[3191]! } + public var Channel_AdminLog_CanManageCalls: String { return self._s[3192]! } public func PUSH_CHAT_MESSAGE_QUIZ(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3193]!, self._r[3193]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3194]!, self._r[3194]!, [_1, _2, _3]) } - public var Notification_GroupInviterSelf: String { return self._s[3195]! } - public var Privacy_Forwards_NeverLink: String { return self._s[3196]! } - public var AuthSessions_CurrentSession: String { return self._s[3197]! } - public var Passport_Address_EditPassportRegistration: String { return self._s[3198]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3199]! } - public var ChatSearch_ResultsTooltip: String { return self._s[3201]! } - public var CheckoutInfo_Pay: String { return self._s[3202]! } + public var Notification_GroupInviterSelf: String { return self._s[3196]! } + public var Privacy_Forwards_NeverLink: String { return self._s[3197]! } + public var AuthSessions_CurrentSession: String { return self._s[3198]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[3199]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3200]! } + public var ChatSearch_ResultsTooltip: String { return self._s[3202]! } + public var CheckoutInfo_Pay: String { return self._s[3203]! } public func Conversation_PinMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3204]!, self._r[3204]!, [_0]) + return formatWithArgumentRanges(self._s[3205]!, self._r[3205]!, [_0]) } - public var GroupInfo_AddParticipant: String { return self._s[3205]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[3206]! } + public var GroupInfo_AddParticipant: String { return self._s[3206]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[3207]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3207]!, self._r[3207]!, [_0]) + return formatWithArgumentRanges(self._s[3208]!, self._r[3208]!, [_0]) } - public var Localization_LanguageCustom: String { return self._s[3208]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[3209]! } - public var Settings_UsernameEmpty: String { return self._s[3210]! } - public var Settings_FAQ_URL: String { return self._s[3211]! } - public var ChatList_UndoArchiveText1: String { return self._s[3212]! } - public var Common_Select: String { return self._s[3214]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[3215]! } - public var Notification_PassportValueAddress: String { return self._s[3216]! } - public var Conversation_MessageDialogDelete: String { return self._s[3217]! } - public var Map_OpenInYandexNavigator: String { return self._s[3219]! } - public var DialogList_SearchSectionDialogs: String { return self._s[3220]! } - public var AccessDenied_Contacts: String { return self._s[3221]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3223]! } - public var Passport_ScanPassportHelp: String { return self._s[3224]! } - public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3225]! } - public var ChatListFolder_NameChannels: String { return self._s[3226]! } - public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3227]! } + public var Localization_LanguageCustom: String { return self._s[3209]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[3210]! } + public var Settings_UsernameEmpty: String { return self._s[3211]! } + public var Settings_FAQ_URL: String { return self._s[3212]! } + public var ChatList_UndoArchiveText1: String { return self._s[3213]! } + public var Common_Select: String { return self._s[3215]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[3216]! } + public var Notification_PassportValueAddress: String { return self._s[3217]! } + public var Conversation_MessageDialogDelete: String { return self._s[3218]! } + public var Map_OpenInYandexNavigator: String { return self._s[3220]! } + public var DialogList_SearchSectionDialogs: String { return self._s[3221]! } + public var AccessDenied_Contacts: String { return self._s[3222]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3224]! } + public var Passport_ScanPassportHelp: String { return self._s[3225]! } + public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3226]! } + public var ChatListFolder_NameChannels: String { return self._s[3227]! } + public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3228]! } public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3228]!, self._r[3228]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3229]!, self._r[3229]!, [_1, _2]) } - public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3229]! } + public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3230]! } public func VoiceChat_InviteMemberToGroupFirstText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3230]!, self._r[3230]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3231]!, self._r[3231]!, [_1, _2]) } - public var Conversation_GifTooltip: String { return self._s[3231]! } - public var Widget_MessageAutoremoveTimerUpdated: String { return self._s[3232]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3234]! } - public var VoiceChat_Connecting: String { return self._s[3235]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3236]! } + public var Conversation_GifTooltip: String { return self._s[3232]! } + public var Widget_MessageAutoremoveTimerUpdated: String { return self._s[3233]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3235]! } + public var VoiceChat_Connecting: String { return self._s[3236]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3237]! } public func Channel_AdminLog_CreatedInviteLink(_ _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 Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3238]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3239]! } - public var CreatePoll_Quiz: String { return self._s[3240]! } - public var TwoFactorSetup_Email_Placeholder: String { return self._s[3242]! } - public var Watch_Message_Invoice: String { return self._s[3243]! } - public var Settings_AddAnotherAccount_Help: String { return self._s[3244]! } - public var Watch_Message_Unsupported: String { return self._s[3245]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3239]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3240]! } + public var CreatePoll_Quiz: String { return self._s[3241]! } + public var TwoFactorSetup_Email_Placeholder: String { return self._s[3243]! } + public var Watch_Message_Invoice: String { return self._s[3244]! } + public var Settings_AddAnotherAccount_Help: String { return self._s[3245]! } + public var Watch_Message_Unsupported: String { return self._s[3246]! } public func Call_CameraOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3247]!, self._r[3247]!, [_0]) + return formatWithArgumentRanges(self._s[3248]!, self._r[3248]!, [_0]) } - public var AuthSessions_TerminateOtherSessions: String { return self._s[3248]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[3250]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3251]! } - public var Call_IncomingVoiceCall: String { return self._s[3252]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[3249]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[3251]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3252]! } + public var Call_IncomingVoiceCall: String { return self._s[3253]! } public func Channel_AdminLog_MessageTransferedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3253]!, self._r[3253]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3254]!, self._r[3254]!, [_1, _2]) } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[3254]! } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3255]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3256]! } - public var Group_ErrorAccessDenied: String { return self._s[3257]! } - public var PasscodeSettings_HelpTop: String { return self._s[3258]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3259]! } - public var AddContact_SharedContactException: String { return self._s[3260]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[3261]! } - public var Privacy_TopPeers: String { return self._s[3262]! } - public var Web_OpenExternal: String { return self._s[3263]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[3264]! } - public var Channel_Management_LabelAdministrator: String { return self._s[3265]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[3255]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3256]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3257]! } + public var Group_ErrorAccessDenied: String { return self._s[3258]! } + public var PasscodeSettings_HelpTop: String { return self._s[3259]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3260]! } + public var AddContact_SharedContactException: String { return self._s[3261]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[3262]! } + public var Privacy_TopPeers: String { return self._s[3263]! } + public var Web_OpenExternal: String { return self._s[3264]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[3265]! } + public var Channel_Management_LabelAdministrator: String { return self._s[3266]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3266]!, self._r[3266]!, [_0]) + return formatWithArgumentRanges(self._s[3267]!, self._r[3267]!, [_0]) } - public var Conversation_PhoneCopied: String { return self._s[3267]! } - public var Permissions_Skip: String { return self._s[3268]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3269]! } + public var Conversation_PhoneCopied: String { return self._s[3268]! } + public var Permissions_Skip: String { return self._s[3269]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3270]! } public func VoiceChat_ForwardTooltip_TwoChats(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3270]!, self._r[3270]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3271]!, self._r[3271]!, [_0, _1]) } - public var PeopleNearby_Title: String { return self._s[3271]! } - public var GroupInfo_SharedMediaNone: String { return self._s[3272]! } + public var PeopleNearby_Title: String { return self._s[3272]! } + public var GroupInfo_SharedMediaNone: String { return self._s[3273]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3274]!, self._r[3274]!, [_1]) + return formatWithArgumentRanges(self._s[3275]!, self._r[3275]!, [_1]) } - public var Profile_MessageLifetime1w: String { return self._s[3275]! } + public var Profile_MessageLifetime1w: String { return self._s[3276]! } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3276]!, self._r[3276]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3277]!, self._r[3277]!, [_1, _2, _3]) } - public var WebBrowser_DefaultBrowser: String { return self._s[3277]! } - public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3279]! } - public var EditTheme_Edit_BottomInfo: String { return self._s[3280]! } - public var Privacy_Forwards_Preview: String { return self._s[3281]! } - public var Settings_EditAccount: String { return self._s[3282]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3278]! } + public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3280]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[3281]! } + public var Privacy_Forwards_Preview: String { return self._s[3282]! } + public var Settings_EditAccount: String { return self._s[3283]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3283]!, self._r[3283]!, [_0]) + return formatWithArgumentRanges(self._s[3284]!, self._r[3284]!, [_0]) } - public var TwoFactorSetup_Intro_Title: String { return self._s[3284]! } + public var TwoFactorSetup_Intro_Title: String { return self._s[3285]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3286]!, self._r[3286]!, [_1]) + return formatWithArgumentRanges(self._s[3287]!, self._r[3287]!, [_1]) } - public var PeerInfo_ButtonVideoCall: String { return self._s[3287]! } + public var PeerInfo_ButtonVideoCall: String { return self._s[3288]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3288]!, self._r[3288]!, [_0]) + return formatWithArgumentRanges(self._s[3289]!, self._r[3289]!, [_0]) } - public var Login_InfoHelp: String { return self._s[3289]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3290]! } - public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3291]! } - public var Profile_MessageLifetime1d: String { return self._s[3292]! } - public var Group_UpgradeConfirmation: String { return self._s[3293]! } + public var Login_InfoHelp: String { return self._s[3290]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3291]! } + public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3292]! } + public var Profile_MessageLifetime1d: String { return self._s[3293]! } + public var Group_UpgradeConfirmation: String { return self._s[3294]! } public func PUSH_PINNED_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3294]!, self._r[3294]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3295]!, self._r[3295]!, [_1, _2]) } - public var Appearance_RemoveThemeColor: String { return self._s[3295]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3296]! } + public var Appearance_RemoveThemeColor: String { return self._s[3296]! } + public var VoiceChat_VideoPreviewFrontCamera: String { return self._s[3297]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3298]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3297]!, self._r[3297]!, [_0]) + return formatWithArgumentRanges(self._s[3299]!, self._r[3299]!, [_0]) } - public var UserInfo_BotSettings: String { return self._s[3298]! } + public var UserInfo_BotSettings: String { return self._s[3300]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3300]!, self._r[3300]!, [_0]) + return formatWithArgumentRanges(self._s[3302]!, self._r[3302]!, [_0]) } - public var Permissions_ContactsText_v0: String { return self._s[3301]! } - public var Conversation_PinMessagesForMe: String { return self._s[3302]! } - public var VoiceChat_PanelJoin: String { return self._s[3303]! } - public var Conversation_DiscussionStarted: String { return self._s[3305]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3306]! } - public var SharedMedia_SearchNoResults: String { return self._s[3308]! } + public var Permissions_ContactsText_v0: String { return self._s[3303]! } + public var Conversation_PinMessagesForMe: String { return self._s[3304]! } + public var VoiceChat_PanelJoin: String { return self._s[3305]! } + public var Conversation_DiscussionStarted: String { return self._s[3307]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3308]! } + public var SharedMedia_SearchNoResults: String { return self._s[3310]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3310]!, self._r[3310]!, [_0]) - } - public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3312]!, self._r[3312]!, [_0]) } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3313]! } - public func TwoStepAuth_ResetPendingText(_ _0: String) -> (String, [(Int, NSRange)]) { + public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3314]!, self._r[3314]!, [_0]) } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3315]! } - public var Call_AudioRouteHeadphones: String { return self._s[3316]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3315]! } + public func TwoStepAuth_ResetPendingText(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3316]!, self._r[3316]!, [_0]) + } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3317]! } + public var Call_AudioRouteHeadphones: String { return self._s[3318]! } public func Notification_VoiceChatScheduledTomorrowChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3318]!, self._r[3318]!, [_0]) + return formatWithArgumentRanges(self._s[3320]!, self._r[3320]!, [_0]) } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3319]!, self._r[3319]!, [_1]) + return formatWithArgumentRanges(self._s[3321]!, self._r[3321]!, [_1]) } - public var Passport_Identity_FilesView: String { return self._s[3320]! } - public var TwoStepAuth_SetupEmail: String { return self._s[3321]! } - public var Widget_ApplicationStartRequired: String { return self._s[3322]! } - public var PhotoEditor_Original: String { return self._s[3323]! } - public var Call_YourMicrophoneOff: String { return self._s[3324]! } - public var Permissions_ContactsAllow_v0: String { return self._s[3325]! } - public var Conversation_CardNumberCopied: String { return self._s[3326]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3327]! } - public var PrivacyPolicy_Decline: String { return self._s[3328]! } - public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3329]! } - public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3330]! } - public var ChatListFolder_IncludeSectionInfo: String { return self._s[3331]! } + public var Passport_Identity_FilesView: String { return self._s[3322]! } + public var TwoStepAuth_SetupEmail: String { return self._s[3323]! } + public var Widget_ApplicationStartRequired: String { return self._s[3324]! } + public var PhotoEditor_Original: String { return self._s[3325]! } + public var Call_YourMicrophoneOff: String { return self._s[3326]! } + public var Permissions_ContactsAllow_v0: String { return self._s[3327]! } + public var Conversation_CardNumberCopied: String { return self._s[3328]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3329]! } + public var PrivacyPolicy_Decline: String { return self._s[3330]! } + public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3331]! } + public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3332]! } + public var ChatListFolder_IncludeSectionInfo: String { return self._s[3333]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3332]!, self._r[3332]!, [_0]) + return formatWithArgumentRanges(self._s[3334]!, self._r[3334]!, [_0]) } - public var Passport_Identity_Name: String { return self._s[3333]! } - public var WallpaperPreview_PatternTitle: String { return self._s[3335]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3336]! } - public var WallpaperSearch_ColorOrange: String { return self._s[3338]! } - public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3339]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3340]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3341]! } - public var IntentsSettings_ResetAll: String { return self._s[3342]! } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3344]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3345]! } - public var ChatList_DeleteForAllSubscribers: String { return self._s[3346]! } - public var Notification_Exceptions_Add: String { return self._s[3347]! } - public var Group_DeleteGroup: String { return self._s[3348]! } - public var Cache_Help: String { return self._s[3349]! } - public var Call_AudioRouteMute: String { return self._s[3350]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3351]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[3352]! } + public var Passport_Identity_Name: String { return self._s[3335]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3337]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3338]! } + public var WallpaperSearch_ColorOrange: String { return self._s[3340]! } + public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3341]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3342]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3343]! } + public var IntentsSettings_ResetAll: String { return self._s[3344]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3346]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3347]! } + public var ChatList_DeleteForAllSubscribers: String { return self._s[3348]! } + public var Notification_Exceptions_Add: String { return self._s[3349]! } + public var Group_DeleteGroup: String { return self._s[3350]! } + public var Cache_Help: String { return self._s[3351]! } + public var Call_AudioRouteMute: String { return self._s[3352]! } + public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3353]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[3354]! } public func VoiceChat_Status_MembersFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3353]!, self._r[3353]!, [_1, _2]) - } - public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3354]!, self._r[3354]!, [_1]) - } - public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3355]!, self._r[3355]!, [_1, _2]) } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3356]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[3357]! } + public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3356]!, self._r[3356]!, [_1]) + } + public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3357]!, self._r[3357]!, [_1, _2]) + } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3358]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[3359]! } public func PUSH_CHAT_VOICECHAT_INVITE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3358]!, self._r[3358]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3360]!, self._r[3360]!, [_1, _2, _3]) } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3359]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3360]! } - public var ClearCache_StorageFree: String { return self._s[3361]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3361]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3362]! } + public var ClearCache_StorageFree: String { return self._s[3363]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3362]!, self._r[3362]!, [_0]) + return formatWithArgumentRanges(self._s[3364]!, self._r[3364]!, [_0]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[3363]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[3365]! } public func Channel_AdminLog_EditedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3365]!, self._r[3365]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3367]!, self._r[3367]!, [_1, _2]) } - public var Group_ErrorAddTooMuchAdmins: String { return self._s[3366]! } - public var DialogList_Typing: String { return self._s[3367]! } + public var Group_ErrorAddTooMuchAdmins: String { return self._s[3368]! } + public var DialogList_Typing: String { return self._s[3369]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3368]!, self._r[3368]!, [_0]) + return formatWithArgumentRanges(self._s[3370]!, self._r[3370]!, [_0]) } - public var Target_SelectGroup: String { return self._s[3369]! } - public var AuthSessions_IncompleteAttempts: String { return self._s[3370]! } - public var TwoStepAuth_RecoveryEmailResetText: String { return self._s[3371]! } - public var TwoFactorRemember_Done_Text: String { return self._s[3372]! } + public var Target_SelectGroup: String { return self._s[3371]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3372]! } + public var TwoStepAuth_RecoveryEmailResetText: String { return self._s[3373]! } + public var TwoFactorRemember_Done_Text: String { return self._s[3374]! } public func Notification_ProximityReached(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3373]!, self._r[3373]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3375]!, self._r[3375]!, [_1, _2, _3]) } - public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3374]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3375]! } + public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3376]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3377]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3376]!, self._r[3376]!, [_0]) + return formatWithArgumentRanges(self._s[3378]!, self._r[3378]!, [_0]) } - public var Channel_AdminLog_CanSendMessages: String { return self._s[3377]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3378]! } - public var ChatSettings_TextSize: String { return self._s[3379]! } - public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3381]! } - public var Map_SendThisPlace: String { return self._s[3382]! } - public var Conversation_TextCopied: String { return self._s[3383]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3384]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3385]! } - public var Call_ShareStats: String { return self._s[3386]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[3379]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3380]! } + public var ChatSettings_TextSize: String { return self._s[3381]! } + public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3383]! } + public var Map_SendThisPlace: String { return self._s[3384]! } + public var Conversation_TextCopied: String { return self._s[3385]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3386]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3387]! } + public var Call_ShareStats: String { return self._s[3388]! } public func PUSH_CHAT_VOICECHAT_END(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3388]!, self._r[3388]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3390]!, self._r[3390]!, [_1, _2]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3389]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[3390]! } - public var Settings_Support: String { return self._s[3391]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3392]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3391]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[3392]! } + public var Settings_Support: String { return self._s[3393]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3394]! } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3394]!, self._r[3394]!, [_0]) + return formatWithArgumentRanges(self._s[3396]!, self._r[3396]!, [_0]) } - public var Watch_Conversation_GroupInfo: String { return self._s[3395]! } - public var Tour_Text4: String { return self._s[3396]! } - public var VoiceChat_CancelReminder: String { return self._s[3397]! } - public var Calls_StartNewCall: String { return self._s[3398]! } - public var UserInfo_FakeUserWarning: String { return self._s[3400]! } - public var PasscodeSettings_AutoLock: String { return self._s[3401]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3402]! } - public var Bot_DescriptionTitle: String { return self._s[3404]! } - public var Map_LocationTitle: String { return self._s[3405]! } - public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3406]! } - public var Conversation_HashtagCopied: String { return self._s[3407]! } + public var Watch_Conversation_GroupInfo: String { return self._s[3397]! } + public var Tour_Text4: String { return self._s[3398]! } + public var VoiceChat_CancelReminder: String { return self._s[3399]! } + public var Calls_StartNewCall: String { return self._s[3400]! } + public var UserInfo_FakeUserWarning: String { return self._s[3402]! } + public var PasscodeSettings_AutoLock: String { return self._s[3403]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3404]! } + public var Bot_DescriptionTitle: String { return self._s[3406]! } + public var Map_LocationTitle: String { return self._s[3407]! } + public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3408]! } + public var Conversation_HashtagCopied: String { return self._s[3409]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3408]!, self._r[3408]!, [_1]) + return formatWithArgumentRanges(self._s[3410]!, self._r[3410]!, [_1]) } - public var VoiceChat_ReminderNotify: String { return self._s[3409]! } - public var Login_EmailNotConfiguredError: String { return self._s[3410]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[3411]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[3412]! } - public var Permissions_CellularDataText_v0: String { return self._s[3413]! } - public var Conversation_EncryptionProcessing: String { return self._s[3414]! } - public var GroupPermission_Delete: String { return self._s[3416]! } - public var Contacts_SortByName: String { return self._s[3417]! } - public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3418]! } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[3419]! } - public var Group_Management_AddModeratorHelp: String { return self._s[3421]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3422]! } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3423]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[3425]! } + public var VoiceChat_ReminderNotify: String { return self._s[3411]! } + public var Login_EmailNotConfiguredError: String { return self._s[3412]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[3413]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[3414]! } + public var Permissions_CellularDataText_v0: String { return self._s[3415]! } + public var Conversation_EncryptionProcessing: String { return self._s[3416]! } + public var GroupPermission_Delete: String { return self._s[3418]! } + public var Contacts_SortByName: String { return self._s[3419]! } + public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3420]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[3421]! } + public var Group_Management_AddModeratorHelp: String { return self._s[3423]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3424]! } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3425]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[3427]! } public func PUSH_CHANNEL_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3426]!, self._r[3426]!, [_1]) + return formatWithArgumentRanges(self._s[3428]!, self._r[3428]!, [_1]) } public func SecretVideo_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3427]!, self._r[3427]!, [_0]) + return formatWithArgumentRanges(self._s[3429]!, self._r[3429]!, [_0]) } - public var ChatList_Context_Delete: String { return self._s[3428]! } - public var VoiceChat_InviteMember: String { return self._s[3429]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3430]! } - public var Conversation_Processing: String { return self._s[3431]! } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[3432]! } - public var ChatSettings_Stickers: String { return self._s[3433]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3434]! } - public var Passport_Language_cs: String { return self._s[3435]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3437]! } - public var Conversation_Contact: String { return self._s[3438]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[3439]! } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[3441]! } - public var Theme_Unsupported: String { return self._s[3442]! } - public var Privacy_TopPeersWarning: String { return self._s[3443]! } + public var ChatList_Context_Delete: String { return self._s[3430]! } + public var VoiceChat_InviteMember: String { return self._s[3431]! } + public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3432]! } + public var Conversation_Processing: String { return self._s[3433]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[3434]! } + public var ChatSettings_Stickers: String { return self._s[3435]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3436]! } + public var Passport_Language_cs: String { return self._s[3437]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3439]! } + public var Conversation_Contact: String { return self._s[3440]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[3441]! } + public var SocksProxySetup_PasteFromClipboard: String { return self._s[3443]! } + public var Theme_Unsupported: String { return self._s[3444]! } + public var Privacy_TopPeersWarning: String { return self._s[3445]! } public func Conversation_ScheduledVoiceChatStartsTodayShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3444]!, self._r[3444]!, [_0]) + return formatWithArgumentRanges(self._s[3446]!, self._r[3446]!, [_0]) } - public var InviteLink_Title: String { return self._s[3446]! } + public var InviteLink_Title: String { return self._s[3448]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3447]!, self._r[3447]!, [_0]) + return formatWithArgumentRanges(self._s[3449]!, self._r[3449]!, [_0]) } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3448]! } - public var TwoStepAuth_RemovePassword: String { return self._s[3449]! } - public var Settings_CheckPhoneNumberText: String { return self._s[3450]! } - public var PeopleNearby_Users: String { return self._s[3451]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3452]! } - public var Settings_SetProfilePhoto: String { return self._s[3453]! } - public var Conversation_ContextMenuBan: String { return self._s[3454]! } - public var KeyCommand_ScrollUp: String { return self._s[3455]! } - public var Settings_ChatSettings: String { return self._s[3457]! } - public var CallList_RecentCallsHeader: String { return self._s[3458]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3450]! } + public var TwoStepAuth_RemovePassword: String { return self._s[3451]! } + public var Settings_CheckPhoneNumberText: String { return self._s[3452]! } + public var PeopleNearby_Users: String { return self._s[3453]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3454]! } + public var Settings_SetProfilePhoto: String { return self._s[3455]! } + public var Conversation_ContextMenuBan: String { return self._s[3456]! } + public var KeyCommand_ScrollUp: String { return self._s[3457]! } + public var Settings_ChatSettings: String { return self._s[3459]! } + public var CallList_RecentCallsHeader: String { return self._s[3460]! } public func PUSH_CHAT_MESSAGE_VIDEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3459]!, self._r[3459]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3461]!, self._r[3461]!, [_1, _2]) } - public var Stats_GroupTopInvitersTitle: String { return self._s[3460]! } - public var Passport_Phone_EnterOtherNumber: String { return self._s[3461]! } - public var VoiceChat_StartRecordingTitle: String { return self._s[3462]! } + public var Stats_GroupTopInvitersTitle: String { return self._s[3462]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[3463]! } + public var VoiceChat_StartRecordingTitle: String { return self._s[3464]! } public func Notification_VoiceChatScheduledToday(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3463]!, self._r[3463]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3465]!, self._r[3465]!, [_1, _2]) } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3465]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3466]! } - public var VoiceOver_ChatList_MessageRead: String { return self._s[3468]! } - public var Stats_GroupTopPoster_Promote: String { return self._s[3471]! } - public var Cache_Title: String { return self._s[3472]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3467]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3468]! } + public var VoiceOver_ChatList_MessageRead: String { return self._s[3470]! } + public var Stats_GroupTopPoster_Promote: String { return self._s[3473]! } + public var Cache_Title: String { return self._s[3474]! } public func Conversation_AutoremoveTimerSetToastText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3473]!, self._r[3473]!, [_0]) + return formatWithArgumentRanges(self._s[3475]!, self._r[3475]!, [_0]) } - public var Clipboard_SendPhoto: String { return self._s[3474]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3476]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3477]! } - public var WatchRemote_AlertTitle: String { return self._s[3480]! } - public var Appearance_ReduceMotion: String { return self._s[3481]! } + public var Clipboard_SendPhoto: String { return self._s[3476]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3478]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3479]! } + public var WatchRemote_AlertTitle: String { return self._s[3482]! } + public var Appearance_ReduceMotion: String { return self._s[3483]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3484]!, self._r[3484]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3486]!, self._r[3486]!, [_1, _2]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[3485]! } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3486]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[3487]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[3487]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3488]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[3489]! } public func Call_CallInProgressVoiceChatMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3488]!, self._r[3488]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3490]!, self._r[3490]!, [_1, _2]) } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3490]!, self._r[3490]!, [_0]) + return formatWithArgumentRanges(self._s[3492]!, self._r[3492]!, [_0]) } - public var ChatListFolder_DiscardConfirmation: String { return self._s[3491]! } + public var ChatListFolder_DiscardConfirmation: String { return self._s[3493]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3493]!, self._r[3493]!, [_0]) + return formatWithArgumentRanges(self._s[3495]!, self._r[3495]!, [_0]) } - public var InstantPage_Search: String { return self._s[3494]! } - public var ChatState_WaitingForNetwork: String { return self._s[3495]! } - public var GroupInfo_Sound: String { return self._s[3496]! } - public var NotificationsSound_Telegraph: String { return self._s[3497]! } + public var InstantPage_Search: String { return self._s[3496]! } + public var ChatState_WaitingForNetwork: String { return self._s[3497]! } + public var GroupInfo_Sound: String { return self._s[3498]! } + public var NotificationsSound_Telegraph: String { return self._s[3499]! } public func VoiceChat_ParticipantIsSpeaking(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3498]!, self._r[3498]!, [_1]) + return formatWithArgumentRanges(self._s[3500]!, self._r[3500]!, [_1]) } - public var NotificationsSound_Hello: String { return self._s[3499]! } - public var VoiceChat_LeaveConfirmation: String { return self._s[3500]! } - public var UserInfo_LinkForwardTooltip_SavedMessages_One: String { return self._s[3501]! } - public var Passport_FieldIdentityDetailsHelp: String { return self._s[3502]! } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3503]! } - public var Conversation_HoldForVideo: String { return self._s[3504]! } - public var Conversation_PinOlderMessageAlertText: String { return self._s[3505]! } - public var Appearance_ShareTheme: String { return self._s[3506]! } - public var TwoStepAuth_SetupHint: String { return self._s[3507]! } - public var Stats_GrowthTitle: String { return self._s[3510]! } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3511]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[3512]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3513]! } - public var GroupPermission_NoSendMessages: String { return self._s[3516]! } - public var Conversation_SetReminder_Title: String { return self._s[3517]! } - public var Privacy_Calls_CustomHelp: String { return self._s[3518]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3519]! } + public var NotificationsSound_Hello: String { return self._s[3501]! } + public var VoiceChat_LeaveConfirmation: String { return self._s[3502]! } + public var UserInfo_LinkForwardTooltip_SavedMessages_One: String { return self._s[3503]! } + public var Passport_FieldIdentityDetailsHelp: String { return self._s[3504]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3505]! } + public var Conversation_HoldForVideo: String { return self._s[3506]! } + public var Conversation_PinOlderMessageAlertText: String { return self._s[3507]! } + public var Appearance_ShareTheme: String { return self._s[3508]! } + public var TwoStepAuth_SetupHint: String { return self._s[3509]! } + public var Stats_GrowthTitle: String { return self._s[3512]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3513]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[3514]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3515]! } + public var GroupPermission_NoSendMessages: String { return self._s[3518]! } + public var Conversation_SetReminder_Title: String { return self._s[3519]! } + public var Privacy_Calls_CustomHelp: String { return self._s[3520]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3521]! } public func ClearCache_StorageTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3520]!, self._r[3520]!, [_0]) + return formatWithArgumentRanges(self._s[3522]!, self._r[3522]!, [_0]) } - public var InviteLinks_InviteLinkExpired: String { return self._s[3522]! } - public var Undo_SecretChatDeleted: String { return self._s[3523]! } - public var PhotoEditor_ContrastTool: String { return self._s[3524]! } - public var Privacy_Forwards: String { return self._s[3525]! } - public var AuthSessions_LoggedInWithTelegram: String { return self._s[3526]! } - public var KeyCommand_SendMessage: String { return self._s[3528]! } - public var Conversation_PrivateMessageLinkCopiedLong: String { return self._s[3529]! } + public var InviteLinks_InviteLinkExpired: String { return self._s[3524]! } + public var Undo_SecretChatDeleted: String { return self._s[3525]! } + public var PhotoEditor_ContrastTool: String { return self._s[3526]! } + public var Privacy_Forwards: String { return self._s[3527]! } + public var AuthSessions_LoggedInWithTelegram: String { return self._s[3528]! } + public var KeyCommand_SendMessage: String { return self._s[3530]! } + public var Conversation_PrivateMessageLinkCopiedLong: String { return self._s[3531]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3530]!, self._r[3530]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3532]!, self._r[3532]!, [_1, _2]) } - public var VoiceChat_VideoPaused: String { return self._s[3531]! } - public var GroupPermission_NoSendGifs: String { return self._s[3532]! } + public var VoiceChat_VideoPaused: String { return self._s[3533]! } + public var GroupPermission_NoSendGifs: String { return self._s[3534]! } public func Notification_VoiceChatEndedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3533]!, self._r[3533]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3535]!, self._r[3535]!, [_1, _2]) } - public var Notification_MessageLifetime2s: String { return self._s[3534]! } - public var Message_Theme: String { return self._s[3535]! } - public var Conversation_Dice_u1F3AF: String { return self._s[3538]! } + public var Notification_MessageLifetime2s: String { return self._s[3536]! } + public var Message_Theme: String { return self._s[3537]! } + public var Conversation_Dice_u1F3AF: String { return self._s[3540]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3539]!, self._r[3539]!, [_0]) + return formatWithArgumentRanges(self._s[3541]!, self._r[3541]!, [_0]) } - public var Group_UpgradeNoticeHeader: String { return self._s[3541]! } - public var PeerInfo_BioExpand: String { return self._s[3542]! } - public var Passport_DeletePersonalDetails: String { return self._s[3543]! } - public var Widget_NoUsers: String { return self._s[3544]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[3545]! } - public var VoiceChat_VideoPreviewDescription: String { return self._s[3546]! } - public var Login_TermsOfServiceDecline: String { return self._s[3547]! } - public var VoiceChat_UnmuteSuggestion: String { return self._s[3548]! } - public var CreatePoll_QuizTip: String { return self._s[3550]! } - public var Watch_LastSeen_WithinAWeek: String { return self._s[3551]! } - public var MessagePoll_SubmitVote: String { return self._s[3553]! } - public var ChatSettings_AutoDownloadEnabled: String { return self._s[3554]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[3555]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3556]! } - public var Conversation_UpdateTelegram: String { return self._s[3557]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3543]! } + public var PeerInfo_BioExpand: String { return self._s[3544]! } + public var Passport_DeletePersonalDetails: String { return self._s[3545]! } + public var Widget_NoUsers: String { return self._s[3546]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[3547]! } + public var VoiceChat_VideoPreviewDescription: String { return self._s[3548]! } + public var Login_TermsOfServiceDecline: String { return self._s[3549]! } + public var VoiceChat_UnmuteSuggestion: String { return self._s[3550]! } + public var CreatePoll_QuizTip: String { return self._s[3552]! } + public var VoiceChat_VideoPreviewBackCamera: String { return self._s[3553]! } + public var Watch_LastSeen_WithinAWeek: String { return self._s[3554]! } + public var MessagePoll_SubmitVote: String { return self._s[3556]! } + public var ChatSettings_AutoDownloadEnabled: String { return self._s[3557]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[3558]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3559]! } + public var Conversation_UpdateTelegram: String { return self._s[3560]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3558]!, self._r[3558]!, [_0]) + return formatWithArgumentRanges(self._s[3561]!, self._r[3561]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3559]! } - public var CallSettings_Always: String { return self._s[3560]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[3561]! } - public var VoiceChat_MutedByAdminHelp: String { return self._s[3562]! } - public var Login_TermsOfServiceHeader: String { return self._s[3563]! } - public var KeyCommand_ChatInfo: String { return self._s[3564]! } - public var MessagePoll_LabelPoll: String { return self._s[3565]! } - public var Paint_Clear: String { return self._s[3566]! } - public var PeerInfo_ButtonMute: String { return self._s[3567]! } - public var LastSeen_WithinAWeek: String { return self._s[3568]! } - public var Invitation_JoinVoiceChatAsSpeaker: String { return self._s[3569]! } - public var Passport_Identity_FrontSide: String { return self._s[3570]! } - public var Stickers_GroupStickers: String { return self._s[3571]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3572]! } + public var UserInfo_About_Placeholder: String { return self._s[3562]! } + public var CallSettings_Always: String { return self._s[3563]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[3564]! } + public var VoiceChat_MutedByAdminHelp: String { return self._s[3565]! } + public var Login_TermsOfServiceHeader: String { return self._s[3566]! } + public var KeyCommand_ChatInfo: String { return self._s[3567]! } + public var MessagePoll_LabelPoll: String { return self._s[3568]! } + public var Paint_Clear: String { return self._s[3569]! } + public var PeerInfo_ButtonMute: String { return self._s[3570]! } + public var LastSeen_WithinAWeek: String { return self._s[3571]! } + public var Invitation_JoinVoiceChatAsSpeaker: String { return self._s[3572]! } + public var Passport_Identity_FrontSide: String { return self._s[3573]! } + public var Stickers_GroupStickers: String { return self._s[3574]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3575]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3573]!, self._r[3573]!, [_0]) + return formatWithArgumentRanges(self._s[3576]!, self._r[3576]!, [_0]) } - public var VoiceOver_BotCommands: String { return self._s[3574]! } + public var VoiceOver_BotCommands: String { return self._s[3577]! } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3577]!, self._r[3577]!, [_1]) + return formatWithArgumentRanges(self._s[3580]!, self._r[3580]!, [_1]) } - public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3578]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[3579]! } - public var InviteLink_ContextDelete: String { return self._s[3580]! } + public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3581]! } + public var Chat_MultipleTextMessagesDisabled: String { return self._s[3582]! } + public var InviteLink_ContextDelete: String { return self._s[3583]! } public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3581]!, self._r[3581]!, [_0]) + return formatWithArgumentRanges(self._s[3584]!, self._r[3584]!, [_0]) } - public var WebSearch_SearchNoResults: String { return self._s[3583]! } - public var Channel_DiscussionGroup_Create: String { return self._s[3584]! } - public var Passport_Language_es: String { return self._s[3585]! } - public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3586]! } - public var Map_LiveLocationShowAll: String { return self._s[3587]! } - public var Cache_MaximumCacheSizeHelp: String { return self._s[3589]! } - public var Map_OpenInGoogleMaps: String { return self._s[3590]! } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3592]! } - public var EditTheme_Create_BottomInfo: String { return self._s[3593]! } - public var PhotoEditor_BlurToolLinear: String { return self._s[3594]! } + public var WebSearch_SearchNoResults: String { return self._s[3586]! } + public var Channel_DiscussionGroup_Create: String { return self._s[3587]! } + public var Passport_Language_es: String { return self._s[3588]! } + public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3589]! } + public var Map_LiveLocationShowAll: String { return self._s[3590]! } + public var Cache_MaximumCacheSizeHelp: String { return self._s[3592]! } + public var Map_OpenInGoogleMaps: String { return self._s[3593]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3595]! } + public var EditTheme_Create_BottomInfo: String { return self._s[3596]! } + public var PhotoEditor_BlurToolLinear: String { return self._s[3597]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3595]!, self._r[3595]!, [_0]) + return formatWithArgumentRanges(self._s[3598]!, self._r[3598]!, [_0]) } - public var Passport_Phone_Delete: String { return self._s[3596]! } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3597]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[3598]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3599]! } + public var Passport_Phone_Delete: String { return self._s[3599]! } + public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3600]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[3601]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3602]! } public func EncryptionKey_Description(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3600]!, self._r[3600]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3603]!, self._r[3603]!, [_1, _2]) } - public var LogoutOptions_LogOutInfo: String { return self._s[3601]! } - public var Cache_ByPeerHeader: String { return self._s[3603]! } - public var Username_InvalidCharacters: String { return self._s[3604]! } - public var Checkout_ShippingAddress: String { return self._s[3606]! } + public var LogoutOptions_LogOutInfo: String { return self._s[3604]! } + public var Cache_ByPeerHeader: String { return self._s[3606]! } + public var Username_InvalidCharacters: String { return self._s[3607]! } + public var Checkout_ShippingAddress: String { return self._s[3609]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3607]!, self._r[3607]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[3610]!, self._r[3610]!, [_1, _2, _3, _4]) } - public var VoiceChat_LeaveAndEndVoiceChat: String { return self._s[3609]! } - public var Conversation_AddContact: String { return self._s[3610]! } - public var Passport_Address_EditUtilityBill: String { return self._s[3611]! } - public var InviteLink_ContextGetQRCode: String { return self._s[3612]! } - public var Conversation_ChecksTooltip_Delivered: String { return self._s[3614]! } + public var VoiceChat_LeaveAndEndVoiceChat: String { return self._s[3612]! } + public var Conversation_AddContact: String { return self._s[3613]! } + public var Passport_Address_EditUtilityBill: String { return self._s[3614]! } + public var InviteLink_ContextGetQRCode: String { return self._s[3615]! } + public var Conversation_ChecksTooltip_Delivered: String { return self._s[3617]! } public func Channel_AdminLog_MessageAddedAdminNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3615]!, self._r[3615]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3618]!, self._r[3618]!, [_1, _2]) } - public var Message_Video: String { return self._s[3616]! } + public var Message_Video: String { return self._s[3619]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3617]!, self._r[3617]!, [_0]) + return formatWithArgumentRanges(self._s[3620]!, self._r[3620]!, [_0]) } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3618]!, self._r[3618]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[3621]!, self._r[3621]!, ["\(_0)"]) } - public var InviteLink_ReactivateLink: String { return self._s[3619]! } - public var Passport_Language_km: String { return self._s[3621]! } + public var InviteLink_ReactivateLink: String { return self._s[3622]! } + public var Passport_Language_km: String { return self._s[3624]! } public func PUSH_MESSAGE_CHANNEL_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3622]!, self._r[3622]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3625]!, self._r[3625]!, [_1, _2, _3]) } - public var EmptyGroupInfo_Line4: String { return self._s[3623]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3625]! } - public var Notification_CallCanceledShort: String { return self._s[3626]! } - public var PhotoEditor_FadeTool: String { return self._s[3627]! } - public var Group_PublicLink_Info: String { return self._s[3628]! } - public var Contacts_DeselectAll: String { return self._s[3629]! } - public var Conversation_Moderate_Delete: String { return self._s[3631]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3632]! } - public var NotificationsSound_Note: String { return self._s[3635]! } + public var EmptyGroupInfo_Line4: String { return self._s[3626]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3628]! } + public var Notification_CallCanceledShort: String { return self._s[3629]! } + public var PhotoEditor_FadeTool: String { return self._s[3630]! } + public var Group_PublicLink_Info: String { return self._s[3631]! } + public var Contacts_DeselectAll: String { return self._s[3632]! } + public var Conversation_Moderate_Delete: String { return self._s[3634]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3635]! } + public var NotificationsSound_Note: String { return self._s[3638]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3636]!, self._r[3636]!, [_0]) + return formatWithArgumentRanges(self._s[3639]!, self._r[3639]!, [_0]) } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3637]! } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3639]! } - public var DialogList_SearchSectionGlobal: String { return self._s[3640]! } - public var AccessDenied_Settings: String { return self._s[3641]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3642]! } - public var AuthSessions_EmptyTitle: String { return self._s[3643]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3644]! } - public var GroupInfo_GroupType: String { return self._s[3645]! } - public var Calls_Missed: String { return self._s[3646]! } - public var Contacts_VoiceOver_AddContact: String { return self._s[3647]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3649]! } - public var Passport_Language_uz: String { return self._s[3650]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3651]! } - public var PhotoEditor_BlurToolPortrait: String { return self._s[3652]! } - public var VoiceChat_CreateNewVoiceChatStartNow: String { return self._s[3653]! } - public var Map_ChooseLocationTitle: String { return self._s[3654]! } - public var Checkout_EnterPassword: String { return self._s[3655]! } - public var GroupInfo_ConvertToSupergroup: String { return self._s[3656]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3657]! } - public var NetworkUsageSettings_Title: String { return self._s[3658]! } - public var Location_ProximityAlertCancelled: String { return self._s[3659]! } - public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3660]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[3661]! } - public var Compose_NewChannel: String { return self._s[3662]! } - public var Privacy_PaymentsClearInfo: String { return self._s[3664]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3640]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3642]! } + public var DialogList_SearchSectionGlobal: String { return self._s[3643]! } + public var AccessDenied_Settings: String { return self._s[3644]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3645]! } + public var AuthSessions_EmptyTitle: String { return self._s[3646]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3647]! } + public var GroupInfo_GroupType: String { return self._s[3648]! } + public var Calls_Missed: String { return self._s[3649]! } + public var Contacts_VoiceOver_AddContact: String { return self._s[3650]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3652]! } + public var Passport_Language_uz: String { return self._s[3653]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3654]! } + public var PhotoEditor_BlurToolPortrait: String { return self._s[3655]! } + public var VoiceChat_CreateNewVoiceChatStartNow: String { return self._s[3656]! } + public var Map_ChooseLocationTitle: String { return self._s[3657]! } + public var Checkout_EnterPassword: String { return self._s[3658]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[3659]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3660]! } + public var NetworkUsageSettings_Title: String { return self._s[3661]! } + public var Location_ProximityAlertCancelled: String { return self._s[3662]! } + public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3663]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[3664]! } + public var Compose_NewChannel: String { return self._s[3665]! } + public var Privacy_PaymentsClearInfo: String { return self._s[3667]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3665]!, self._r[3665]!, [_1]) + return formatWithArgumentRanges(self._s[3668]!, self._r[3668]!, [_1]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3666]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3667]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[3670]! } - public var WallpaperSearch_ColorBrown: String { return self._s[3671]! } - public var Appearance_AppIconDefault: String { return self._s[3672]! } - public var StickerSettings_ContextInfo: String { return self._s[3675]! } - public var Channel_AddBotErrorNoRights: String { return self._s[3676]! } - public var Passport_FieldPhone: String { return self._s[3678]! } - public var Contacts_PermissionsTitle: String { return self._s[3679]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3680]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3669]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3670]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[3673]! } + public var WallpaperSearch_ColorBrown: String { return self._s[3674]! } + public var Appearance_AppIconDefault: String { return self._s[3675]! } + public var StickerSettings_ContextInfo: String { return self._s[3678]! } + public var Channel_AddBotErrorNoRights: String { return self._s[3679]! } + public var Passport_FieldPhone: String { return self._s[3681]! } + public var Contacts_PermissionsTitle: String { return self._s[3682]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3683]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3681]!, self._r[3681]!, [_0]) + return formatWithArgumentRanges(self._s[3684]!, self._r[3684]!, [_0]) } - public var Bot_Unblock: String { return self._s[3682]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[3683]! } - public var InviteLink_InviteLinkCopiedText: String { return self._s[3684]! } - public var Passport_PasswordHelp: String { return self._s[3685]! } - public var TwoFactorSetup_PasswordRecovery_PlaceholderConfirmPassword: String { return self._s[3686]! } - public var Watch_Conversation_UserInfo: String { return self._s[3687]! } + public var Bot_Unblock: String { return self._s[3685]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[3686]! } + public var InviteLink_InviteLinkCopiedText: String { return self._s[3687]! } + public var Passport_PasswordHelp: String { return self._s[3688]! } + public var TwoFactorSetup_PasswordRecovery_PlaceholderConfirmPassword: String { return self._s[3689]! } + public var Watch_Conversation_UserInfo: String { return self._s[3690]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3691]!, self._r[3691]!, [_0]) + return formatWithArgumentRanges(self._s[3694]!, self._r[3694]!, [_0]) } - public var State_Connecting: String { return self._s[3693]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3694]! } - public var TextFormat_AddLinkPlaceholder: String { return self._s[3695]! } - public var Conversation_Dice_u1F3B2: String { return self._s[3696]! } + public var State_Connecting: String { return self._s[3696]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3697]! } + public var TextFormat_AddLinkPlaceholder: String { return self._s[3698]! } + public var Conversation_Dice_u1F3B2: String { return self._s[3699]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3697]!, self._r[3697]!, [_0]) + return formatWithArgumentRanges(self._s[3700]!, self._r[3700]!, [_0]) } - public var Conversation_SendingOptionsTooltip: String { return self._s[3698]! } - public var ChatList_UndoArchiveTitle: String { return self._s[3699]! } - public var ChatList_EmptyChatListNewMessage: String { return self._s[3700]! } - public var WallpaperSearch_ColorGreen: String { return self._s[3702]! } - public var PhotoEditor_BlurToolOff: String { return self._s[3703]! } - public var Conversation_AutoremoveOff: String { return self._s[3704]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[3705]! } - public var Weekday_Saturday: String { return self._s[3706]! } - public var DialogList_Unread: String { return self._s[3707]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3708]! } - public var Stats_GroupPosters: String { return self._s[3709]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[3701]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3702]! } + public var ChatList_EmptyChatListNewMessage: String { return self._s[3703]! } + public var WallpaperSearch_ColorGreen: String { return self._s[3705]! } + public var PhotoEditor_BlurToolOff: String { return self._s[3706]! } + public var Conversation_AutoremoveOff: String { return self._s[3707]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[3708]! } + public var Weekday_Saturday: String { return self._s[3709]! } + public var DialogList_Unread: String { return self._s[3710]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3711]! } + public var Stats_GroupPosters: String { return self._s[3712]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3710]!, self._r[3710]!, [_1]) + return formatWithArgumentRanges(self._s[3713]!, self._r[3713]!, [_1]) } - public var Conversation_AlsoClearCacheTitle: String { return self._s[3711]! } + public var Conversation_AlsoClearCacheTitle: String { return self._s[3714]! } public func Conversation_ForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3712]!, self._r[3712]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3715]!, self._r[3715]!, [_0, _1]) } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3715]!, self._r[3715]!, [_0]) + return formatWithArgumentRanges(self._s[3718]!, self._r[3718]!, [_0]) } - public var ReportPeer_ReasonChildAbuse: String { return self._s[3716]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[3719]! } public func Channel_AdminLog_MessageUnkickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3717]!, self._r[3717]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3720]!, self._r[3720]!, [_1, _2]) } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[3718]! } - public var Conversation_EmailCopied: String { return self._s[3720]! } - public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3721]! } - public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3722]! } - public var Call_VoiceOver_VoiceCallCanceled: String { return self._s[3723]! } - public var VoiceChat_LateBy: String { return self._s[3724]! } - public var Passport_Language_dv: String { return self._s[3725]! } - public var TwoFactorSetup_PasswordRecovery_Text: String { return self._s[3726]! } - public var GroupPermission_AddSuccess: String { return self._s[3728]! } - public var Passport_Email_Help: String { return self._s[3729]! } - public var Call_ReportPlaceholder: String { return self._s[3730]! } - public var CreatePoll_AddOption: String { return self._s[3731]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3733]! } - public var PeerInfo_ButtonLeave: String { return self._s[3734]! } - public var PhotoEditor_TiltShift: String { return self._s[3737]! } - public var SecretGif_Title: String { return self._s[3739]! } - public var GroupInfo_InviteLinks: String { return self._s[3740]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[3741]! } - public var SocksProxySetup_Connecting: String { return self._s[3743]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3744]! } - public var ContactInfo_PhoneLabelWork: String { return self._s[3745]! } - public var Stats_GroupTopHoursTitle: String { return self._s[3746]! } - public var Compose_NewMessage: String { return self._s[3747]! } - public var VoiceOver_Common_SwitchHint: String { return self._s[3748]! } - public var NotificationsSound_Synth: String { return self._s[3749]! } - public var ChatImport_UserErrorNotMutual: String { return self._s[3750]! } - public var Conversation_FileOpenIn: String { return self._s[3751]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[3752]! } - public var UserInfo_SendMessage: String { return self._s[3753]! } - public var Checkout_PayWithFaceId: String { return self._s[3754]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[3721]! } + public var Conversation_EmailCopied: String { return self._s[3723]! } + public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3724]! } + public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3725]! } + public var Call_VoiceOver_VoiceCallCanceled: String { return self._s[3726]! } + public var VoiceChat_LateBy: String { return self._s[3727]! } + public var Passport_Language_dv: String { return self._s[3728]! } + public var TwoFactorSetup_PasswordRecovery_Text: String { return self._s[3729]! } + public var GroupPermission_AddSuccess: String { return self._s[3731]! } + public var Passport_Email_Help: String { return self._s[3732]! } + public var Call_ReportPlaceholder: String { return self._s[3733]! } + public var CreatePoll_AddOption: String { return self._s[3734]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3736]! } + public var PeerInfo_ButtonLeave: String { return self._s[3737]! } + public var PhotoEditor_TiltShift: String { return self._s[3740]! } + public var SecretGif_Title: String { return self._s[3742]! } + public var GroupInfo_InviteLinks: String { return self._s[3743]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[3744]! } + public var SocksProxySetup_Connecting: String { return self._s[3746]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3747]! } + public var ContactInfo_PhoneLabelWork: String { return self._s[3748]! } + public var Stats_GroupTopHoursTitle: String { return self._s[3749]! } + public var Compose_NewMessage: String { return self._s[3750]! } + public var VoiceOver_Common_SwitchHint: String { return self._s[3751]! } + public var NotificationsSound_Synth: String { return self._s[3752]! } + public var ChatImport_UserErrorNotMutual: String { return self._s[3753]! } + public var Conversation_FileOpenIn: String { return self._s[3754]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[3755]! } + public var UserInfo_SendMessage: String { return self._s[3756]! } + public var Checkout_PayWithFaceId: String { return self._s[3757]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3755]!, self._r[3755]!, [_0]) + return formatWithArgumentRanges(self._s[3758]!, self._r[3758]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[3756]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3757]! } - public var Conversation_ViewChannel: String { return self._s[3758]! } + public var TextFormat_Strikethrough: String { return self._s[3759]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3760]! } + public var Conversation_ViewChannel: String { return self._s[3761]! } public func Message_ForwardedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3759]!, self._r[3759]!, [_0]) + return formatWithArgumentRanges(self._s[3762]!, self._r[3762]!, [_0]) } - public var Channel_Stickers_Placeholder: String { return self._s[3760]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3761]! } - public var Message_ScamAccount: String { return self._s[3762]! } - public var Camera_FlashAuto: String { return self._s[3763]! } - public var Conversation_EncryptedDescription1: String { return self._s[3764]! } - public var LocalGroup_Text: String { return self._s[3765]! } - public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3766]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[3767]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[3768]! } - public var Conversation_EncryptedDescription2: String { return self._s[3769]! } - public var Conversation_CancelForwardText: String { return self._s[3770]! } - public var Notification_GroupActivated: String { return self._s[3771]! } - public var LastSeen_Lately: String { return self._s[3772]! } - public var Conversation_EncryptedDescription3: String { return self._s[3773]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3774]! } - public var TwoStepAuth_RecoveryUnavailableResetText: String { return self._s[3775]! } - public var Conversation_SwipeToReplyHintText: String { return self._s[3776]! } - public var Conversation_EncryptedDescription4: String { return self._s[3777]! } - public var SharedMedia_EmptyTitle: String { return self._s[3778]! } - public var Appearance_CreateTheme: String { return self._s[3780]! } - public var Stats_SharesPerPost: String { return self._s[3781]! } - public var Contacts_TabTitle: String { return self._s[3782]! } - public var Weekday_ShortThursday: String { return self._s[3783]! } - public var MessageTimer_Forever: String { return self._s[3784]! } - public var ChatListFolder_CategoryArchived: String { return self._s[3785]! } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3786]! } - public var EditTheme_Create_TopInfo: String { return self._s[3788]! } - public var TwoFactorRemember_Forgot: String { return self._s[3789]! } + public var Channel_Stickers_Placeholder: String { return self._s[3763]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3764]! } + public var Message_ScamAccount: String { return self._s[3765]! } + public var Camera_FlashAuto: String { return self._s[3766]! } + public var Conversation_EncryptedDescription1: String { return self._s[3767]! } + public var LocalGroup_Text: String { return self._s[3768]! } + public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3769]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[3770]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[3771]! } + public var Conversation_EncryptedDescription2: String { return self._s[3772]! } + public var Conversation_CancelForwardText: String { return self._s[3773]! } + public var Notification_GroupActivated: String { return self._s[3774]! } + public var LastSeen_Lately: String { return self._s[3775]! } + public var Conversation_EncryptedDescription3: String { return self._s[3776]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3777]! } + public var TwoStepAuth_RecoveryUnavailableResetText: String { return self._s[3778]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3779]! } + public var Conversation_EncryptedDescription4: String { return self._s[3780]! } + public var SharedMedia_EmptyTitle: String { return self._s[3781]! } + public var Appearance_CreateTheme: String { return self._s[3783]! } + public var Stats_SharesPerPost: String { return self._s[3784]! } + public var Contacts_TabTitle: String { return self._s[3785]! } + public var Weekday_ShortThursday: String { return self._s[3786]! } + public var MessageTimer_Forever: String { return self._s[3787]! } + public var ChatListFolder_CategoryArchived: String { return self._s[3788]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3789]! } + public var EditTheme_Create_TopInfo: String { return self._s[3791]! } + public var TwoFactorRemember_Forgot: String { return self._s[3792]! } public func VoiceOver_ChatList_MessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3790]!, self._r[3790]!, [_0]) + return formatWithArgumentRanges(self._s[3793]!, self._r[3793]!, [_0]) } - public var Month_GenDecember: String { return self._s[3791]! } - public var EnterPasscode_EnterPasscode: String { return self._s[3792]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3793]! } - public var PeopleNearby_CreateGroup: String { return self._s[3795]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3796]! } - public var Paint_ClearConfirm: String { return self._s[3797]! } - public var ChatList_ReadAll: String { return self._s[3798]! } - public var ChatSettings_IntentsSettings: String { return self._s[3799]! } - public var Passport_PassportInformation: String { return self._s[3801]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3803]! } - public var Location_ProximityNotification_DistanceMI: String { return self._s[3806]! } - public var PhotoEditor_ExposureTool: String { return self._s[3807]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3808]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[3809]! } - public var Stats_GroupTopPoster_History: String { return self._s[3810]! } - public var UserInfo_AddPhone: String { return self._s[3811]! } - public var Media_SendWithTimer: String { return self._s[3813]! } - public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3814]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3815]! } - public var GroupInfo_GroupHistoryShort: String { return self._s[3816]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3817]! } - public var ChatList_Context_Unarchive: String { return self._s[3819]! } + public var Month_GenDecember: String { return self._s[3794]! } + public var EnterPasscode_EnterPasscode: String { return self._s[3795]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3796]! } + public var PeopleNearby_CreateGroup: String { return self._s[3798]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3799]! } + public var Paint_ClearConfirm: String { return self._s[3800]! } + public var ChatList_ReadAll: String { return self._s[3801]! } + public var ChatSettings_IntentsSettings: String { return self._s[3802]! } + public var Passport_PassportInformation: String { return self._s[3804]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3806]! } + public var Location_ProximityNotification_DistanceMI: String { return self._s[3809]! } + public var PhotoEditor_ExposureTool: String { return self._s[3810]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3811]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[3812]! } + public var Stats_GroupTopPoster_History: String { return self._s[3813]! } + public var UserInfo_AddPhone: String { return self._s[3814]! } + public var Media_SendWithTimer: String { return self._s[3816]! } + public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3817]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3818]! } + public var GroupInfo_GroupHistoryShort: String { return self._s[3819]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3820]! } + public var ChatList_Context_Unarchive: String { return self._s[3822]! } public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3820]!, self._r[3820]!, [_0]) + return formatWithArgumentRanges(self._s[3823]!, self._r[3823]!, [_0]) } - public var BlockedUsers_Title: String { return self._s[3822]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[3823]! } - public var Media_ShareThisPhoto: String { return self._s[3824]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3825]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[3826]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3830]! } - public var CallFeedback_ReasonNoise: String { return self._s[3832]! } - public var WebBrowser_Title: String { return self._s[3833]! } + public var BlockedUsers_Title: String { return self._s[3825]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[3826]! } + public var Media_ShareThisPhoto: String { return self._s[3827]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3828]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[3829]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3833]! } + public var CallFeedback_ReasonNoise: String { return self._s[3835]! } + public var WebBrowser_Title: String { return self._s[3836]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3834]!, self._r[3834]!, [_0]) + return formatWithArgumentRanges(self._s[3837]!, self._r[3837]!, [_0]) } - public var Notification_MessageLifetime5s: String { return self._s[3836]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3837]! } - public var Profile_MessageLifetime1m: String { return self._s[3839]! } - public var Passport_ScanPassport: String { return self._s[3840]! } - public var Stats_LoadingTitle: String { return self._s[3841]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3843]! } - public var Permissions_NotificationsAllow_v0: String { return self._s[3844]! } - public var Login_InvalidFirstNameError: String { return self._s[3845]! } - public var Undo_ChatCleared: String { return self._s[3847]! } + public var Notification_MessageLifetime5s: String { return self._s[3839]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3840]! } + public var Profile_MessageLifetime1m: String { return self._s[3842]! } + public var Passport_ScanPassport: String { return self._s[3843]! } + public var Stats_LoadingTitle: String { return self._s[3844]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3846]! } + public var Permissions_NotificationsAllow_v0: String { return self._s[3847]! } + public var Login_InvalidFirstNameError: String { return self._s[3848]! } + public var Undo_ChatCleared: String { return self._s[3850]! } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3849]!, self._r[3849]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3852]!, self._r[3852]!, [_1, _2]) } - public var Conversation_PinMessageAlertPin: String { return self._s[3850]! } + public var Conversation_PinMessageAlertPin: String { return self._s[3853]! } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3851]!, self._r[3851]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[3854]!, self._r[3854]!, [_1, _2, _3, _4, _5]) } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3852]!, self._r[3852]!, [_1]) + return formatWithArgumentRanges(self._s[3855]!, self._r[3855]!, [_1]) } - public var Share_MultipleMessagesDisabled: String { return self._s[3853]! } - public var TwoStepAuth_EmailInvalid: String { return self._s[3854]! } - public var EnterPasscode_ChangeTitle: String { return self._s[3856]! } - public var VoiceChat_InviteLink_Speaker: String { return self._s[3857]! } - public var CallSettings_RecentCalls: String { return self._s[3858]! } - public var GroupInfo_DeactivatedStatus: String { return self._s[3859]! } - public var AuthSessions_OtherSessions: String { return self._s[3860]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3861]! } - public var Tour_Text5: String { return self._s[3862]! } - public var Login_PadPhoneHelp: String { return self._s[3863]! } - public var Wallpaper_PhotoLibrary: String { return self._s[3866]! } - public var Conversation_ViewGroup: String { return self._s[3867]! } - public var PeopleNearby_MakeVisibleTitle: String { return self._s[3869]! } - public var VoiceOver_Chat_YourContact: String { return self._s[3870]! } - public var Watch_AuthRequired: String { return self._s[3871]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3873]! } - public var Conversation_ForwardContacts: String { return self._s[3874]! } - public var Conversation_InputTextPlaceholder: String { return self._s[3875]! } + public var Share_MultipleMessagesDisabled: String { return self._s[3856]! } + public var TwoStepAuth_EmailInvalid: String { return self._s[3857]! } + public var EnterPasscode_ChangeTitle: String { return self._s[3859]! } + public var VoiceChat_InviteLink_Speaker: String { return self._s[3860]! } + public var CallSettings_RecentCalls: String { return self._s[3861]! } + public var GroupInfo_DeactivatedStatus: String { return self._s[3862]! } + public var AuthSessions_OtherSessions: String { return self._s[3863]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3864]! } + public var Tour_Text5: String { return self._s[3865]! } + public var Login_PadPhoneHelp: String { return self._s[3866]! } + public var Wallpaper_PhotoLibrary: String { return self._s[3869]! } + public var Conversation_ViewGroup: String { return self._s[3870]! } + public var PeopleNearby_MakeVisibleTitle: String { return self._s[3872]! } + public var VoiceOver_Chat_YourContact: String { return self._s[3873]! } + public var Watch_AuthRequired: String { return self._s[3874]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3876]! } + public var Conversation_ForwardContacts: String { return self._s[3877]! } + public var Conversation_InputTextPlaceholder: String { return self._s[3878]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3876]!, self._r[3876]!, [_1]) + return formatWithArgumentRanges(self._s[3879]!, self._r[3879]!, [_1]) } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3877]!, self._r[3877]!, [_0]) + return formatWithArgumentRanges(self._s[3880]!, self._r[3880]!, [_0]) } - public var Channel_Setup_TypePrivate: String { return self._s[3878]! } + public var Channel_Setup_TypePrivate: String { return self._s[3881]! } public func Conversation_NoticeInvitedByInChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3879]!, self._r[3879]!, [_0]) + return formatWithArgumentRanges(self._s[3882]!, self._r[3882]!, [_0]) } - public var Checkout_OptionalTipItemPlaceholder: String { return self._s[3880]! } - public var InviteLink_Create_TimeLimitExpiryDate: String { return self._s[3881]! } - public var InfoPlist_NSSiriUsageDescription: String { return self._s[3882]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[3883]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[3884]! } - public var UserInfo_StartSecretChatStart: String { return self._s[3885]! } + public var Checkout_OptionalTipItemPlaceholder: String { return self._s[3883]! } + public var InviteLink_Create_TimeLimitExpiryDate: String { return self._s[3884]! } + public var InfoPlist_NSSiriUsageDescription: String { return self._s[3885]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[3886]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[3887]! } + public var UserInfo_StartSecretChatStart: String { return self._s[3888]! } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3886]!, self._r[3886]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3889]!, self._r[3889]!, [_1, _2]) } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3887]!, self._r[3887]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[3890]!, self._r[3890]!, [_0, _1, _2]) } public func Conversation_ForwardTooltip_TwoChats_Many(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3888]!, self._r[3888]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3891]!, self._r[3891]!, [_0, _1]) } - public var PrivacySettings_AutoArchiveTitle: String { return self._s[3889]! } - public var GroupInfo_InviteLink_LinkSection: String { return self._s[3890]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3891]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[3893]! } - public var NewContact_Title: String { return self._s[3896]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3897]! } - public var VoiceChat_StatusSpeaking: String { return self._s[3898]! } - public var Notifications_PermissionsKeepDisabled: String { return self._s[3899]! } + public var PrivacySettings_AutoArchiveTitle: String { return self._s[3892]! } + public var GroupInfo_InviteLink_LinkSection: String { return self._s[3893]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3894]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[3896]! } + public var NewContact_Title: String { return self._s[3899]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3900]! } + public var VoiceChat_StatusSpeaking: String { return self._s[3901]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[3902]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3900]!, self._r[3900]!, [_0]) + return formatWithArgumentRanges(self._s[3903]!, self._r[3903]!, [_0]) } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3901]!, self._r[3901]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3904]!, self._r[3904]!, [_0, _1]) } - public var Chat_SlowmodeTooltipPending: String { return self._s[3902]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[3905]! } public func Time_MediumDate(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3904]!, self._r[3904]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3907]!, self._r[3907]!, [_1, _2]) } - public var ContactInfo_PhoneLabelHome: String { return self._s[3905]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3906]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3907]! } - public var Conversation_MessageEditedLabel: String { return self._s[3910]! } - public var CallList_ActiveVoiceChatsHeader: String { return self._s[3911]! } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3912]! } - public var ChatList_Context_AddToContacts: String { return self._s[3913]! } - public var Passport_Language_is: String { return self._s[3914]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[3915]! } - public var PhotoEditor_CurvesBlue: String { return self._s[3916]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[3908]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3909]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3910]! } + public var Conversation_MessageEditedLabel: String { return self._s[3913]! } + public var CallList_ActiveVoiceChatsHeader: String { return self._s[3914]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3915]! } + public var ChatList_Context_AddToContacts: String { return self._s[3916]! } + public var Passport_Language_is: String { return self._s[3917]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[3918]! } + public var PhotoEditor_CurvesBlue: String { return self._s[3919]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3917]!, self._r[3917]!, [_0]) + return formatWithArgumentRanges(self._s[3920]!, self._r[3920]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[3918]! } - public var Login_SmsRequestState3: String { return self._s[3919]! } - public var Message_PinnedVideoMessage: String { return self._s[3920]! } - public var SharedMedia_TitleLink: String { return self._s[3921]! } - public var Passport_FieldIdentity: String { return self._s[3922]! } - public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3924]! } + public var SocksProxySetup_Username: String { return self._s[3921]! } + public var Login_SmsRequestState3: String { return self._s[3922]! } + public var Message_PinnedVideoMessage: String { return self._s[3923]! } + public var SharedMedia_TitleLink: String { return self._s[3924]! } + public var Passport_FieldIdentity: String { return self._s[3925]! } + public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3927]! } public func Conversation_EncryptedPlaceholderTitleOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3927]!, self._r[3927]!, [_0]) + return formatWithArgumentRanges(self._s[3930]!, self._r[3930]!, [_0]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3930]! } - public var ReportSpam_DeleteThisChat: String { return self._s[3931]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3932]! } - public var Passport_Identity_DateOfBirth: String { return self._s[3933]! } - public var Call_StatusIncoming: String { return self._s[3934]! } - public var ChatAdmins_AdminLabel: String { return self._s[3935]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3933]! } + public var ReportSpam_DeleteThisChat: String { return self._s[3934]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3935]! } + public var Passport_Identity_DateOfBirth: String { return self._s[3936]! } + public var Call_StatusIncoming: String { return self._s[3937]! } + public var ChatAdmins_AdminLabel: String { return self._s[3938]! } public func InstantPage_OpenInBrowser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3936]!, self._r[3936]!, [_0]) + return formatWithArgumentRanges(self._s[3939]!, self._r[3939]!, [_0]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3938]!, self._r[3938]!, [_0]) + return formatWithArgumentRanges(self._s[3941]!, self._r[3941]!, [_0]) } - public var Message_PinnedAnimationMessage: String { return self._s[3939]! } - public var VoiceChat_TapToViewCameraVideo: String { return self._s[3940]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[3941]! } - public var Preview_CopyAddress: String { return self._s[3942]! } - public var MediaPlayer_UnknownTrack: String { return self._s[3944]! } - public var Login_CancelSignUpConfirmation: String { return self._s[3945]! } - public var Map_OpenInYandexMaps: String { return self._s[3947]! } + public var Message_PinnedAnimationMessage: String { return self._s[3942]! } + public var VoiceChat_TapToViewCameraVideo: String { return self._s[3943]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[3944]! } + public var Preview_CopyAddress: String { return self._s[3945]! } + public var MediaPlayer_UnknownTrack: String { return self._s[3947]! } + public var Login_CancelSignUpConfirmation: String { return self._s[3948]! } + public var Map_OpenInYandexMaps: String { return self._s[3950]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3950]!, self._r[3950]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3953]!, self._r[3953]!, [_1, _2, _3]) } - public var GroupRemoved_Remove: String { return self._s[3951]! } - public var ChatListFolder_TitleCreate: String { return self._s[3952]! } + public var GroupRemoved_Remove: String { return self._s[3954]! } + public var ChatListFolder_TitleCreate: String { return self._s[3955]! } public func InstantPage_AuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3954]!, self._r[3954]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3957]!, self._r[3957]!, [_1, _2]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[3955]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[3958]! } public func UserInfo_LinkForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3957]!, self._r[3957]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3960]!, self._r[3960]!, [_0, _1]) } - public var Group_UpgradeNoticeText2: String { return self._s[3958]! } - public var Stats_GroupGrowthTitle: String { return self._s[3959]! } - public var CreatePoll_CancelConfirmation: String { return self._s[3962]! } - public var Month_GenOctober: String { return self._s[3963]! } - public var Conversation_TitleCommentsEmpty: String { return self._s[3964]! } - public var Settings_Appearance: String { return self._s[3965]! } + public var Group_UpgradeNoticeText2: String { return self._s[3961]! } + public var Stats_GroupGrowthTitle: String { return self._s[3962]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3965]! } + public var Month_GenOctober: String { return self._s[3966]! } + public var Conversation_TitleCommentsEmpty: String { return self._s[3967]! } + public var Settings_Appearance: String { return self._s[3968]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3966]!, self._r[3966]!, [_0]) + return formatWithArgumentRanges(self._s[3969]!, self._r[3969]!, [_0]) } - public var UserInfo_AddToExisting: String { return self._s[3967]! } - public var Call_PhoneCallInProgressMessage: String { return self._s[3969]! } - public var Map_HomeAndWorkInfo: String { return self._s[3970]! } - public var VoiceChat_ContextAudio: String { return self._s[3971]! } - public var InstantPage_VoiceOver_ResetFontSize: String { return self._s[3972]! } - public var Paint_Arrow: String { return self._s[3973]! } - public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3974]! } + public var UserInfo_AddToExisting: String { return self._s[3970]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3972]! } + public var Map_HomeAndWorkInfo: String { return self._s[3973]! } + public var VoiceChat_ContextAudio: String { return self._s[3974]! } + public var InstantPage_VoiceOver_ResetFontSize: String { return self._s[3975]! } + public var Paint_Arrow: String { return self._s[3976]! } + public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3977]! } public func DialogList_MultipleTypingPair(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3975]!, self._r[3975]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3978]!, self._r[3978]!, [_0, _1]) } - public var CancelResetAccount_Title: String { return self._s[3976]! } - public var NotificationsSound_Circles: String { return self._s[3977]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3978]! } - public var ChatState_Connecting: String { return self._s[3980]! } - public var Profile_MessageLifetime5s: String { return self._s[3981]! } + public var CancelResetAccount_Title: String { return self._s[3979]! } + public var NotificationsSound_Circles: String { return self._s[3980]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3981]! } + public var ChatState_Connecting: String { return self._s[3983]! } + public var Profile_MessageLifetime5s: String { return self._s[3984]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3982]!, self._r[3982]!, [_0]) + return formatWithArgumentRanges(self._s[3985]!, self._r[3985]!, [_0]) } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3983]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3984]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3985]! } - public var Conversation_DefaultRestrictedStickers: String { return self._s[3987]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[3988]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3986]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3987]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3988]! } + public var Conversation_DefaultRestrictedStickers: String { return self._s[3990]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[3991]! } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3989]!, self._r[3989]!, [_0]) + return formatWithArgumentRanges(self._s[3992]!, self._r[3992]!, [_0]) } - public var Passport_Phone_Help: String { return self._s[3990]! } - public var Privacy_ContactsSync: String { return self._s[3991]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3992]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3994]! } - public var Map_SendMyCurrentLocation: String { return self._s[3995]! } - public var Map_AddressOnMap: String { return self._s[3996]! } - public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3998]! } - public var DialogList_SearchLabel: String { return self._s[3999]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[4000]! } - public var GroupInfo_FakeGroupWarning: String { return self._s[4001]! } - public var Conversation_ChecksTooltip_Read: String { return self._s[4003]! } - public var TwoFactorRemember_Placeholder: String { return self._s[4005]! } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[4006]! } - public var ChatList_Search_ShowMore: String { return self._s[4007]! } - public var DialogList_EncryptionRejected: String { return self._s[4008]! } - public var VoiceChat_InviteLinkCopiedText: String { return self._s[4009]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[4010]! } - public var VoiceChat_StartRecordingText: String { return self._s[4011]! } - public var Privacy_TopPeersDelete: String { return self._s[4012]! } - public var AttachmentMenu_SendAsFile: String { return self._s[4014]! } - public var ChatList_GenericPsaAlert: String { return self._s[4016]! } - public var SecretTimer_ImageDescription: String { return self._s[4018]! } + public var Passport_Phone_Help: String { return self._s[3993]! } + public var Privacy_ContactsSync: String { return self._s[3994]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3995]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3997]! } + public var Map_SendMyCurrentLocation: String { return self._s[3998]! } + public var Map_AddressOnMap: String { return self._s[3999]! } + public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[4001]! } + public var DialogList_SearchLabel: String { return self._s[4002]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[4003]! } + public var GroupInfo_FakeGroupWarning: String { return self._s[4004]! } + public var Conversation_ChecksTooltip_Read: String { return self._s[4006]! } + public var TwoFactorRemember_Placeholder: String { return self._s[4008]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[4009]! } + public var ChatList_Search_ShowMore: String { return self._s[4010]! } + public var DialogList_EncryptionRejected: String { return self._s[4011]! } + public var VoiceChat_InviteLinkCopiedText: String { return self._s[4012]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[4013]! } + public var VoiceChat_StartRecordingText: String { return self._s[4014]! } + public var Privacy_TopPeersDelete: String { return self._s[4015]! } + public var AttachmentMenu_SendAsFile: String { return self._s[4017]! } + public var ChatList_GenericPsaAlert: String { return self._s[4019]! } + public var SecretTimer_ImageDescription: String { return self._s[4021]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4019]!, self._r[4019]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4022]!, self._r[4022]!, [_0, _1]) } - public var VoiceChat_EditNameSuccess: String { return self._s[4020]! } - public var ChatSettings_TextSizeUnits: String { return self._s[4021]! } - public var Notification_RenamedGroup: String { return self._s[4023]! } - public var Tour_Title2: String { return self._s[4024]! } - public var Settings_CopyUsername: String { return self._s[4025]! } - public var Compose_NewEncryptedChat: String { return self._s[4026]! } - public var Conversation_CloudStorageInfo_Title: String { return self._s[4027]! } - public var VoiceChat_SetReminder: String { return self._s[4028]! } - public var Month_ShortSeptember: String { return self._s[4029]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[4030]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[4031]! } - public var VoiceChat_StartNow: String { return self._s[4032]! } - public var Call_StatusConnecting: String { return self._s[4034]! } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[4035]! } - public var Map_ShareLiveLocationHelp: String { return self._s[4036]! } - public var Cache_Files: String { return self._s[4037]! } - public var Notifications_Reset: String { return self._s[4038]! } + public var VoiceChat_EditNameSuccess: String { return self._s[4023]! } + public var ChatSettings_TextSizeUnits: String { return self._s[4024]! } + public var Notification_RenamedGroup: String { return self._s[4026]! } + public var Tour_Title2: String { return self._s[4027]! } + public var Settings_CopyUsername: String { return self._s[4028]! } + public var Compose_NewEncryptedChat: String { return self._s[4029]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[4030]! } + public var VoiceChat_SetReminder: String { return self._s[4031]! } + public var Month_ShortSeptember: String { return self._s[4032]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[4033]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[4034]! } + public var VoiceChat_StartNow: String { return self._s[4035]! } + public var Call_StatusConnecting: String { return self._s[4037]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[4038]! } + public var Map_ShareLiveLocationHelp: String { return self._s[4039]! } + public var Cache_Files: String { return self._s[4040]! } + public var Notifications_Reset: String { return self._s[4041]! } public func Settings_KeepPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4039]!, self._r[4039]!, [_0]) + return formatWithArgumentRanges(self._s[4042]!, self._r[4042]!, [_0]) } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[4040]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[4043]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4041]!, self._r[4041]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4044]!, self._r[4044]!, [_1, _2]) } - public var Notification_CallIncomingShort: String { return self._s[4042]! } - public var UserInfo_BotPrivacy: String { return self._s[4045]! } - public var Appearance_BubbleCorners_Apply: String { return self._s[4046]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[4047]! } - public var Conversation_ContextMenuLookUp: String { return self._s[4049]! } - public var Calls_RatingTitle: String { return self._s[4050]! } - public var SecretImage_Title: String { return self._s[4051]! } - public var Weekday_Monday: String { return self._s[4052]! } + public var Notification_CallIncomingShort: String { return self._s[4045]! } + public var UserInfo_BotPrivacy: String { return self._s[4048]! } + public var Appearance_BubbleCorners_Apply: String { return self._s[4049]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[4050]! } + public var Conversation_ContextMenuLookUp: String { return self._s[4052]! } + public var Calls_RatingTitle: String { return self._s[4053]! } + public var SecretImage_Title: String { return self._s[4054]! } + public var Weekday_Monday: String { return self._s[4055]! } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4053]!, self._r[4053]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4056]!, self._r[4056]!, [_1, _2]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[4054]! } - public var VoiceChat_InviteLink_CopySpeakerLink: String { return self._s[4055]! } - public var Invitation_JoinVoiceChatAsListener: String { return self._s[4056]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[4057]! } + public var VoiceChat_InviteLink_CopySpeakerLink: String { return self._s[4058]! } + public var Invitation_JoinVoiceChatAsListener: String { return self._s[4059]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4057]!, self._r[4057]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4060]!, self._r[4060]!, [_1, _2]) } - public var Stats_GroupMembers: String { return self._s[4058]! } - public var Camera_Retake: String { return self._s[4059]! } - public var Conversation_SearchPlaceholder: String { return self._s[4061]! } + public var Stats_GroupMembers: String { return self._s[4061]! } + public var Camera_Retake: String { return self._s[4062]! } + public var Conversation_SearchPlaceholder: String { return self._s[4064]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4062]!, self._r[4062]!, [_0]) + return formatWithArgumentRanges(self._s[4065]!, self._r[4065]!, [_0]) } - public var Channel_DiscussionGroup_Info: String { return self._s[4063]! } - public var SocksProxySetup_Hostname: String { return self._s[4064]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[4065]! } - public var Privacy_DeleteDrafts: String { return self._s[4067]! } - public var Login_CancelPhoneVerification: String { return self._s[4069]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[4070]! } - public var VoiceOver_Chat_Profile: String { return self._s[4071]! } + public var Channel_DiscussionGroup_Info: String { return self._s[4066]! } + public var SocksProxySetup_Hostname: String { return self._s[4067]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[4068]! } + public var Privacy_DeleteDrafts: String { return self._s[4070]! } + public var Login_CancelPhoneVerification: String { return self._s[4072]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[4073]! } + public var VoiceOver_Chat_Profile: String { return self._s[4074]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4072]!, self._r[4072]!, [_0]) + return formatWithArgumentRanges(self._s[4075]!, self._r[4075]!, [_0]) } - public var TwoStepAuth_EmailSent: String { return self._s[4073]! } - public var Cache_Indexing: String { return self._s[4074]! } - public var Notifications_ExceptionsNone: String { return self._s[4075]! } - public var MessagePoll_LabelQuiz: String { return self._s[4076]! } - public var Call_EncryptionKey_Title: String { return self._s[4077]! } - public var Common_Yes: String { return self._s[4078]! } - public var Channel_ErrorAddBlocked: String { return self._s[4079]! } - public var Month_GenJanuary: String { return self._s[4080]! } - public var Checkout_NewCard_Title: String { return self._s[4081]! } + public var TwoStepAuth_EmailSent: String { return self._s[4076]! } + public var Cache_Indexing: String { return self._s[4077]! } + public var Notifications_ExceptionsNone: String { return self._s[4078]! } + public var MessagePoll_LabelQuiz: String { return self._s[4079]! } + public var Call_EncryptionKey_Title: String { return self._s[4080]! } + public var Common_Yes: String { return self._s[4081]! } + public var Channel_ErrorAddBlocked: String { return self._s[4082]! } + public var Month_GenJanuary: String { return self._s[4083]! } + public var Checkout_NewCard_Title: String { return self._s[4084]! } public func TwoStepAuth_EnterPasswordHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4082]!, self._r[4082]!, [_0]) + return formatWithArgumentRanges(self._s[4085]!, self._r[4085]!, [_0]) } - public var Conversation_InputTextPlaceholderReply: String { return self._s[4084]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[4085]! } - public var Conversation_SendDice: String { return self._s[4086]! } + public var Conversation_InputTextPlaceholderReply: String { return self._s[4087]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[4088]! } + public var Conversation_SendDice: String { return self._s[4089]! } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4087]!, self._r[4087]!, [_0]) + return formatWithArgumentRanges(self._s[4090]!, self._r[4090]!, [_0]) } public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4088]!, self._r[4088]!, [_0]) + return formatWithArgumentRanges(self._s[4091]!, self._r[4091]!, [_0]) } - public var Weekday_Wednesday: String { return self._s[4089]! } - public var ReportPeer_ReasonOther_Send: String { return self._s[4090]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[4091]! } - public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[4092]! } - public var OldChannels_NoticeTitle: String { return self._s[4093]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[4094]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[4095]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[4096]! } - public var Passport_Address_AddUtilityBill: String { return self._s[4097]! } + public var Weekday_Wednesday: String { return self._s[4092]! } + public var ReportPeer_ReasonOther_Send: String { return self._s[4093]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[4094]! } + public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[4095]! } + public var OldChannels_NoticeTitle: String { return self._s[4096]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[4097]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[4098]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[4099]! } + public var Passport_Address_AddUtilityBill: String { return self._s[4100]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4099]!, self._r[4099]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4102]!, self._r[4102]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[4101]! } - public var Stats_GroupTopAdminsTitle: String { return self._s[4102]! } - public var Paint_Regular: String { return self._s[4104]! } - public var Message_Contact: String { return self._s[4105]! } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[4106]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[4107]! } - public var Notification_Mute1hMin: String { return self._s[4108]! } + public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[4104]! } + public var Stats_GroupTopAdminsTitle: String { return self._s[4105]! } + public var Paint_Regular: String { return self._s[4107]! } + public var Message_Contact: String { return self._s[4108]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[4109]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[4110]! } + public var Notification_Mute1hMin: String { return self._s[4111]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4109]!, self._r[4109]!, [_0]) + return formatWithArgumentRanges(self._s[4112]!, self._r[4112]!, [_0]) } - public var Profile_MessageLifetime1h: String { return self._s[4110]! } - public var TwoStepAuth_GenericHelp: String { return self._s[4111]! } - public var TwoFactorSetup_PasswordRecovery_Skip: String { return self._s[4112]! } - public var TextFormat_Monospace: String { return self._s[4113]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[4115]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[4116]! } - public var ChatList_DeleteChat: String { return self._s[4117]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[4120]! } + public var Profile_MessageLifetime1h: String { return self._s[4113]! } + public var TwoStepAuth_GenericHelp: String { return self._s[4114]! } + public var TwoFactorSetup_PasswordRecovery_Skip: String { return self._s[4115]! } + public var TextFormat_Monospace: String { return self._s[4116]! } + public var VoiceOver_Media_PlaybackRateChange: String { return self._s[4118]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[4119]! } + public var ChatList_DeleteChat: String { return self._s[4120]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[4123]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4121]!, self._r[4121]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[4124]!, self._r[4124]!, [_1, _2, _3, _4]) } - public var Login_CancelPhoneVerificationStop: String { return self._s[4122]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[4123]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[4124]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[4125]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[4126]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[4127]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4125]!, self._r[4125]!, [_0]) + return formatWithArgumentRanges(self._s[4128]!, self._r[4128]!, [_0]) } - public var Notifications_Badge_IncludeChannels: String { return self._s[4126]! } - public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[4127]! } - public var StickerPack_ViewPack: String { return self._s[4130]! } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[4132]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[4133]! } - public var Notifications_Title: String { return self._s[4134]! } - public var Conversation_InputTextPlaceholderComment: String { return self._s[4135]! } - public var GroupInfo_PublicLink: String { return self._s[4136]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[4129]! } + public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[4130]! } + public var StickerPack_ViewPack: String { return self._s[4133]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[4135]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[4136]! } + public var Notifications_Title: String { return self._s[4137]! } + public var Conversation_InputTextPlaceholderComment: String { return self._s[4138]! } + public var GroupInfo_PublicLink: String { return self._s[4139]! } public func ScheduleVoiceChat_GroupText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4137]!, self._r[4137]!, [_0]) + return formatWithArgumentRanges(self._s[4140]!, self._r[4140]!, [_0]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[4138]! } - public var Conversation_Moderate_Ban: String { return self._s[4142]! } - public var InviteLink_Manage: String { return self._s[4143]! } - public var InstantPage_FontNewYork: String { return self._s[4144]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[4141]! } + public var Conversation_Moderate_Ban: String { return self._s[4145]! } + public var InviteLink_Manage: String { return self._s[4146]! } + public var InstantPage_FontNewYork: String { return self._s[4147]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4145]!, self._r[4145]!, [_0]) + return formatWithArgumentRanges(self._s[4148]!, self._r[4148]!, [_0]) } - public var TextFormat_Underline: String { return self._s[4146]! } + public var TextFormat_Underline: String { return self._s[4149]! } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4147]!, self._r[4147]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4150]!, self._r[4150]!, [_0, _1]) } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4148]!, self._r[4148]!, [_1]) + return formatWithArgumentRanges(self._s[4151]!, self._r[4151]!, [_1]) } - public var PollResults_Collapse: String { return self._s[4150]! } - public var Contacts_GlobalSearch: String { return self._s[4151]! } + public var PollResults_Collapse: String { return self._s[4153]! } + public var Contacts_GlobalSearch: String { return self._s[4154]! } public func Conversation_EncryptionWaiting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4153]!, self._r[4153]!, [_0]) + return formatWithArgumentRanges(self._s[4156]!, self._r[4156]!, [_0]) } - public var Channel_Management_LabelEditor: String { return self._s[4154]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[4156]! } - public var Conversation_Theme: String { return self._s[4157]! } + public var Channel_Management_LabelEditor: String { return self._s[4157]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[4159]! } + public var Conversation_Theme: String { return self._s[4160]! } public func PUSH_CHANNEL_MESSAGE_DOCS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4158]!, self._r[4158]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4161]!, self._r[4161]!, [_1, "\(_2)"]) } - public var Conversation_LinkDialogSave: String { return self._s[4159]! } - public var EnterPasscode_TouchId: String { return self._s[4160]! } - public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[4161]! } - public var Group_ErrorAdminsTooMuch: String { return self._s[4162]! } - public var Stats_MessageOverview: String { return self._s[4163]! } - public var Privacy_Calls_P2PAlways: String { return self._s[4165]! } - public var Message_Sticker: String { return self._s[4166]! } - public var TwoFactorSetup_PasswordRecovery_SkipAlertTitle: String { return self._s[4167]! } - public var Conversation_Mute: String { return self._s[4170]! } - public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[4171]! } - public var ContactInfo_Title: String { return self._s[4172]! } + public var Conversation_LinkDialogSave: String { return self._s[4162]! } + public var EnterPasscode_TouchId: String { return self._s[4163]! } + public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[4164]! } + public var Group_ErrorAdminsTooMuch: String { return self._s[4165]! } + public var Stats_MessageOverview: String { return self._s[4166]! } + public var Privacy_Calls_P2PAlways: String { return self._s[4168]! } + public var Message_Sticker: String { return self._s[4169]! } + public var TwoFactorSetup_PasswordRecovery_SkipAlertTitle: String { return self._s[4170]! } + public var Conversation_Mute: String { return self._s[4173]! } + public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[4174]! } + public var ContactInfo_Title: String { return self._s[4175]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4173]!, self._r[4173]!, [_1]) + return formatWithArgumentRanges(self._s[4176]!, self._r[4176]!, [_1]) } - public var Channel_Setup_TypeHeader: String { return self._s[4174]! } - public var AuthSessions_LogOut: String { return self._s[4175]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[4176]! } - public var VoiceChat_PinVideo: String { return self._s[4177]! } - public var Group_Info_Members: String { return self._s[4179]! } - public var ChatListFolderSettings_NewFolder: String { return self._s[4180]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[4181]! } - public var CreatePoll_Title: String { return self._s[4182]! } - public var EditTheme_EditTitle: String { return self._s[4183]! } - public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[4184]! } - public var TwoStepAuth_SetPassword: String { return self._s[4185]! } + public var Channel_Setup_TypeHeader: String { return self._s[4177]! } + public var AuthSessions_LogOut: String { return self._s[4178]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[4179]! } + public var VoiceChat_PinVideo: String { return self._s[4180]! } + public var Group_Info_Members: String { return self._s[4182]! } + public var ChatListFolderSettings_NewFolder: String { return self._s[4183]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[4184]! } + public var CreatePoll_Title: String { return self._s[4185]! } + public var EditTheme_EditTitle: String { return self._s[4186]! } + public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[4187]! } + public var TwoStepAuth_SetPassword: String { return self._s[4188]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4186]!, self._r[4186]!, [_0]) + return formatWithArgumentRanges(self._s[4189]!, self._r[4189]!, [_0]) } - public var BlockedUsers_Info: String { return self._s[4187]! } - public var AuthSessions_Sessions: String { return self._s[4188]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4189]! } - public var Common_ActionNotAllowedError: String { return self._s[4190]! } - public var WebPreview_GettingLinkInfo: String { return self._s[4191]! } - public var Appearance_AppIconFilledX: String { return self._s[4192]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[4193]! } - public var FeaturedStickers_OtherSection: String { return self._s[4194]! } - public var VoiceChat_RecordingStarted: String { return self._s[4195]! } - public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[4196]! } - public var Profile_Username: String { return self._s[4197]! } - public var TwoFactorRemember_Done_Title: String { return self._s[4198]! } - public var Settings_TipsUsername: String { return self._s[4199]! } - public var Appearance_RemoveTheme: String { return self._s[4200]! } - public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[4201]! } - public var Message_PinnedStickerMessage: String { return self._s[4202]! } - public var AccessDenied_VideoMicrophone: String { return self._s[4203]! } - public var WallpaperPreview_CustomColorBottomText: String { return self._s[4204]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[4205]! } - public var Conversation_VoiceChat: String { return self._s[4206]! } - public var VoiceChat_EditBioSuccess: String { return self._s[4207]! } - public var ImportStickerPack_LinkAvailable: String { return self._s[4208]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[4209]! } - public var TwoStepAuth_Title: String { return self._s[4210]! } - public var VoiceOver_Chat_YourAnimatedSticker: String { return self._s[4211]! } - public var Checkout_WebConfirmation_Title: String { return self._s[4212]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[4213]! } - public var ChatListFolder_CategoryGroups: String { return self._s[4215]! } - public var Stats_GroupTopInviter_Promote: String { return self._s[4216]! } - public var Conversation_EditingPhotoPanelTitle: String { return self._s[4217]! } - public var Month_GenJuly: String { return self._s[4218]! } - public var Passport_Identity_Gender: String { return self._s[4219]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4220]! } - public var Notification_Exceptions_DeleteAll: String { return self._s[4221]! } - public var VoiceChat_StopRecording: String { return self._s[4222]! } + public var BlockedUsers_Info: String { return self._s[4190]! } + public var AuthSessions_Sessions: String { return self._s[4191]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4192]! } + public var Common_ActionNotAllowedError: String { return self._s[4193]! } + public var WebPreview_GettingLinkInfo: String { return self._s[4194]! } + public var Appearance_AppIconFilledX: String { return self._s[4195]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[4196]! } + public var FeaturedStickers_OtherSection: String { return self._s[4197]! } + public var VoiceChat_RecordingStarted: String { return self._s[4198]! } + public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[4199]! } + public var Profile_Username: String { return self._s[4200]! } + public var TwoFactorRemember_Done_Title: String { return self._s[4201]! } + public var Settings_TipsUsername: String { return self._s[4202]! } + public var Appearance_RemoveTheme: String { return self._s[4203]! } + public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[4204]! } + public var Message_PinnedStickerMessage: String { return self._s[4205]! } + public var AccessDenied_VideoMicrophone: String { return self._s[4206]! } + public var WallpaperPreview_CustomColorBottomText: String { return self._s[4207]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[4208]! } + public var Conversation_VoiceChat: String { return self._s[4209]! } + public var VoiceChat_EditBioSuccess: String { return self._s[4210]! } + public var ImportStickerPack_LinkAvailable: String { return self._s[4211]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[4212]! } + public var TwoStepAuth_Title: String { return self._s[4213]! } + public var VoiceOver_Chat_YourAnimatedSticker: String { return self._s[4214]! } + public var Checkout_WebConfirmation_Title: String { return self._s[4215]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[4216]! } + public var ChatListFolder_CategoryGroups: String { return self._s[4218]! } + public var Stats_GroupTopInviter_Promote: String { return self._s[4219]! } + public var Conversation_EditingPhotoPanelTitle: String { return self._s[4220]! } + public var Month_GenJuly: String { return self._s[4221]! } + public var Passport_Identity_Gender: String { return self._s[4222]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4223]! } + public var Notification_Exceptions_DeleteAll: String { return self._s[4224]! } + public var VoiceChat_StopRecording: String { return self._s[4225]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4223]!, self._r[4223]!, [_0]) - } - public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4224]!, self._r[4224]!, [_0, _1, _2]) - } - public var Login_CodeSentSms: String { return self._s[4225]! } - public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4226]!, self._r[4226]!, [_0]) } - public var Login_CallRequestState2: String { return self._s[4227]! } - public var Channel_DiscussionGroup_Header: String { return self._s[4228]! } - public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { + public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4227]!, self._r[4227]!, [_0, _1, _2]) + } + public var Login_CodeSentSms: String { return self._s[4228]! } + public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4229]!, self._r[4229]!, [_0]) } - public var Passport_Language_ms: String { return self._s[4230]! } - public var PeopleNearby_MakeInvisible: String { return self._s[4232]! } - public var ImportStickerPack_CreateStickerSet: String { return self._s[4234]! } - public var ChatList_Search_FilterVoice: String { return self._s[4235]! } - public var Camera_TapAndHoldForVideo: String { return self._s[4237]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[4238]! } + public var Login_CallRequestState2: String { return self._s[4230]! } + public var Channel_DiscussionGroup_Header: String { return self._s[4231]! } + public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4232]!, self._r[4232]!, [_0]) + } + public var Passport_Language_ms: String { return self._s[4233]! } + public var PeopleNearby_MakeInvisible: String { return self._s[4235]! } + public var ImportStickerPack_CreateStickerSet: String { return self._s[4237]! } + public var ChatList_Search_FilterVoice: String { return self._s[4238]! } + public var Camera_TapAndHoldForVideo: String { return self._s[4240]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[4241]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4239]!, self._r[4239]!, [_0]) + return formatWithArgumentRanges(self._s[4242]!, self._r[4242]!, [_0]) } public func Call_VoiceChatInProgressMessageCall(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4240]!, self._r[4240]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4243]!, self._r[4243]!, [_1, _2]) } - public var Map_Locating: String { return self._s[4241]! } + public var Map_Locating: String { return self._s[4244]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4243]!, self._r[4243]!, [_0]) + return formatWithArgumentRanges(self._s[4246]!, self._r[4246]!, [_0]) } - public var Passport_Identity_TypeInternalPassport: String { return self._s[4245]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[4246]! } - public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[4247]! } - public var Stickers_Installed: String { return self._s[4248]! } - public var Notifications_PermissionsAllowInSettings: String { return self._s[4249]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[4250]! } - public var CallSettings_Never: String { return self._s[4252]! } - public var Channel_Setup_TypePublicHelp: String { return self._s[4253]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[4248]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[4249]! } + public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[4250]! } + public var Stickers_Installed: String { return self._s[4251]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[4252]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[4253]! } + public var CallSettings_Never: String { return self._s[4255]! } + public var Channel_Setup_TypePublicHelp: String { return self._s[4256]! } public func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4255]!, self._r[4255]!, [_0]) + return formatWithArgumentRanges(self._s[4258]!, self._r[4258]!, [_0]) } - public var Message_Game: String { return self._s[4256]! } - public var Call_Message: String { return self._s[4257]! } + public var Message_Game: String { return self._s[4259]! } + public var Call_Message: String { return self._s[4260]! } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4258]!, self._r[4258]!, [_1]) + return formatWithArgumentRanges(self._s[4261]!, self._r[4261]!, [_1]) } - public var ChannelIntro_Text: String { return self._s[4259]! } - public var VoiceChat_NoiseSuppressionEnabled: String { return self._s[4260]! } - public var StickerPack_Send: String { return self._s[4261]! } - public var Share_AuthDescription: String { return self._s[4262]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[4263]! } - public var CallFeedback_WhatWentWrong: String { return self._s[4264]! } - public var Common_Create: String { return self._s[4267]! } - public var Passport_Language_hy: String { return self._s[4268]! } - public var CreatePoll_Explanation: String { return self._s[4269]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[4270]! } - public var ChatImport_CreateGroupAlertImportAction: String { return self._s[4271]! } - public var PeerInfo_ButtonVoiceChat: String { return self._s[4272]! } - public var Undo_ChatClearedForBothSides: String { return self._s[4273]! } - public var DialogList_NoMessagesTitle: String { return self._s[4274]! } - public var GroupInfo_Title: String { return self._s[4276]! } + public var ChannelIntro_Text: String { return self._s[4262]! } + public var VoiceChat_NoiseSuppressionEnabled: String { return self._s[4263]! } + public var StickerPack_Send: String { return self._s[4264]! } + public var Share_AuthDescription: String { return self._s[4265]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[4266]! } + public var CallFeedback_WhatWentWrong: String { return self._s[4267]! } + public var Common_Create: String { return self._s[4270]! } + public var Passport_Language_hy: String { return self._s[4271]! } + public var CreatePoll_Explanation: String { return self._s[4272]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[4273]! } + public var ChatImport_CreateGroupAlertImportAction: String { return self._s[4274]! } + public var PeerInfo_ButtonVoiceChat: String { return self._s[4275]! } + public var Undo_ChatClearedForBothSides: String { return self._s[4276]! } + public var DialogList_NoMessagesTitle: String { return self._s[4277]! } + public var GroupInfo_Title: String { return self._s[4279]! } public func ScheduleVoiceChat_ScheduleToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4277]!, self._r[4277]!, [_0]) + return formatWithArgumentRanges(self._s[4280]!, self._r[4280]!, [_0]) } - public var UserInfo_ContactForwardTooltip_SavedMessages_One: String { return self._s[4278]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[4279]! } - public var PhoneNumberHelp_Help: String { return self._s[4280]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4281]! } - public var Settings_Logout: String { return self._s[4282]! } - public var Privacy_PaymentsTitle: String { return self._s[4283]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[4284]! } - public var Tour_Text6: String { return self._s[4285]! } - public var ChatImportActivity_Title: String { return self._s[4287]! } - public var Channel_Username_Help: String { return self._s[4288]! } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[4289]! } - public var AttachmentMenu_Poll: String { return self._s[4290]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[4291]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[4292]! } - public var Passport_DeletePassport: String { return self._s[4293]! } - public var Login_Code: String { return self._s[4294]! } - public var Notification_SecretChatScreenshot: String { return self._s[4295]! } - public var VoiceChat_AddBio: String { return self._s[4296]! } - public var Login_CodeFloodError: String { return self._s[4297]! } + public var UserInfo_ContactForwardTooltip_SavedMessages_One: String { return self._s[4281]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[4282]! } + public var PhoneNumberHelp_Help: String { return self._s[4283]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4284]! } + public var Settings_Logout: String { return self._s[4285]! } + public var Privacy_PaymentsTitle: String { return self._s[4286]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[4287]! } + public var Tour_Text6: String { return self._s[4288]! } + public var ChatImportActivity_Title: String { return self._s[4290]! } + public var Channel_Username_Help: String { return self._s[4291]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[4292]! } + public var AttachmentMenu_Poll: String { return self._s[4293]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[4294]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[4295]! } + public var Passport_DeletePassport: String { return self._s[4296]! } + public var Login_Code: String { return self._s[4297]! } + public var Notification_SecretChatScreenshot: String { return self._s[4298]! } + public var VoiceChat_AddBio: String { return self._s[4299]! } + public var Login_CodeFloodError: String { return self._s[4300]! } public func Notification_PinnedAnimationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4298]!, self._r[4298]!, [_0]) + return formatWithArgumentRanges(self._s[4301]!, self._r[4301]!, [_0]) } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4299]!, self._r[4299]!, [_0]) - } - public var Watch_Stickers_Recents: String { return self._s[4300]! } - public var Generic_ErrorMoreInfo: String { return self._s[4301]! } - public func Call_AccountIsLoggedOnCurrentDevice(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4302]!, self._r[4302]!, [_0]) } - public var AutoDownloadSettings_DataUsage: String { return self._s[4303]! } - public var Conversation_ViewTheme: String { return self._s[4304]! } - public var Contacts_InviteSearchLabel: String { return self._s[4305]! } - public var Settings_CancelUpload: String { return self._s[4307]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[4308]! } + public var Watch_Stickers_Recents: String { return self._s[4303]! } + public var Generic_ErrorMoreInfo: String { return self._s[4304]! } + public func Call_AccountIsLoggedOnCurrentDevice(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4305]!, self._r[4305]!, [_0]) + } + public var AutoDownloadSettings_DataUsage: String { return self._s[4306]! } + public var Conversation_ViewTheme: String { return self._s[4307]! } + public var Contacts_InviteSearchLabel: String { return self._s[4308]! } + public var Settings_CancelUpload: String { return self._s[4310]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[4311]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4309]!, self._r[4309]!, [_0]) + return formatWithArgumentRanges(self._s[4312]!, self._r[4312]!, [_0]) } - public var ChatList_AddFolder: String { return self._s[4310]! } - public var Conversation_Location: String { return self._s[4312]! } - public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4313]! } - public var DialogList_AdLabel: String { return self._s[4314]! } + public var ChatList_AddFolder: String { return self._s[4313]! } + public var Conversation_Location: String { return self._s[4315]! } + public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4316]! } + public var DialogList_AdLabel: String { return self._s[4317]! } public func Time_TomorrowAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4316]!, self._r[4316]!, [_0]) + return formatWithArgumentRanges(self._s[4319]!, self._r[4319]!, [_0]) } - public var Message_InvoiceLabel: String { return self._s[4317]! } - public var Channel_TooMuchBots: String { return self._s[4318]! } + public var Message_InvoiceLabel: String { return self._s[4320]! } + public var Channel_TooMuchBots: String { return self._s[4321]! } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4320]!, self._r[4320]!, [_0]) + return formatWithArgumentRanges(self._s[4323]!, self._r[4323]!, [_0]) } - public var Call_IncomingVideoCall: String { return self._s[4321]! } - public var Conversation_LiveLocation: String { return self._s[4322]! } - public var VoiceChat_AskedToSpeakHelp: String { return self._s[4323]! } - public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4324]! } - public var Passport_Identity_EditPassport: String { return self._s[4325]! } - public var Permissions_CellularDataTitle_v0: String { return self._s[4327]! } - public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4328]! } - public var GroupInfo_Permissions_AddException: String { return self._s[4329]! } + public var Call_IncomingVideoCall: String { return self._s[4324]! } + public var Conversation_LiveLocation: String { return self._s[4325]! } + public var VoiceChat_AskedToSpeakHelp: String { return self._s[4326]! } + public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4327]! } + public var Passport_Identity_EditPassport: String { return self._s[4328]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[4330]! } + public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4331]! } + public var GroupInfo_Permissions_AddException: String { return self._s[4332]! } public func VoiceChat_RemovePeerConfirmationChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4331]!, self._r[4331]!, [_0]) + return formatWithArgumentRanges(self._s[4334]!, self._r[4334]!, [_0]) } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[4332]! } - public var Channel_MessageVideoUpdated: String { return self._s[4333]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4334]! } - public var AutoremoveSetup_TimeSectionHeader: String { return self._s[4337]! } - public var AccessDenied_Camera: String { return self._s[4338]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[4335]! } + public var Channel_MessageVideoUpdated: String { return self._s[4336]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4337]! } + public var AutoremoveSetup_TimeSectionHeader: String { return self._s[4340]! } + public var AccessDenied_Camera: String { return self._s[4341]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4339]!, self._r[4339]!, [_0]) + return formatWithArgumentRanges(self._s[4342]!, self._r[4342]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[4340]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[4341]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[4342]! } - public var Login_CodeExpiredError: String { return self._s[4343]! } - public var State_ConnectingToProxy: String { return self._s[4344]! } - public var TextFormat_Link: String { return self._s[4345]! } - public var Passport_Language_lv: String { return self._s[4347]! } - public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4348]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[4349]! } - public var WallpaperPreview_SwipeBottomText: String { return self._s[4350]! } - public var ProfilePhoto_SetMainVideo: String { return self._s[4351]! } - public var AutoDownloadSettings_Cellular: String { return self._s[4353]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4354]! } - public var Calls_NoVoiceAndVideoCallsPlaceholder: String { return self._s[4355]! } + public var Theme_Context_ChangeColors: String { return self._s[4343]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[4344]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[4345]! } + public var Login_CodeExpiredError: String { return self._s[4346]! } + public var State_ConnectingToProxy: String { return self._s[4347]! } + public var TextFormat_Link: String { return self._s[4348]! } + public var Passport_Language_lv: String { return self._s[4350]! } + public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4351]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[4352]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[4353]! } + public var ProfilePhoto_SetMainVideo: String { return self._s[4354]! } + public var AutoDownloadSettings_Cellular: String { return self._s[4356]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4357]! } + public var Calls_NoVoiceAndVideoCallsPlaceholder: String { return self._s[4358]! } public func Channel_AdminLog_MessageKickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4356]!, self._r[4356]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4359]!, self._r[4359]!, [_1, _2]) } - public var ChatList_EmptyChatListFilterTitle: String { return self._s[4357]! } - public var Checkout_PayNone: String { return self._s[4358]! } - public var NotificationsSound_Complete: String { return self._s[4360]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4361]! } - public var InviteLink_CreateInfo: String { return self._s[4362]! } - public var AuthSessions_DevicesTitle: String { return self._s[4363]! } + public var ChatList_EmptyChatListFilterTitle: String { return self._s[4360]! } + public var Checkout_PayNone: String { return self._s[4361]! } + public var NotificationsSound_Complete: String { return self._s[4363]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4364]! } + public var InviteLink_CreateInfo: String { return self._s[4365]! } + public var AuthSessions_DevicesTitle: String { return self._s[4366]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4364]!, self._r[4364]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4367]!, self._r[4367]!, [_0, _1]) } - public var Message_LiveLocation: String { return self._s[4365]! } - public var Watch_Suggestion_BRB: String { return self._s[4366]! } - public var Channel_BanUser_Title: String { return self._s[4367]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4368]! } - public var Conversation_Dice_u1F3C0: String { return self._s[4369]! } - public var Conversation_ClearSelfHistory: String { return self._s[4370]! } - public var ProfilePhoto_OpenGallery: String { return self._s[4371]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[4372]! } - public var Weekday_Thursday: String { return self._s[4373]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4374]! } - public var Privacy_ProfilePhoto: String { return self._s[4376]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4377]! } + public var Message_LiveLocation: String { return self._s[4368]! } + public var Watch_Suggestion_BRB: String { return self._s[4369]! } + public var Channel_BanUser_Title: String { return self._s[4370]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4371]! } + public var Conversation_Dice_u1F3C0: String { return self._s[4372]! } + public var Conversation_ClearSelfHistory: String { return self._s[4373]! } + public var ProfilePhoto_OpenGallery: String { return self._s[4374]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[4375]! } + public var Weekday_Thursday: String { return self._s[4376]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4377]! } + public var Privacy_ProfilePhoto: String { return self._s[4379]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4380]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4378]!, self._r[4378]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4381]!, self._r[4381]!, [_1, _2]) } - public var Message_Audio: String { return self._s[4379]! } - public var Conversation_Info: String { return self._s[4380]! } - public var Cache_Videos: String { return self._s[4381]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4382]! } - public var Channel_ErrorAddTooMuch: String { return self._s[4383]! } - public var TwoFactorSetup_ResetDone_Text: String { return self._s[4384]! } + public var Message_Audio: String { return self._s[4382]! } + public var Conversation_Info: String { return self._s[4383]! } + public var Cache_Videos: String { return self._s[4384]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4385]! } + public var Channel_ErrorAddTooMuch: String { return self._s[4386]! } + public var TwoFactorSetup_ResetDone_Text: String { return self._s[4387]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4385]!, self._r[4385]!, [_0]) + return formatWithArgumentRanges(self._s[4388]!, self._r[4388]!, [_0]) } - public var VoiceChat_EditBio: String { return self._s[4386]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4388]! } - public var VoiceChat_ShareScreen: String { return self._s[4391]! } - public var ScheduledMessages_Title: String { return self._s[4392]! } - public var ShareFileTip_Title: String { return self._s[4395]! } - public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4396]! } - public var ChatList_RemoveFolderConfirmation: String { return self._s[4397]! } + public var VoiceChat_EditBio: String { return self._s[4389]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4391]! } + public var VoiceChat_ShareScreen: String { return self._s[4394]! } + public var ScheduledMessages_Title: String { return self._s[4395]! } + public var ShareFileTip_Title: String { return self._s[4398]! } + public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4399]! } + public var ChatList_RemoveFolderConfirmation: String { return self._s[4400]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4398]!, self._r[4398]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4401]!, self._r[4401]!, [_1, _2]) } - public var Conversation_ContextViewStats: String { return self._s[4400]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4401]! } - public var PasscodeSettings_Title: String { return self._s[4402]! } - public var Channel_AdminLog_SendPolls: String { return self._s[4403]! } - public var LastSeen_ALongTimeAgo: String { return self._s[4404]! } + public var Conversation_ContextViewStats: String { return self._s[4403]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4404]! } + public var PasscodeSettings_Title: String { return self._s[4405]! } + public var Channel_AdminLog_SendPolls: String { return self._s[4406]! } + public var LastSeen_ALongTimeAgo: String { return self._s[4407]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4405]!, self._r[4405]!, [_1]) + return formatWithArgumentRanges(self._s[4408]!, self._r[4408]!, [_1]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4406]! } - public var ChannelInfo_FakeChannelWarning: String { return self._s[4407]! } - public var CallFeedback_VideoReasonLowQuality: String { return self._s[4408]! } - public var Conversation_PinnedPreviousMessage: String { return self._s[4409]! } - public var SocksProxySetup_AddProxyTitle: String { return self._s[4410]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[4411]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4409]! } + public var ChannelInfo_FakeChannelWarning: String { return self._s[4410]! } + public var CallFeedback_VideoReasonLowQuality: String { return self._s[4411]! } + public var VoiceChat_VideoPreviewShareScreenInfo: String { return self._s[4412]! } + public var Conversation_PinnedPreviousMessage: String { return self._s[4413]! } + public var SocksProxySetup_AddProxyTitle: String { return self._s[4414]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[4415]! } public func ChatList_RemovedFromFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4412]!, self._r[4412]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4416]!, self._r[4416]!, [_1, _2]) } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4413]!, self._r[4413]!, [_0]) + return formatWithArgumentRanges(self._s[4417]!, self._r[4417]!, [_0]) } - public var Passport_Identity_GenderFemale: String { return self._s[4414]! } - public var Location_ProximityNotification_DistanceKM: String { return self._s[4417]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[4418]! } + public var Passport_Identity_GenderFemale: String { return self._s[4418]! } + public var Location_ProximityNotification_DistanceKM: String { return self._s[4421]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[4422]! } public func Message_ImportedDateFormat(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4419]!, self._r[4419]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4423]!, self._r[4423]!, [_1, _2, _3]) } - public var VoiceChat_Audio: String { return self._s[4420]! } - public var SharedMedia_TitleAll: String { return self._s[4421]! } - public var Settings_Context_Logout: String { return self._s[4422]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4425]! } - public var Settings_About_Title: String { return self._s[4426]! } - public var StickerSettings_ContextHide: String { return self._s[4427]! } + public var VoiceChat_Audio: String { return self._s[4424]! } + public var SharedMedia_TitleAll: String { return self._s[4425]! } + public var Settings_Context_Logout: String { return self._s[4426]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4429]! } + public var Settings_About_Title: String { return self._s[4430]! } + public var StickerSettings_ContextHide: String { return self._s[4431]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4428]!, self._r[4428]!, [_0]) + return formatWithArgumentRanges(self._s[4432]!, self._r[4432]!, [_0]) } public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4429]!, self._r[4429]!, [_0]) + return formatWithArgumentRanges(self._s[4433]!, self._r[4433]!, [_0]) } - public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4431]! } - public var Common_Cancel: String { return self._s[4432]! } - public var CallFeedback_Title: String { return self._s[4434]! } + public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4435]! } + public var Common_Cancel: String { return self._s[4436]! } + public var CallFeedback_Title: String { return self._s[4438]! } public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4435]!, self._r[4435]!, [_0]) + return formatWithArgumentRanges(self._s[4439]!, self._r[4439]!, [_0]) } - public var Conversation_StickerAddedToFavorites: String { return self._s[4436]! } - public var Activity_UploadingVideoMessage: String { return self._s[4438]! } - public var MediaPicker_Send: String { return self._s[4439]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4440]! } - public var Conversation_LiveLocationYou: String { return self._s[4441]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[4442]! } + public var Conversation_StickerAddedToFavorites: String { return self._s[4440]! } + public var Activity_UploadingVideoMessage: String { return self._s[4442]! } + public var MediaPicker_Send: String { return self._s[4443]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4444]! } + public var Conversation_LiveLocationYou: String { return self._s[4445]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[4446]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4444]!, self._r[4444]!, [_0]) + return formatWithArgumentRanges(self._s[4448]!, self._r[4448]!, [_0]) } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4445]!, self._r[4445]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4449]!, self._r[4449]!, [_1, _2]) } - public var Checkout_PaymentLiabilityAlert: String { return self._s[4446]! } - public var Conversation_ViewBackground: String { return self._s[4447]! } - public var ChatSettings_PrivateChats: String { return self._s[4450]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[4451]! } - public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4452]! } - public var Appearance_ThemeNight: String { return self._s[4453]! } - public var Common_Search: String { return self._s[4454]! } - public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4455]! } - public var ChangePhoneNumberNumber_Help: String { return self._s[4457]! } - public var InviteLink_QRCode_Share: String { return self._s[4458]! } - public var Stickers_SuggestAdded: String { return self._s[4460]! } + public var Checkout_PaymentLiabilityAlert: String { return self._s[4450]! } + public var Conversation_ViewBackground: String { return self._s[4451]! } + public var ChatSettings_PrivateChats: String { return self._s[4454]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[4455]! } + public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4456]! } + public var Appearance_ThemeNight: String { return self._s[4457]! } + public var Common_Search: String { return self._s[4458]! } + public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4459]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[4461]! } + public var InviteLink_QRCode_Share: String { return self._s[4462]! } + public var Stickers_SuggestAdded: String { return self._s[4464]! } public func VoiceChat_VideoParticipantsLimitExceeded(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4462]!, self._r[4462]!, [_0]) + return formatWithArgumentRanges(self._s[4466]!, self._r[4466]!, [_0]) } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4464]! } - public var Widget_UpdatedTodayAt: String { return self._s[4465]! } - public var NetworkUsageSettings_Cellular: String { return self._s[4466]! } - public var CheckoutInfo_Title: String { return self._s[4467]! } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4468]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[4469]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4468]! } + public var Widget_UpdatedTodayAt: String { return self._s[4469]! } + public var NetworkUsageSettings_Cellular: String { return self._s[4470]! } + public var CheckoutInfo_Title: String { return self._s[4471]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4472]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[4473]! } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4470]!, self._r[4470]!, [_0]) + return formatWithArgumentRanges(self._s[4474]!, self._r[4474]!, [_0]) } - public var MaskStickerSettings_Info: String { return self._s[4472]! } - public var GroupRemoved_DeleteUser: String { return self._s[4474]! } - public var Contacts_ShareTelegram: String { return self._s[4475]! } - public var Group_UpgradeNoticeText1: String { return self._s[4476]! } + public var MaskStickerSettings_Info: String { return self._s[4476]! } + public var GroupRemoved_DeleteUser: String { return self._s[4478]! } + public var Contacts_ShareTelegram: String { return self._s[4479]! } + public var Group_UpgradeNoticeText1: String { return self._s[4480]! } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4477]!, self._r[4477]!, [_1]) + return formatWithArgumentRanges(self._s[4481]!, self._r[4481]!, [_1]) } - public var PrivacyLastSeenSettings_Title: String { return self._s[4478]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[4482]! } - public var PhotoEditor_TintTool: String { return self._s[4483]! } - public var ChatImportActivity_OpenApp: String { return self._s[4485]! } - public var GroupPermission_NoSendPolls: String { return self._s[4486]! } - public var NotificationsSound_None: String { return self._s[4487]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[4482]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[4486]! } + public var PhotoEditor_TintTool: String { return self._s[4487]! } + public var ChatImportActivity_OpenApp: String { return self._s[4489]! } + public var GroupPermission_NoSendPolls: String { return self._s[4490]! } + public var NotificationsSound_None: String { return self._s[4491]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4488]!, self._r[4488]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4492]!, self._r[4492]!, [_1, "\(_2)"]) } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4491]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4495]! } public func Conversation_AutoremoveTimerSetChannel(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4493]!, self._r[4493]!, [_1]) + return formatWithArgumentRanges(self._s[4497]!, self._r[4497]!, [_1]) } - public var ExplicitContent_AlertChannel: String { return self._s[4494]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[4495]! } - public var Contacts_SortedByPresence: String { return self._s[4496]! } - public var WallpaperSearch_ColorGray: String { return self._s[4497]! } - public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4498]! } - public var Conversation_ReportSpam: String { return self._s[4499]! } - public var ChatList_Search_NoResultsFilter: String { return self._s[4502]! } - public var WallpaperSearch_ColorBlack: String { return self._s[4503]! } - public var ArchivedChats_IntroTitle3: String { return self._s[4504]! } - public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4505]! } + public var ExplicitContent_AlertChannel: String { return self._s[4498]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[4499]! } + public var Contacts_SortedByPresence: String { return self._s[4500]! } + public var WallpaperSearch_ColorGray: String { return self._s[4501]! } + public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4502]! } + public var Conversation_ReportSpam: String { return self._s[4503]! } + public var ChatList_Search_NoResultsFilter: String { return self._s[4506]! } + public var WallpaperSearch_ColorBlack: String { return self._s[4507]! } + public var ArchivedChats_IntroTitle3: String { return self._s[4508]! } + public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4509]! } public func VoiceChat_PeerJoinedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4506]!, self._r[4506]!, [_0]) + return formatWithArgumentRanges(self._s[4510]!, self._r[4510]!, [_0]) } - public var Conversation_DefaultRestrictedText: String { return self._s[4507]! } - public var Settings_Devices: String { return self._s[4508]! } - public var Call_AudioRouteSpeaker: String { return self._s[4509]! } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[4510]! } - public var VoiceChat_StartsIn: String { return self._s[4511]! } - public var VoiceChat_CreateNewVoiceChatSchedule: String { return self._s[4512]! } - public var VoiceChat_EditDescriptionTitle: String { return self._s[4514]! } - public var Passport_Address_Country: String { return self._s[4515]! } - public var Cache_MaximumCacheSize: String { return self._s[4516]! } - public var Chat_PanelHidePinnedMessages: String { return self._s[4517]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[4518]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4520]! } - public var Login_TermsOfServiceLabel: String { return self._s[4521]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[4522]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[4523]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4524]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[4525]! } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[4526]! } - public var ConvertToSupergroup_Note: String { return self._s[4528]! } - public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4529]! } - public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4530]! } - public var Common_More: String { return self._s[4531]! } - public var ShareMenu_SelectChats: String { return self._s[4533]! } + public var Conversation_DefaultRestrictedText: String { return self._s[4511]! } + public var Settings_Devices: String { return self._s[4512]! } + public var Call_AudioRouteSpeaker: String { return self._s[4513]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[4514]! } + public var VoiceChat_StartsIn: String { return self._s[4515]! } + public var VoiceChat_CreateNewVoiceChatSchedule: String { return self._s[4516]! } + public var VoiceChat_EditDescriptionTitle: String { return self._s[4518]! } + public var Passport_Address_Country: String { return self._s[4519]! } + public var Cache_MaximumCacheSize: String { return self._s[4520]! } + public var Chat_PanelHidePinnedMessages: String { return self._s[4521]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[4522]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4524]! } + public var Login_TermsOfServiceLabel: String { return self._s[4525]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[4526]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[4527]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4528]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[4529]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[4530]! } + public var ConvertToSupergroup_Note: String { return self._s[4532]! } + public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4533]! } + public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4534]! } + public var Common_More: String { return self._s[4535]! } + public var ShareMenu_SelectChats: String { return self._s[4537]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4534]!, self._r[4534]!, [_0]) + return formatWithArgumentRanges(self._s[4538]!, self._r[4538]!, [_0]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4535]!, self._r[4535]!, [_0]) - } - public var Contacts_PermissionsKeepDisabled: String { return self._s[4537]! } - public var VoiceChat_EditBioText: String { return self._s[4538]! } - public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4539]!, self._r[4539]!, [_0]) } - public var WatchRemote_AlertOpen: String { return self._s[4540]! } + public var Contacts_PermissionsKeepDisabled: String { return self._s[4541]! } + public var VoiceChat_EditBioText: String { return self._s[4542]! } + public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4543]!, self._r[4543]!, [_0]) + } + public var WatchRemote_AlertOpen: String { return self._s[4544]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4541]!, self._r[4541]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4545]!, self._r[4545]!, [_1, _2, _3]) } - public var Channel_Members_AddMembersHelp: String { return self._s[4542]! } - public var Shortcut_SwitchAccount: String { return self._s[4543]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4544]! } + public var Channel_Members_AddMembersHelp: String { return self._s[4546]! } + public var Shortcut_SwitchAccount: String { return self._s[4547]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4548]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4545]!, self._r[4545]!, [_0]) + return formatWithArgumentRanges(self._s[4549]!, self._r[4549]!, [_0]) } - public var Compose_NewGroupTitle: String { return self._s[4546]! } - public var DialogList_You: String { return self._s[4547]! } - public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4548]! } - public var ReportPeer_ReasonViolence: String { return self._s[4549]! } + public var Compose_NewGroupTitle: String { return self._s[4550]! } + public var DialogList_You: String { return self._s[4551]! } + public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4552]! } + public var ReportPeer_ReasonViolence: String { return self._s[4553]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4550]!, self._r[4550]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4554]!, self._r[4554]!, [_1, _2]) } - public var VoiceChat_Reconnecting: String { return self._s[4552]! } - public var KeyCommand_ScrollDown: String { return self._s[4555]! } - public var ChatSettings_DownloadInBackground: String { return self._s[4556]! } - public var Wallpaper_ResetWallpapers: String { return self._s[4557]! } - public var Channel_BanList_RestrictedTitle: String { return self._s[4558]! } - public var ArchivedChats_IntroText3: String { return self._s[4559]! } - public var HashtagSearch_AllChats: String { return self._s[4561]! } - public var VoiceChat_EndVoiceChat: String { return self._s[4562]! } - public var Conversation_MessageCopied: String { return self._s[4564]! } - public var Channel_Info_BlackList: String { return self._s[4565]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4566]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4567]! } - public var Paint_Neon: String { return self._s[4569]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4570]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[4571]! } - public var ImportStickerPack_CreateNewStickerSet: String { return self._s[4572]! } + public var VoiceChat_Reconnecting: String { return self._s[4556]! } + public var KeyCommand_ScrollDown: String { return self._s[4559]! } + public var ChatSettings_DownloadInBackground: String { return self._s[4560]! } + public var Wallpaper_ResetWallpapers: String { return self._s[4561]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[4562]! } + public var ArchivedChats_IntroText3: String { return self._s[4563]! } + public var HashtagSearch_AllChats: String { return self._s[4565]! } + public var VoiceChat_EndVoiceChat: String { return self._s[4566]! } + public var Conversation_MessageCopied: String { return self._s[4568]! } + public var Channel_Info_BlackList: String { return self._s[4569]! } + public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4570]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4571]! } + public var Paint_Neon: String { return self._s[4573]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4574]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[4575]! } + public var ImportStickerPack_CreateNewStickerSet: String { return self._s[4576]! } public func Notification_PinnedVideoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4574]!, self._r[4574]!, [_0]) + return formatWithArgumentRanges(self._s[4578]!, self._r[4578]!, [_0]) } - public var Map_StopLiveLocation: String { return self._s[4575]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4576]! } - public var Channel_Username_InvalidCharacters: String { return self._s[4577]! } - public var InstantPage_Reference: String { return self._s[4579]! } - public var Group_Members_AddMembers: String { return self._s[4581]! } + public var Map_StopLiveLocation: String { return self._s[4579]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4580]! } + public var Channel_Username_InvalidCharacters: String { return self._s[4581]! } + public var InstantPage_Reference: String { return self._s[4583]! } + public var Group_Members_AddMembers: String { return self._s[4585]! } public func Conversation_ScheduledVoiceChatStartsOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4582]!, self._r[4582]!, [_0]) + return formatWithArgumentRanges(self._s[4586]!, self._r[4586]!, [_0]) } - public var ChatList_HideAction: String { return self._s[4583]! } - public var Conversation_FileICloudDrive: String { return self._s[4585]! } + public var ChatList_HideAction: String { return self._s[4587]! } + public var Conversation_FileICloudDrive: String { return self._s[4589]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4586]!, self._r[4586]!, [_1]) + return formatWithArgumentRanges(self._s[4590]!, self._r[4590]!, [_1]) } - public var Passport_PasswordReset: String { return self._s[4588]! } - public var ChatList_Context_UnhideArchive: String { return self._s[4590]! } - public var ConvertToSupergroup_HelpText: String { return self._s[4591]! } - public var Calls_AddTab: String { return self._s[4592]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4594]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4595]! } - public var Privacy_GroupsAndChannels: String { return self._s[4598]! } - public var Conversation_UsernameCopied: String { return self._s[4599]! } - public var AutoNightTheme_Disabled: String { return self._s[4600]! } - public var CreatePoll_MultipleChoice: String { return self._s[4601]! } + public var Passport_PasswordReset: String { return self._s[4592]! } + public var ChatList_Context_UnhideArchive: String { return self._s[4594]! } + public var ConvertToSupergroup_HelpText: String { return self._s[4595]! } + public var Calls_AddTab: String { return self._s[4596]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4598]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4599]! } + public var Privacy_GroupsAndChannels: String { return self._s[4602]! } + public var Conversation_UsernameCopied: String { return self._s[4603]! } + public var AutoNightTheme_Disabled: String { return self._s[4604]! } + public var CreatePoll_MultipleChoice: String { return self._s[4605]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4602]!, self._r[4602]!, [_1]) + return formatWithArgumentRanges(self._s[4606]!, self._r[4606]!, [_1]) } - public var Watch_Bot_Restart: String { return self._s[4604]! } + public var Watch_Bot_Restart: String { return self._s[4608]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4605]!, self._r[4605]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[4609]!, self._r[4609]!, ["\(_0)"]) } - public var GroupInfo_ScamGroupWarning: String { return self._s[4607]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[4608]! } - public var Appearance_PreviewIncomingText: String { return self._s[4609]! } - public var ChatSettings_WidgetSettings: String { return self._s[4610]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4611]! } - public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4613]! } - public var Stats_GroupOverview: String { return self._s[4615]! } - public var ScheduledMessages_EditTime: String { return self._s[4618]! } - public var Month_GenFebruary: String { return self._s[4619]! } - public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4620]! } - public var Stickers_ClearRecent: String { return self._s[4621]! } - public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4622]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4623]! } - public var Stats_Message_PublicShares: String { return self._s[4624]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[4611]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[4612]! } + public var Appearance_PreviewIncomingText: String { return self._s[4613]! } + public var ChatSettings_WidgetSettings: String { return self._s[4614]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4615]! } + public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4617]! } + public var Stats_GroupOverview: String { return self._s[4619]! } + public var ScheduledMessages_EditTime: String { return self._s[4622]! } + public var Month_GenFebruary: String { return self._s[4623]! } + public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4624]! } + public var Stickers_ClearRecent: String { return self._s[4625]! } + public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4626]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4627]! } + public var Stats_Message_PublicShares: String { return self._s[4628]! } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4625]!, self._r[4625]!, [_0]) + return formatWithArgumentRanges(self._s[4629]!, self._r[4629]!, [_0]) } - public var Login_TermsOfServiceSignupDecline: String { return self._s[4626]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4627]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[4628]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4629]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4631]! } - public var CreatePoll_Create: String { return self._s[4632]! } - public var ChatList_Search_FilterLinks: String { return self._s[4633]! } - public var Your_cards_number_is_invalid: String { return self._s[4634]! } - public var Month_ShortApril: String { return self._s[4635]! } - public var SocksProxySetup_UseForCalls: String { return self._s[4636]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[4637]! } - public var SocksProxySetup_Status: String { return self._s[4638]! } - public var VoiceChat_UnmuteForMe: String { return self._s[4639]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4640]! } - public var ChatListFolder_CategoryBots: String { return self._s[4641]! } - public var Passport_FieldIdentitySelfieHelp: String { return self._s[4643]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4644]! } - public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4645]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[4646]! } - public var Conversation_TitleUnmute: String { return self._s[4647]! } - public var Group_Setup_TypeHeader: String { return self._s[4648]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[4630]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4631]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[4632]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4633]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4635]! } + public var CreatePoll_Create: String { return self._s[4636]! } + public var ChatList_Search_FilterLinks: String { return self._s[4637]! } + public var Your_cards_number_is_invalid: String { return self._s[4638]! } + public var Month_ShortApril: String { return self._s[4639]! } + public var SocksProxySetup_UseForCalls: String { return self._s[4640]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[4641]! } + public var SocksProxySetup_Status: String { return self._s[4642]! } + public var VoiceChat_UnmuteForMe: String { return self._s[4643]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4644]! } + public var ChatListFolder_CategoryBots: String { return self._s[4645]! } + public var Passport_FieldIdentitySelfieHelp: String { return self._s[4647]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4648]! } + public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4649]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[4650]! } + public var Conversation_TitleUnmute: String { return self._s[4651]! } + public var Group_Setup_TypeHeader: String { return self._s[4652]! } public func Conversation_ForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4649]!, self._r[4649]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4653]!, self._r[4653]!, [_0, _1]) } - public var Stats_ViewsPerPost: String { return self._s[4650]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4651]! } - public var Passport_Identity_TranslationHelp: String { return self._s[4652]! } + public var Stats_ViewsPerPost: String { return self._s[4654]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4655]! } + public var Passport_Identity_TranslationHelp: String { return self._s[4656]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4653]!, self._r[4653]!, [_1]) + return formatWithArgumentRanges(self._s[4657]!, self._r[4657]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[4654]! } + public var GroupInfo_Administrators_Title: String { return self._s[4658]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4655]!, self._r[4655]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4659]!, self._r[4659]!, [_1, _2]) } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4656]!, self._r[4656]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4660]!, self._r[4660]!, [_1, _2, _3]) } - public var CheckoutInfo_ShippingInfoState: String { return self._s[4657]! } - public var Passport_Language_my: String { return self._s[4659]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4660]! } - public var VoiceChat_Unpin: String { return self._s[4661]! } - public var Map_PlacesNearby: String { return self._s[4662]! } - public var Channel_About_Help: String { return self._s[4663]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[4664]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[4665]! } - public var Channel_Username_Title: String { return self._s[4666]! } - public var Activity_RecordingVideoMessage: String { return self._s[4667]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[4661]! } + public var Passport_Language_my: String { return self._s[4663]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4664]! } + public var VoiceChat_Unpin: String { return self._s[4665]! } + public var Map_PlacesNearby: String { return self._s[4666]! } + public var Channel_About_Help: String { return self._s[4667]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[4668]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[4669]! } + public var Channel_Username_Title: String { return self._s[4670]! } + public var Activity_RecordingVideoMessage: String { return self._s[4671]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4668]!, self._r[4668]!, [_0]) + return formatWithArgumentRanges(self._s[4672]!, self._r[4672]!, [_0]) } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[4669]! } - public var Passport_DiscardMessageDescription: String { return self._s[4670]! } - public var Conversation_LinkDialogOpen: String { return self._s[4671]! } - public var ChatList_Context_HideArchive: String { return self._s[4672]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[4673]! } + public var Passport_DiscardMessageDescription: String { return self._s[4674]! } + public var Conversation_LinkDialogOpen: String { return self._s[4675]! } + public var ChatList_Context_HideArchive: String { return self._s[4676]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4673]!, self._r[4673]!, [_0]) + return formatWithArgumentRanges(self._s[4677]!, self._r[4677]!, [_0]) } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4674]! } - public var Conversation_Admin: String { return self._s[4675]! } - public var DialogList_TabTitle: String { return self._s[4676]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4678]! } + public var Conversation_Admin: String { return self._s[4679]! } + public var DialogList_TabTitle: String { return self._s[4680]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4677]!, self._r[4677]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4681]!, self._r[4681]!, [_1, _2]) } - public var Notifications_PermissionsUnreachableText: String { return self._s[4678]! } - public var Passport_Identity_GenderMale: String { return self._s[4680]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[4682]! } + public var Passport_Identity_GenderMale: String { return self._s[4684]! } public func VoiceChat_EditTitleSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4682]!, self._r[4682]!, [_0]) + return formatWithArgumentRanges(self._s[4686]!, self._r[4686]!, [_0]) } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4683]! } - public var PhoneNumberHelp_Alert: String { return self._s[4684]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4685]! } - public var Notifications_InAppNotifications: String { return self._s[4686]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4687]! } + public var PhoneNumberHelp_Alert: String { return self._s[4688]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4689]! } + public var Notifications_InAppNotifications: String { return self._s[4690]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4687]!, self._r[4687]!, [_0]) + return formatWithArgumentRanges(self._s[4691]!, self._r[4691]!, [_0]) } - public var Notification_VideoCallOutgoing: String { return self._s[4688]! } - public var Login_InvalidCodeError: String { return self._s[4689]! } - public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4690]! } + public var Notification_VideoCallOutgoing: String { return self._s[4692]! } + public var Login_InvalidCodeError: String { return self._s[4693]! } + public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4694]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4692]!, self._r[4692]!, [_0]) + return formatWithArgumentRanges(self._s[4696]!, self._r[4696]!, [_0]) } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4693]! } - public var ReportPeer_Report: String { return self._s[4694]! } - public var Camera_FlashOff: String { return self._s[4697]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4700]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4697]! } + public var ReportPeer_Report: String { return self._s[4698]! } + public var Camera_FlashOff: String { return self._s[4701]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4704]! } public func Notification_VoiceChatScheduledTomorrow(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4701]!, self._r[4701]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4705]!, self._r[4705]!, [_1, _2]) } - public var PrivacyPolicy_DeclineTitle: String { return self._s[4704]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4705]! } - public var Passport_FieldEmail: String { return self._s[4706]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[4708]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4709]! } + public var Passport_FieldEmail: String { return self._s[4710]! } public func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4707]!, self._r[4707]!, [_1]) + return formatWithArgumentRanges(self._s[4711]!, self._r[4711]!, [_1]) } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[4708]! } - public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4709]! } - public var Group_OwnershipTransfer_Title: String { return self._s[4710]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[4711]! } - public var Login_PhoneNumberHelp: String { return self._s[4713]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4714]! } - public var Conversation_PinnedQuiz: String { return self._s[4715]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[4716]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4717]! } - public var Group_MessagePhotoUpdated: String { return self._s[4718]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[4719]! } - public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4720]! } - public var Passport_Identity_Translations: String { return self._s[4722]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4723]! } - public var ChannelInfo_DeleteChannel: String { return self._s[4725]! } - public var PasscodeSettings_HelpBottom: String { return self._s[4726]! } - public var Channel_Members_AddMembers: String { return self._s[4727]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[4728]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4730]! } - public var Conversation_HoldForAudio: String { return self._s[4731]! } - public var Media_LimitedAccessChangeSettings: String { return self._s[4733]! } - public var Watch_LastSeen_Lately: String { return self._s[4734]! } - public var ChatList_Context_MarkAsRead: String { return self._s[4735]! } - public var Conversation_PinnedMessage: String { return self._s[4736]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4737]! } - public var VoiceChat_StopRecordingStop: String { return self._s[4739]! } - public var Passport_UpdateRequiredError: String { return self._s[4740]! } - public var PrivacySettings_Passcode: String { return self._s[4741]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[4712]! } + public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4713]! } + public var Group_OwnershipTransfer_Title: String { return self._s[4714]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[4715]! } + public var Login_PhoneNumberHelp: String { return self._s[4717]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4718]! } + public var Conversation_PinnedQuiz: String { return self._s[4719]! } + public var CreateGroup_SoftUserLimitAlert: String { return self._s[4720]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4721]! } + public var Group_MessagePhotoUpdated: String { return self._s[4722]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[4723]! } + public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4724]! } + public var Passport_Identity_Translations: String { return self._s[4726]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4727]! } + public var ChannelInfo_DeleteChannel: String { return self._s[4729]! } + public var PasscodeSettings_HelpBottom: String { return self._s[4730]! } + public var Channel_Members_AddMembers: String { return self._s[4731]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[4732]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4734]! } + public var Conversation_HoldForAudio: String { return self._s[4735]! } + public var Media_LimitedAccessChangeSettings: String { return self._s[4737]! } + public var Watch_LastSeen_Lately: String { return self._s[4738]! } + public var ChatList_Context_MarkAsRead: String { return self._s[4739]! } + public var Conversation_PinnedMessage: String { return self._s[4740]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4741]! } + public var VoiceChat_StopRecordingStop: String { return self._s[4743]! } + public var Passport_UpdateRequiredError: String { return self._s[4744]! } + public var PrivacySettings_Passcode: String { return self._s[4745]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4742]!, self._r[4742]!, [_0]) + return formatWithArgumentRanges(self._s[4746]!, self._r[4746]!, [_0]) } - public var AutoNightTheme_NotAvailable: String { return self._s[4743]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[4744]! } - public var VoiceOver_Common_On: String { return self._s[4745]! } - public var LoginPassword_InvalidPasswordError: String { return self._s[4746]! } - public var ChatListFolder_IncludedSectionHeader: String { return self._s[4747]! } - public var Channel_SignMessages_Help: String { return self._s[4748]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4749]! } - public var Conversation_TitleNoComments: String { return self._s[4750]! } - public var MediaPicker_LivePhotoDescription: String { return self._s[4751]! } - public var GroupInfo_Permissions: String { return self._s[4752]! } - public var GroupPermission_NoSendLinks: String { return self._s[4755]! } + public var AutoNightTheme_NotAvailable: String { return self._s[4747]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[4748]! } + public var VoiceOver_Common_On: String { return self._s[4749]! } + public var LoginPassword_InvalidPasswordError: String { return self._s[4750]! } + public var ChatListFolder_IncludedSectionHeader: String { return self._s[4751]! } + public var Channel_SignMessages_Help: String { return self._s[4752]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4753]! } + public var Conversation_TitleNoComments: String { return self._s[4754]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[4755]! } + public var GroupInfo_Permissions: String { return self._s[4756]! } + public var GroupPermission_NoSendLinks: String { return self._s[4759]! } public func Conversation_ScheduledVoiceChatStartsTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4756]!, self._r[4756]!, [_0]) + return formatWithArgumentRanges(self._s[4760]!, self._r[4760]!, [_0]) } - public var Passport_Identity_ResidenceCountry: String { return self._s[4757]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[4759]! } - public var ChatList_ArchiveAction: String { return self._s[4760]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[4761]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[4763]! } + public var ChatList_ArchiveAction: String { return self._s[4764]! } public func Channel_AdminLog_DisabledSlowmode(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4761]!, self._r[4761]!, [_0]) + return formatWithArgumentRanges(self._s[4765]!, self._r[4765]!, [_0]) } - public var GroupInfo_GroupHistory: String { return self._s[4762]! } + public var GroupInfo_GroupHistory: String { return self._s[4766]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4764]!, self._r[4764]!, [_0]) + return formatWithArgumentRanges(self._s[4768]!, self._r[4768]!, [_0]) } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4766]! } - public var Channel_Info_Banned: String { return self._s[4767]! } - public var Paint_RecentStickers: String { return self._s[4768]! } - public var VoiceOver_MessageContextSend: String { return self._s[4769]! } - public var Group_ErrorNotMutualContact: String { return self._s[4770]! } - public var ReportPeer_ReasonOther: String { return self._s[4772]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4773]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4775]! } - public var KeyCommand_Find: String { return self._s[4776]! } + public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4770]! } + public var Channel_Info_Banned: String { return self._s[4771]! } + public var Paint_RecentStickers: String { return self._s[4772]! } + public var VoiceOver_MessageContextSend: String { return self._s[4773]! } + public var Group_ErrorNotMutualContact: String { return self._s[4774]! } + public var ReportPeer_ReasonOther: String { return self._s[4776]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4777]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4779]! } + public var KeyCommand_Find: String { return self._s[4780]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4777]!, self._r[4777]!, [_0]) + return formatWithArgumentRanges(self._s[4781]!, self._r[4781]!, [_0]) } - public var ChatList_Context_Unmute: String { return self._s[4778]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4779]! } - public var TwoFactorSetup_ResetDone_Action: String { return self._s[4780]! } - public var Stickers_GroupStickersHelp: String { return self._s[4781]! } - public var Checkout_Title: String { return self._s[4782]! } - public var Activity_RecordingAudio: String { return self._s[4783]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4784]! } - public var BlockedUsers_BlockTitle: String { return self._s[4785]! } - public var DialogList_SavedMessagesHelp: String { return self._s[4787]! } - public var Calls_All: String { return self._s[4788]! } - public var Settings_FAQ_Button: String { return self._s[4790]! } - public var Conversation_Dice_u1F3B0: String { return self._s[4792]! } + public var ChatList_Context_Unmute: String { return self._s[4782]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4783]! } + public var TwoFactorSetup_ResetDone_Action: String { return self._s[4784]! } + public var Stickers_GroupStickersHelp: String { return self._s[4785]! } + public var Checkout_Title: String { return self._s[4786]! } + public var Activity_RecordingAudio: String { return self._s[4787]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4788]! } + public var BlockedUsers_BlockTitle: String { return self._s[4789]! } + public var DialogList_SavedMessagesHelp: String { return self._s[4791]! } + public var Calls_All: String { return self._s[4792]! } + public var Settings_FAQ_Button: String { return self._s[4794]! } + public var Conversation_Dice_u1F3B0: String { return self._s[4796]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4793]!, self._r[4793]!, [_0]) + return formatWithArgumentRanges(self._s[4797]!, self._r[4797]!, [_0]) } - public var Conversation_ReportGroupLocation: String { return self._s[4794]! } - public var Passport_Scans_Upload: String { return self._s[4795]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4797]! } - public var ChatList_UnarchiveAction: String { return self._s[4798]! } - public var Stats_GroupTopInviter_History: String { return self._s[4799]! } - public var GroupInfo_Permissions_Title: String { return self._s[4800]! } - public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4801]! } - public var Passport_Language_el: String { return self._s[4802]! } - public var Channel_DiscussionMessageUnavailable: String { return self._s[4803]! } + public var Conversation_ReportGroupLocation: String { return self._s[4798]! } + public var Passport_Scans_Upload: String { return self._s[4799]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4801]! } + public var ChatList_UnarchiveAction: String { return self._s[4802]! } + public var Stats_GroupTopInviter_History: String { return self._s[4803]! } + public var GroupInfo_Permissions_Title: String { return self._s[4804]! } + public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4805]! } + public var Passport_Language_el: String { return self._s[4806]! } + public var Channel_DiscussionMessageUnavailable: String { return self._s[4807]! } public func UserInfo_ContactForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4804]!, self._r[4804]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4808]!, self._r[4808]!, [_0, _1]) } - public var GroupInfo_ActionPromote: String { return self._s[4805]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4806]! } - public var Media_LimitedAccessSelectMore: String { return self._s[4807]! } + public var GroupInfo_ActionPromote: String { return self._s[4809]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4810]! } + public var Media_LimitedAccessSelectMore: String { return self._s[4811]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4808]!, self._r[4808]!, [_0]) + return formatWithArgumentRanges(self._s[4812]!, self._r[4812]!, [_0]) } - public var VoiceOver_Chat_Reply: String { return self._s[4809]! } - public var Month_GenMay: String { return self._s[4810]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4811]! } - public var Chat_PsaTooltip_covid: String { return self._s[4812]! } - public var Watch_Suggestion_CantTalk: String { return self._s[4813]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4814]! } - public var AppUpgrade_Running: String { return self._s[4815]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4818]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4819]! } - public var SharedMedia_EmptyText: String { return self._s[4820]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[4821]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4822]! } - public var Message_PinnedGame: String { return self._s[4823]! } - public var KeyCommand_SearchInChat: String { return self._s[4824]! } - public var Appearance_ThemeCarouselNewNight: String { return self._s[4825]! } - public var ChatList_Search_FilterMedia: String { return self._s[4826]! } - public var Message_PinnedAudioMessage: String { return self._s[4827]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[4829]! } + public var VoiceOver_Chat_Reply: String { return self._s[4813]! } + public var Month_GenMay: String { return self._s[4814]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4815]! } + public var Chat_PsaTooltip_covid: String { return self._s[4816]! } + public var Watch_Suggestion_CantTalk: String { return self._s[4817]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4818]! } + public var AppUpgrade_Running: String { return self._s[4819]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4822]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4823]! } + public var SharedMedia_EmptyText: String { return self._s[4824]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[4825]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4826]! } + public var Message_PinnedGame: String { return self._s[4827]! } + public var KeyCommand_SearchInChat: String { return self._s[4828]! } + public var Appearance_ThemeCarouselNewNight: String { return self._s[4829]! } + public var ChatList_Search_FilterMedia: String { return self._s[4830]! } + public var Message_PinnedAudioMessage: String { return self._s[4831]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[4833]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4830]!, self._r[4830]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4834]!, self._r[4834]!, [_1, _2]) } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4831]! } - public var InviteLink_Create: String { return self._s[4832]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4835]! } + public var InviteLink_Create: String { return self._s[4836]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4833]!, self._r[4833]!, [_0]) + return formatWithArgumentRanges(self._s[4837]!, self._r[4837]!, [_0]) } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4834]!, self._r[4834]!, [_0]) + return formatWithArgumentRanges(self._s[4838]!, self._r[4838]!, [_0]) } - public var Settings_AddAccount: String { return self._s[4835]! } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4836]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4837]! } - public var Channel_JoinChannel: String { return self._s[4838]! } - public var Watch_UserInfo_Unblock: String { return self._s[4839]! } - public var PhoneLabel_Title: String { return self._s[4840]! } - public var VoiceChat_EditPermissions: String { return self._s[4842]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[4843]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4844]! } + public var Settings_AddAccount: String { return self._s[4839]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4840]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4841]! } + public var Channel_JoinChannel: String { return self._s[4842]! } + public var Watch_UserInfo_Unblock: String { return self._s[4843]! } + public var PhoneLabel_Title: String { return self._s[4844]! } + public var VoiceChat_EditPermissions: String { return self._s[4846]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[4847]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4848]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4845]!, self._r[4845]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[4849]!, self._r[4849]!, [_1, _2, _3, _4, _5, _6]) } - public var Channel_AddBotErrorHaveRights: String { return self._s[4846]! } - public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4847]! } - public var DialogList_EncryptionProcessing: String { return self._s[4848]! } - public var ChatList_Search_FilterChats: String { return self._s[4849]! } - public var WatchRemote_NotificationText: String { return self._s[4850]! } - public var EditTheme_ChangeColors: String { return self._s[4852]! } - public var GroupRemoved_ViewUserInfo: String { return self._s[4853]! } - public var CallSettings_OnMobile: String { return self._s[4855]! } - public var Month_ShortFebruary: String { return self._s[4857]! } - public var VoiceOver_MessageContextReply: String { return self._s[4858]! } - public var AutoremoveSetup_TimerValueNever: String { return self._s[4859]! } - public var Group_Location_ChangeLocation: String { return self._s[4861]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[4850]! } + public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4851]! } + public var DialogList_EncryptionProcessing: String { return self._s[4852]! } + public var ChatList_Search_FilterChats: String { return self._s[4853]! } + public var WatchRemote_NotificationText: String { return self._s[4854]! } + public var EditTheme_ChangeColors: String { return self._s[4856]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[4857]! } + public var CallSettings_OnMobile: String { return self._s[4859]! } + public var Month_ShortFebruary: String { return self._s[4861]! } + public var VoiceOver_MessageContextReply: String { return self._s[4862]! } + public var AutoremoveSetup_TimerValueNever: String { return self._s[4863]! } + public var Group_Location_ChangeLocation: String { return self._s[4865]! } public func PUSH_VIDEO_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4862]!, self._r[4862]!, [_1]) + return formatWithArgumentRanges(self._s[4866]!, self._r[4866]!, [_1]) } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4863]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[4864]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4865]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4867]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[4868]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4869]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4867]!, self._r[4867]!, [_0]) + return formatWithArgumentRanges(self._s[4871]!, self._r[4871]!, [_0]) } - public var PhotoEditor_WarmthTool: String { return self._s[4868]! } - public var Login_InfoAvatarPhoto: String { return self._s[4869]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4870]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4871]! } - public var Map_PlacesInThisArea: String { return self._s[4872]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[4873]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[4874]! } + public var PhotoEditor_WarmthTool: String { return self._s[4872]! } + public var Login_InfoAvatarPhoto: String { return self._s[4873]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4874]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4875]! } + public var Map_PlacesInThisArea: String { return self._s[4876]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[4877]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[4878]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4875]!, self._r[4875]!, [_1]) - } - public var PeerInfo_ReportProfileVideo: String { return self._s[4876]! } - public var ShareMenu_Send: String { return self._s[4877]! } - public var Username_InvalidStartsWithNumber: String { return self._s[4878]! } - public func Channel_AdminLog_StartedVoiceChat(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4879]!, self._r[4879]!, [_1]) } - public var Appearance_AppIconClassicX: String { return self._s[4880]! } - public var Report_Report: String { return self._s[4881]! } + public var PeerInfo_ReportProfileVideo: String { return self._s[4880]! } + public var ShareMenu_Send: String { return self._s[4881]! } + public var Username_InvalidStartsWithNumber: String { return self._s[4882]! } + public func Channel_AdminLog_StartedVoiceChat(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4883]!, self._r[4883]!, [_1]) + } + public var Appearance_AppIconClassicX: String { return self._s[4884]! } + public var Report_Report: String { return self._s[4885]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4882]!, self._r[4882]!, [_1]) + return formatWithArgumentRanges(self._s[4886]!, self._r[4886]!, [_1]) } - public var Conversation_StopPoll: String { return self._s[4883]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4885]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[4886]! } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4887]! } - public var Conversation_Timer_Title: String { return self._s[4888]! } - public var Common_Next: String { return self._s[4889]! } - public var Notification_Exceptions_NewException: String { return self._s[4890]! } + public var Conversation_StopPoll: String { return self._s[4887]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4889]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[4890]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4891]! } + public var Conversation_Timer_Title: String { return self._s[4892]! } + public var Common_Next: String { return self._s[4893]! } + public var Notification_Exceptions_NewException: String { return self._s[4894]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4891]!, self._r[4891]!, [_0]) + return formatWithArgumentRanges(self._s[4895]!, self._r[4895]!, [_0]) } - public var AccessDenied_CallMicrophone: String { return self._s[4892]! } - public var VoiceChat_UnmutePeer: String { return self._s[4893]! } - public var ChatImportActivity_Retry: String { return self._s[4894]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4895]! } - public var ChangePhoneNumberCode_Help: String { return self._s[4896]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4897]! } - public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4898]! } - public var BlockedUsers_LeavePrefix: String { return self._s[4899]! } + public var AccessDenied_CallMicrophone: String { return self._s[4896]! } + public var VoiceChat_UnmutePeer: String { return self._s[4897]! } + public var ChatImportActivity_Retry: String { return self._s[4898]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4899]! } + public var ChangePhoneNumberCode_Help: String { return self._s[4900]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4901]! } + public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4902]! } + public var BlockedUsers_LeavePrefix: String { return self._s[4903]! } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4900]!, self._r[4900]!, [_0]) + return formatWithArgumentRanges(self._s[4904]!, self._r[4904]!, [_0]) } - public var Group_About_Help: String { return self._s[4901]! } - public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4902]! } - public var Tour_Title3: String { return self._s[4903]! } - public var Watch_Conversation_Unblock: String { return self._s[4904]! } - public var Watch_UserInfo_Block: String { return self._s[4905]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[4906]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[4907]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4908]! } - public var TextFormat_AddLinkTitle: String { return self._s[4909]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4910]! } + public var Group_About_Help: String { return self._s[4905]! } + public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4906]! } + public var Tour_Title3: String { return self._s[4907]! } + public var Watch_Conversation_Unblock: String { return self._s[4908]! } + public var Watch_UserInfo_Block: String { return self._s[4909]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[4910]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[4911]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4912]! } + public var TextFormat_AddLinkTitle: String { return self._s[4913]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4914]! } public func Notification_VoiceChatScheduled(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4911]!, self._r[4911]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4915]!, self._r[4915]!, [_1, _2]) } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4912]! } - public var FastTwoStepSetup_PasswordSection: String { return self._s[4914]! } - public var Compose_ChannelMembers: String { return self._s[4915]! } - public var Conversation_ForwardTitle: String { return self._s[4916]! } - public var Conversation_PinnedPoll: String { return self._s[4919]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4916]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[4918]! } + public var Compose_ChannelMembers: String { return self._s[4919]! } + public var Conversation_ForwardTitle: String { return self._s[4920]! } + public var Conversation_PinnedPoll: String { return self._s[4923]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4920]!, self._r[4920]!, [_0]) + return formatWithArgumentRanges(self._s[4924]!, self._r[4924]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4921]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4923]! } - public var Stats_Overview: String { return self._s[4924]! } - public var Map_HomeAndWorkTitle: String { return self._s[4925]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4925]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4927]! } + public var Stats_Overview: String { return self._s[4928]! } + public var Map_HomeAndWorkTitle: String { return self._s[4929]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4926]!, self._r[4926]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4930]!, self._r[4930]!, [_1, _2, _3]) } - public var Passport_Address_CityPlaceholder: String { return self._s[4927]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4928]! } - public var Privacy_PhoneNumber: String { return self._s[4929]! } - public var ChatList_Search_FilterFiles: String { return self._s[4930]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4931]! } - public var ChannelIntro_CreateChannel: String { return self._s[4932]! } - public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4933]! } + public var Passport_Address_CityPlaceholder: String { return self._s[4931]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4932]! } + public var Privacy_PhoneNumber: String { return self._s[4933]! } + public var ChatList_Search_FilterFiles: String { return self._s[4934]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4935]! } + public var ChannelIntro_CreateChannel: String { return self._s[4936]! } + public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4937]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4934]!, self._r[4934]!, [_0]) + return formatWithArgumentRanges(self._s[4938]!, self._r[4938]!, [_0]) } - public var Weekday_ShortMonday: String { return self._s[4935]! } - public var Passport_Language_ar: String { return self._s[4937]! } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4938]! } - public var TwoFactorSetup_Done_Title: String { return self._s[4939]! } - public var Calls_RatingFeedback: String { return self._s[4940]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4941]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[4944]! } + public var Weekday_ShortMonday: String { return self._s[4939]! } + public var Passport_Language_ar: String { return self._s[4941]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4942]! } + public var TwoFactorSetup_Done_Title: String { return self._s[4943]! } + public var Calls_RatingFeedback: String { return self._s[4944]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4945]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[4948]! } public func VoiceOver_SelfDestructTimerOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4945]!, self._r[4945]!, [_0]) - } - public var Watch_Compose_Send: String { return self._s[4946]! } - public var PasscodeSettings_ChangePasscode: String { return self._s[4947]! } - public var WebSearch_RecentSectionClear: String { return self._s[4948]! } - public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4949]!, self._r[4949]!, [_0]) } - public var WallpaperSearch_ColorTeal: String { return self._s[4950]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4951]! } - public var Permissions_ContactsTitle_v0: String { return self._s[4952]! } - public var Checkout_PasswordEntry_Pay: String { return self._s[4954]! } - public var Settings_SavedMessages: String { return self._s[4955]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4956]! } - public var Month_ShortMarch: String { return self._s[4957]! } - public var Message_Location: String { return self._s[4958]! } + public var Watch_Compose_Send: String { return self._s[4950]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[4951]! } + public var WebSearch_RecentSectionClear: String { return self._s[4952]! } + public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4953]!, self._r[4953]!, [_0]) + } + public var WallpaperSearch_ColorTeal: String { return self._s[4954]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4955]! } + public var Permissions_ContactsTitle_v0: String { return self._s[4956]! } + public var Checkout_PasswordEntry_Pay: String { return self._s[4958]! } + public var Settings_SavedMessages: String { return self._s[4959]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4960]! } + public var Month_ShortMarch: String { return self._s[4961]! } + public var Message_Location: String { return self._s[4962]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4959]!, self._r[4959]!, [_1]) + return formatWithArgumentRanges(self._s[4963]!, self._r[4963]!, [_1]) } public func Channel_AdminLog_MessageRemovedAdminName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4960]!, self._r[4960]!, [_1]) + return formatWithArgumentRanges(self._s[4964]!, self._r[4964]!, [_1]) } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4961]!, self._r[4961]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4965]!, self._r[4965]!, [_1, _2]) } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[4963]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[4967]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4964]!, self._r[4964]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4968]!, self._r[4968]!, [_1, _2]) } - public var GroupPermission_NoSendMedia: String { return self._s[4965]! } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[4966]! } - public var SharedMedia_CategoryDocs: String { return self._s[4967]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[4968]! } - public var Paint_Framed: String { return self._s[4969]! } - public var Channel_Setup_LinkTypePublic: String { return self._s[4970]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4971]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[4972]! } + public var GroupPermission_NoSendMedia: String { return self._s[4969]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[4970]! } + public var SharedMedia_CategoryDocs: String { return self._s[4971]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[4972]! } + public var Paint_Framed: String { return self._s[4973]! } + public var Channel_Setup_LinkTypePublic: String { return self._s[4974]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4975]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[4976]! } public func ChatImport_SelectionConfirmationUserWithTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4973]!, self._r[4973]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4977]!, self._r[4977]!, [_1, _2]) } - public var TwoStepAuth_RecoveryUnavailableResetAction: String { return self._s[4974]! } - public var Channel_SignMessages: String { return self._s[4975]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[4976]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4977]! } + public var TwoStepAuth_RecoveryUnavailableResetAction: String { return self._s[4978]! } + public var Channel_SignMessages: String { return self._s[4979]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[4980]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4981]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4978]!, self._r[4978]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4982]!, self._r[4982]!, [_1, _2]) } - public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4979]! } - public var ImportStickerPack_ChooseName: String { return self._s[4980]! } - public var GroupInfo_UpgradeButton: String { return self._s[4981]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4982]! } + public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4983]! } + public var ImportStickerPack_ChooseName: String { return self._s[4984]! } + public var GroupInfo_UpgradeButton: String { return self._s[4985]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4986]! } public func Conversation_ScheduledVoiceChatStartsTomorrowShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4983]!, self._r[4983]!, [_0]) + return formatWithArgumentRanges(self._s[4987]!, self._r[4987]!, [_0]) } - public var AutoDownloadSettings_Files: String { return self._s[4984]! } + public var AutoDownloadSettings_Files: String { return self._s[4988]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4985]!, self._r[4985]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4989]!, self._r[4989]!, [_0, _1]) } - public var Login_SendCodeViaSms: String { return self._s[4987]! } - public var Update_UpdateApp: String { return self._s[4988]! } - public var Channel_Setup_TypePublic: String { return self._s[4989]! } - public var Watch_Compose_CreateMessage: String { return self._s[4990]! } + public var Login_SendCodeViaSms: String { return self._s[4991]! } + public var Update_UpdateApp: String { return self._s[4992]! } + public var Channel_Setup_TypePublic: String { return self._s[4993]! } + public var Watch_Compose_CreateMessage: String { return self._s[4994]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4991]!, self._r[4991]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4995]!, self._r[4995]!, [_1, _2, _3]) } - public var StickerPacksSettings_ManagingHelp: String { return self._s[4992]! } - public var VoiceOver_Chat_Video: String { return self._s[4993]! } - public var Forward_ChannelReadOnly: String { return self._s[4994]! } - public var StickerPack_HideStickers: String { return self._s[4995]! } - public var ChatListFolder_NameContacts: String { return self._s[4996]! } - public var Profile_BotInfo: String { return self._s[4997]! } - public var Document_TargetConfirmationFormat: String { return self._s[4998]! } - public var GroupInfo_InviteByLink: String { return self._s[4999]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[5000]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[5001]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[5002]! } - public var Passport_NotLoggedInMessage: String { return self._s[5003]! } - public var Conversation_StopQuizConfirmation: String { return self._s[5004]! } - public var Checkout_PaymentMethod: String { return self._s[5005]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[5010]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[5011]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[5012]! } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[5013]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[5014]! } - public var Conversation_GigagroupDescription: String { return self._s[5015]! } - public var Camera_Title: String { return self._s[5016]! } - public var Map_Directions: String { return self._s[5017]! } - public var Stats_MessagePublicForwardsTitle: String { return self._s[5019]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[5020]! } - public var Profile_EncryptionKey: String { return self._s[5021]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[4996]! } + public var VoiceOver_Chat_Video: String { return self._s[4997]! } + public var Forward_ChannelReadOnly: String { return self._s[4998]! } + public var StickerPack_HideStickers: String { return self._s[4999]! } + public var ChatListFolder_NameContacts: String { return self._s[5000]! } + public var Profile_BotInfo: String { return self._s[5001]! } + public var Document_TargetConfirmationFormat: String { return self._s[5002]! } + public var GroupInfo_InviteByLink: String { return self._s[5003]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[5004]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[5005]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[5006]! } + public var Passport_NotLoggedInMessage: String { return self._s[5007]! } + public var Conversation_StopQuizConfirmation: String { return self._s[5008]! } + public var Checkout_PaymentMethod: String { return self._s[5009]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[5014]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[5015]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[5016]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[5017]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[5018]! } + public var Conversation_GigagroupDescription: String { return self._s[5019]! } + public var Camera_Title: String { return self._s[5020]! } + public var Map_Directions: String { return self._s[5021]! } + public var Stats_MessagePublicForwardsTitle: String { return self._s[5023]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[5024]! } + public var Profile_EncryptionKey: String { return self._s[5025]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5022]!, self._r[5022]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[5026]!, self._r[5026]!, [_1, "\(_2)"]) } - public var VoiceChat_VideoPreviewShareCamera: String { return self._s[5023]! } + public var VoiceChat_VideoPreviewShareCamera: String { return self._s[5027]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5024]!, self._r[5024]!, [_0, _1]) + return formatWithArgumentRanges(self._s[5028]!, self._r[5028]!, [_0, _1]) } - public var Passport_Identity_TypePassport: String { return self._s[5025]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[5027]! } - public var Common_No: String { return self._s[5028]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[5029]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[5030]! } - public var Settings_AboutEmpty: String { return self._s[5031]! } - public var TwoStepAuth_FloodError: String { return self._s[5033]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[5034]! } + public var Passport_Identity_TypePassport: String { return self._s[5029]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[5031]! } + public var Common_No: String { return self._s[5032]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[5033]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[5034]! } + public var Settings_AboutEmpty: String { return self._s[5035]! } + public var TwoStepAuth_FloodError: String { return self._s[5037]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[5038]! } public func Notification_VoiceChatScheduledChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5035]!, self._r[5035]!, [_0]) + return formatWithArgumentRanges(self._s[5039]!, self._r[5039]!, [_0]) } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5037]!, self._r[5037]!, [_1]) + return formatWithArgumentRanges(self._s[5041]!, self._r[5041]!, [_1]) } - public var Notification_Exceptions_MessagePreviewAlwaysOn: String { return self._s[5040]! } - public var Conversation_Edit: String { return self._s[5041]! } - public var CheckoutInfo_SaveInfo: String { return self._s[5043]! } - public var VoiceOver_Chat_AnonymousPoll: String { return self._s[5044]! } - public var Call_CameraTooltip: String { return self._s[5046]! } - public var InstantPage_FeedbackButtonShort: String { return self._s[5047]! } - public var Contacts_InviteToTelegram: String { return self._s[5048]! } - public var Notifications_ResetAllNotifications: String { return self._s[5049]! } - public var Calls_NewCall: String { return self._s[5050]! } - public var VoiceOver_Chat_Music: String { return self._s[5053]! } - public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[5054]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[5055]! } - public var Channel_Edit_AboutItem: String { return self._s[5056]! } - public var Message_VideoExpired: String { return self._s[5057]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[5058]! } - public var Settings_TryEnterPassword: String { return self._s[5059]! } + public var Notification_Exceptions_MessagePreviewAlwaysOn: String { return self._s[5044]! } + public var Conversation_Edit: String { return self._s[5045]! } + public var CheckoutInfo_SaveInfo: String { return self._s[5047]! } + public var VoiceOver_Chat_AnonymousPoll: String { return self._s[5048]! } + public var Call_CameraTooltip: String { return self._s[5050]! } + public var InstantPage_FeedbackButtonShort: String { return self._s[5051]! } + public var Contacts_InviteToTelegram: String { return self._s[5052]! } + public var Notifications_ResetAllNotifications: String { return self._s[5053]! } + public var Calls_NewCall: String { return self._s[5054]! } + public var VoiceOver_Chat_Music: String { return self._s[5057]! } + public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[5058]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[5059]! } + public var Channel_Edit_AboutItem: String { return self._s[5060]! } + public var Message_VideoExpired: String { return self._s[5061]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[5062]! } + public var Settings_TryEnterPassword: String { return self._s[5063]! } public func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5060]!, self._r[5060]!, [_1, _2]) + return formatWithArgumentRanges(self._s[5064]!, self._r[5064]!, [_1, _2]) } - public var NotificationsSound_Input: String { return self._s[5062]! } - public var Notifications_ClassicTones: String { return self._s[5063]! } - public var Conversation_StatusTyping: String { return self._s[5064]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[5065]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[5066]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[5067]! } - public var Conversation_MessageLeaveComment: String { return self._s[5068]! } - public var UserInfo_TapToCall: String { return self._s[5069]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[5070]! } + public var NotificationsSound_Input: String { return self._s[5066]! } + public var Notifications_ClassicTones: String { return self._s[5067]! } + public var Conversation_StatusTyping: String { return self._s[5068]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[5069]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[5070]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[5071]! } + public var Conversation_MessageLeaveComment: String { return self._s[5072]! } + public var UserInfo_TapToCall: String { return self._s[5073]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[5074]! } public func ScheduleVoiceChat_ScheduleOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5071]!, self._r[5071]!, [_0, _1]) + return formatWithArgumentRanges(self._s[5075]!, self._r[5075]!, [_0, _1]) } - public var Conversation_ClearAll: String { return self._s[5073]! } - public var UserInfo_NotificationsDefault: String { return self._s[5074]! } + public var Conversation_ClearAll: String { return self._s[5077]! } + public var UserInfo_NotificationsDefault: String { return self._s[5078]! } public func TwoFactorSetup_ResetFloodWait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5075]!, self._r[5075]!, [_0]) + return formatWithArgumentRanges(self._s[5079]!, self._r[5079]!, [_0]) } - public var Location_ProximityGroupTip: String { return self._s[5076]! } - public var Map_ChooseAPlace: String { return self._s[5077]! } - public var GroupInfo_AddParticipantTitle: String { return self._s[5079]! } - public var ChatList_PeerTypeNonContact: String { return self._s[5080]! } - public var Conversation_SlideToCancel: String { return self._s[5081]! } - public var Month_ShortJuly: String { return self._s[5082]! } - public var SocksProxySetup_ProxyType: String { return self._s[5083]! } + public var Location_ProximityGroupTip: String { return self._s[5080]! } + public var Map_ChooseAPlace: String { return self._s[5081]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[5083]! } + public var ChatList_PeerTypeNonContact: String { return self._s[5084]! } + public var Conversation_SlideToCancel: String { return self._s[5085]! } + public var Month_ShortJuly: String { return self._s[5086]! } + public var SocksProxySetup_ProxyType: String { return self._s[5087]! } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5084]!, self._r[5084]!, [_0]) + return formatWithArgumentRanges(self._s[5088]!, self._r[5088]!, [_0]) } - public var StickerPacks_ActionArchive: String { return self._s[5085]! } - public var ChatList_EditFolders: String { return self._s[5086]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[5087]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[5089]! } + public var StickerPacks_ActionArchive: String { return self._s[5089]! } + public var ChatList_EditFolders: String { return self._s[5090]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[5091]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[5093]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5090]!, self._r[5090]!, [_0]) + return formatWithArgumentRanges(self._s[5094]!, self._r[5094]!, [_0]) } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[5091]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[5092]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[5094]! } + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[5095]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[5096]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[5098]! } public func Conversation_ScheduledVoiceChatStartsOnShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5096]!, self._r[5096]!, [_0]) + return formatWithArgumentRanges(self._s[5100]!, self._r[5100]!, [_0]) } - public var Passport_DeleteAddress: String { return self._s[5097]! } - public var Passport_DeletePassportConfirmation: String { return self._s[5098]! } - public var Passport_Identity_ReverseSide: String { return self._s[5099]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[5101]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[5102]! } - public var InviteLink_CreatedBy: String { return self._s[5103]! } - public var Passport_FieldAddress: String { return self._s[5104]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[5105]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[5108]! } - public var VoiceChat_Panel_TapToJoin: String { return self._s[5109]! } - public var Map_Home: String { return self._s[5110]! } - public var PollResults_Title: String { return self._s[5113]! } + public var Passport_DeleteAddress: String { return self._s[5101]! } + public var Passport_DeletePassportConfirmation: String { return self._s[5102]! } + public var Passport_Identity_ReverseSide: String { return self._s[5103]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[5105]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[5106]! } + public var InviteLink_CreatedBy: String { return self._s[5107]! } + public var Passport_FieldAddress: String { return self._s[5108]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[5109]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[5112]! } + public var VoiceChat_Panel_TapToJoin: String { return self._s[5113]! } + public var Map_Home: String { return self._s[5114]! } + public var PollResults_Title: String { return self._s[5117]! } public func InviteLink_OtherPermanentLinkInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5114]!, self._r[5114]!, [_1, _2]) + return formatWithArgumentRanges(self._s[5118]!, self._r[5118]!, [_1, _2]) } - public var ArchivedChats_IntroText2: String { return self._s[5116]! } - public var VoiceChat_VideoPreviewTitle: String { return self._s[5117]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[5118]! } - public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[5119]! } - public var VoiceChat_Muted: String { return self._s[5121]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[5122]! } - public var Passport_Identity_AddPersonalDetails: String { return self._s[5123]! } - public var Conversation_AutoremoveActionEnable: String { return self._s[5125]! } - public var Group_Info_AdminLog: String { return self._s[5126]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[5127]! } - public var Appearance_Animations: String { return self._s[5128]! } - public var Appearance_TextSizeSetting: String { return self._s[5129]! } - public func Conversation_StatusOnline(_ value: Int32) -> String { + public var ArchivedChats_IntroText2: String { return self._s[5120]! } + public var VoiceChat_VideoPreviewTitle: String { return self._s[5121]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[5122]! } + public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[5123]! } + public var VoiceChat_Muted: String { return self._s[5125]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[5126]! } + public var Passport_Identity_AddPersonalDetails: String { return self._s[5127]! } + public var Conversation_AutoremoveActionEnable: String { return self._s[5129]! } + public var Group_Info_AdminLog: String { return self._s[5130]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[5131]! } + public var Appearance_Animations: String { return self._s[5132]! } + public var Appearance_TextSizeSetting: String { return self._s[5133]! } + public func LastSeen_MinutesAgo(_ 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 Watch_UserInfo_Mute(_ 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[1 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedPolls(_ value: Int32) -> String { + public func ForwardedMessages(_ 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 Contacts_InviteContacts(_ 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[3 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Hours(_ 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[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { + public func ScheduledIn_Hours(_ 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_DeleteConfirmation(_ 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[6 * 6 + Int(form.rawValue)]!, stringValue) } - public func Map_ETAHours(_ value: Int32) -> String { + public func ScheduledIn_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } - public func Media_SharePhoto(_ 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[8 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_AutoremoveRemainingDays(_ value: Int32) -> String { + public func InviteLink_InviteLinks(_ 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 Stats_MessageForwards(_ 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[10 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPacks_ArchiveStickerPacksConfirmation(_ 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[11 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteLink_PeopleCanJoin(_ 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[12 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_MessageVideos(_ value: Int32) -> String { + public func ForwardedVideos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_ShortMinutes(_ value: Int32) -> String { + public func InviteLink_PeopleJoined(_ 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 PUSH_MESSAGE_VIDEOS(_ 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[15 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Chat_DeleteMessagesConfirmation(_ 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[16 * 6 + Int(form.rawValue)]!, stringValue) } - public func GroupInfo_ParticipantCount(_ 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[17 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Days(_ 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[18 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceChat_InviteLink_InviteSpeakers(_ 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[19 * 6 + Int(form.rawValue)]!, stringValue) } - public func ScheduledIn_Hours(_ value: Int32) -> String { + public func InviteLink_PeopleRemaining(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + public func MessageTimer_ShortWeeks(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[21 * 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[22 * 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[22 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func InviteText_ContactsCountText(_ 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[23 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatListFilter_ShowMoreChats(_ 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[24 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteLink_PeopleJoinedShort(_ 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[25 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Link(_ value: Int32) -> String { + public func Conversation_MessageViewComments(_ 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 ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + public func MessageTimer_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[27 * 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[28 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ScheduledIn_Days(_ value: Int32) -> String { + public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[29 * 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[30 * 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[31 * 6 + Int(form.rawValue)]!, _0, _1) + return String(format: self._ps[28 * 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[32 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func UserCount(_ 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) + return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, _1, _2) } public func StickerPack_StickerCount(_ 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 Stats_GroupTopPosterMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PasscodeSettings_FailedAttempts(_ 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 MuteFor_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 MessageTimer_Weeks(_ 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 Stats_GroupTopInviterInvites(_ 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 LiveLocationUpdated_MinutesAgo(_ 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 MuteFor_Days(_ 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 Watch_LastSeen_HoursAgo(_ 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 Conversation_ContextMenuSelectAll(_ 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 Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InstantPage_Views(_ 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 Stats_GroupShowMoreTopAdmins(_ 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 SharedMedia_Generic(_ 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 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 PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func AttachmentMenu_SendVideo(_ 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 Call_Minutes(_ 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 LastSeen_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 MuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedPhotos(_ 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 StickerPack_AddStickerCount(_ 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 Conversation_StatusMembers(_ 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 OldChannels_InactiveWeek(_ 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 Stats_GroupTopAdminBans(_ 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 VoiceOver_Chat_UnreadMessages(_ 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 Stats_GroupTopPosterChars(_ 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 ChatList_DeletedChats(_ 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 DialogList_LiveLocationChatsCount(_ 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 PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[64 * 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[65 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_FILES(_ 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 PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func VoiceChat_InviteLink_InviteListeners(_ 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 Stats_GroupTopAdminDeletions(_ 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 ImportStickerPack_StickerCount(_ 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 Call_Seconds(_ 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 ForwardedVideoMessages(_ 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 ForwardedGifs(_ 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 ServiceMessage_GameScoreSimple(_ 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_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Call_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Seconds(_ 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 Chat_TitlePinnedMessages(_ 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 ScheduledIn_Seconds(_ 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 Media_ShareVideo(_ 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 ForwardedContacts(_ 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 Conversation_ContextViewReplies(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessagePoll_QuizCount(_ 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 MessageTimer_Months(_ 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 SharedMedia_File(_ 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 Stats_GroupShowMoreTopPosters(_ 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 Notifications_ExceptionMuteExpires_Days(_ 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 Conversation_StatusSubscribers(_ 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 PollResults_ShowMore(_ 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 Forward_ConfirmMultipleFiles(_ 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 VoiceOver_Chat_ContactEmailCount(_ 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 OldChannels_InactiveYear(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_TitleReplies(_ 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 Stats_GroupShowMoreTopInviters(_ 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 AttachmentMenu_SendPhoto(_ 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 MessagePoll_VotedCount(_ 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_ShortWeeks(_ 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 SharedMedia_Photo(_ 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_MessagesSelected(_ 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 Conversation_MessageViewComments(_ 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 Conversation_TitleComments(_ 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 MessageTimer_ShortHours(_ 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_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Theme_UsersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ScheduledIn_Years(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_SelectedChats(_ 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 Map_ETAMinutes(_ 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 StickerPack_RemoveMaskCount(_ 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 VoiceChat_Status_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) - } - public func ForwardedFiles(_ 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 Passport_Scans(_ 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_Days(_ 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 ForwardedAudios(_ 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 MessageTimer_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 Invitation_Members(_ 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 ForwardedLocations(_ 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 ChatList_Search_Messages(_ 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 VoiceOver_Chat_PollOptionCount(_ 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 OldChannels_GroupFormat(_ 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 ScheduledIn_Minutes(_ 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 ScheduledIn_Weeks(_ 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 InviteLink_PeopleJoined(_ 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) + return String(format: self._ps[30 * 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[125 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + 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[32 * 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[33 * 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[34 * 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[35 * 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[36 * 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[37 * 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[38 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Days(_ 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 Stats_GroupTopAdminKicks(_ 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 LiveLocation_MenuChatsCount(_ 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 StickerPack_RemoveMaskCount(_ 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 PrivacyLastSeenSettings_AddUsers(_ 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 PasscodeSettings_FailedAttempts(_ 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 ForwardedStickers(_ 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 ImportStickerPack_StickerCount(_ 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 Chat_DeleteMessagesConfirmation(_ 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 ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[126 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + public func StickerPack_RemoveStickerCount(_ 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) + return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_LiveLocationMembersCount(_ 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[128 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortMinutes(_ 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[129 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_MessagePhotos(_ 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[130 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreExtended(_ value: Int32) -> String { + public func MessageTimer_ShortHours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[131 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSelfSimple(_ 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[132 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[55 * 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[56 * 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[57 * 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[58 * 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[59 * 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[60 * 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[61 * 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[62 * 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[63 * 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[64 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Generic(_ 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 ForwardedVideoMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Hours(_ 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 Stats_GroupShowMoreTopAdmins(_ 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 Conversation_SelectedMessages(_ 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 PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MessageTimer_ShortSeconds(_ 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 MessagePoll_QuizCount(_ 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 Watch_UserInfo_Mute(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Months(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_Search_Messages(_ 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_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[78 * 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[79 * 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[80 * 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[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceChat_InviteLink_InviteSpeakers(_ 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 Conversation_AutoremoveRemainingDays(_ 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 InviteLink_PeopleJoinedShort(_ 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 Notifications_Exceptions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopAdminDeletions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Seconds(_ 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 OldChannels_InactiveWeek(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Notification_GameScoreSelfExtended(_ 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 InviteLink_PeopleCanJoin(_ 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 PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, _1, _2) + } + 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[93 * 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[94 * 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[95 * 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[96 * 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[97 * 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[98 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func AttachmentMenu_SendItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[100 * 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[101 * 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[102 * 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[103 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Weeks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Link(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func StickerPack_AddStickerCount(_ 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 CreatePoll_AddMoreOptions(_ 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 Contacts_ImportersCount(_ 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 Call_Hours(_ 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 Watch_LastSeen_HoursAgo(_ 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 MuteExpires_Minutes(_ 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 Notification_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Hours(_ 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 PUSH_MESSAGE_FILES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Call_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 MessageTimer_ShortMinutes(_ 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 ChatList_MessagePhotos(_ 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 AttachmentMenu_SendGif(_ 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 Map_ETAMinutes(_ 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_Minutes(_ 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 ScheduledIn_Years(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ 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 Passport_Scans(_ 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 ChatList_MessageMusic(_ 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 Stats_MessageViews(_ 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 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[127 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ChatListFilter_ShowMoreChats(_ 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 DialogList_LiveLocationChatsCount(_ 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 AttachmentMenu_SendPhoto(_ 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 PollResults_ShowMore(_ 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 Conversation_ContextViewReplies(_ 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 Notification_GameScoreSimple(_ 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 InviteLink_InviteLinks(_ 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[134 * 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[135 * 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[135 * 6 + Int(form.rawValue)]!, _0, _1) } public func QuickSend_Photos(_ 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 PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[137 * 6 + Int(form.rawValue)]!, _1, _2) + public func Theme_UsersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[137 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Years(_ value: Int32) -> String { + public func MessageTimer_Weeks(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[138 * 6 + Int(form.rawValue)]!, stringValue) } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + public func Contacts_InviteContacts(_ 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 Wallpaper_DeleteConfirmation(_ 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[140 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteLink_PeopleRemaining(_ value: Int32) -> String { + public func ForwardedGifs(_ 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 { + 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[142 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_Exceptions(_ 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[143 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSimple(_ 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[144 * 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[145 * 6 + Int(form.rawValue)]!, _1, _2) + public func ForwardedContacts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[145 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_MessageViews(_ value: Int32) -> String { + public func MessageTimer_Years(_ 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 PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[147 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_Minutes(_ 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[148 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[147 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedStickers(_ value: Int32) -> String { + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[148 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_Months(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[149 * 6 + Int(form.rawValue)]!, stringValue) } - public func Contacts_ImportersCount(_ value: Int32) -> String { + public func VoiceChat_InviteLink_InviteListeners(_ 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 OldChannels_InactiveMonth(_ 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[151 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_MessageMusic(_ value: Int32) -> String { + public func GroupInfo_ParticipantCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[152 * 6 + Int(form.rawValue)]!, stringValue) } - public func OldChannels_Leave(_ 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[153 * 6 + Int(form.rawValue)]!, stringValue) } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + public func MuteExpires_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[154 * 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[155 * 6 + Int(form.rawValue)]!, _2, _1, _3) + public func Chat_MessagesUnpinned(_ 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_ShortSeconds(_ 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[156 * 6 + Int(form.rawValue)]!, stringValue) } - public func PeopleNearby_ShowMorePeople(_ value: Int32) -> String { + public func LiveLocationUpdated_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) } - public func Conversation_SelectedMessages(_ value: 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[158 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_MessageFiles(_ 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[159 * 6 + Int(form.rawValue)]!, stringValue) } - public func ServiceMessage_GameScoreSelfExtended(_ 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[160 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedMessages(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[161 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPacks_DeleteStickerPacksConfirmation(_ 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[162 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + public func Media_ShareVideo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[163 * 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[164 * 6 + Int(form.rawValue)]!, _1, _2) + public func Stats_GroupShowMoreTopPosters(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[164 * 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[165 * 6 + Int(form.rawValue)]!, _2, _1, _3) + public func MuteFor_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[165 * 6 + Int(form.rawValue)]!, stringValue) } - public func ScheduledIn_Months(_ value: Int32) -> String { + public func MuteFor_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[166 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + public func StickerPacks_ArchiveStickerPacksConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[167 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { + public func ForwardedAudios(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[168 * 6 + Int(form.rawValue)]!, stringValue) } - public func CreatePoll_AddMoreOptions(_ 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[169 * 6 + Int(form.rawValue)]!, stringValue) } - public func Chat_MessagesUnpinned(_ value: Int32) -> String { + public func VoiceOver_Chat_UnreadMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[170 * 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[171 * 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[171 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Notification_GameScoreSelfExtended(_ 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[172 * 6 + Int(form.rawValue)]!, stringValue) } - public func Media_ShareItem(_ value: Int32) -> String { + public func StickerPacks_DeleteStickerPacksConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[173 * 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[174 * 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[175 * 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[174 * 6 + Int(form.rawValue)]!, _1, _2) } public func PUSH_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[176 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[175 * 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[176 * 6 + Int(form.rawValue)]!, stringValue) } public init(primaryComponent: PresentationStringsComponent, secondaryComponent: PresentationStringsComponent?, groupingSeparator: String) { diff --git a/submodules/TelegramUI/Resources/Fonts/AremacFS-Regular.otf b/submodules/TelegramUI/Resources/Fonts/AremacFS-Regular.otf new file mode 100644 index 0000000000..bb02badf76 Binary files /dev/null and b/submodules/TelegramUI/Resources/Fonts/AremacFS-Regular.otf differ diff --git a/submodules/TelegramUI/Resources/Fonts/AremacFS-Semibold.otf b/submodules/TelegramUI/Resources/Fonts/AremacFS-Semibold.otf new file mode 100644 index 0000000000..ae36bb6c9f Binary files /dev/null and b/submodules/TelegramUI/Resources/Fonts/AremacFS-Semibold.otf differ diff --git a/submodules/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/Resources/PresentationStrings.mapping index 72fa0b81fc..d07b105905 100644 Binary files a/submodules/TelegramUI/Resources/PresentationStrings.mapping and b/submodules/TelegramUI/Resources/PresentationStrings.mapping differ diff --git a/submodules/TelegramUI/Sources/ChatMessageInstantVideoItemNode.swift b/submodules/TelegramUI/Sources/ChatMessageInstantVideoItemNode.swift index 9dc3b1afb5..a246100830 100644 --- a/submodules/TelegramUI/Sources/ChatMessageInstantVideoItemNode.swift +++ b/submodules/TelegramUI/Sources/ChatMessageInstantVideoItemNode.swift @@ -19,7 +19,7 @@ private let nameFont = Font.medium(14.0) private let inlineBotPrefixFont = Font.regular(14.0) private let inlineBotNameFont = nameFont -class ChatMessageInstantVideoItemNode: ChatMessageItemView { +class ChatMessageInstantVideoItemNode: ChatMessageItemView, UIGestureRecognizerDelegate { let contextSourceNode: ContextExtractedContentContainingNode private let containerNode: ContextControllerSourceNode private let interactiveVideoNode: ChatMessageInteractiveInstantVideoNode @@ -53,6 +53,8 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { private var recognizer: TapLongTapOrDoubleTapGestureRecognizer? + private var seekRecognizer: UIPanGestureRecognizer? + private var currentSwipeAction: ChatControllerInteractionSwipeAction? override var visibility: ListViewItemNodeVisibility { @@ -171,6 +173,12 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { return false } self.view.addGestureRecognizer(replyRecognizer) + + let seekRecognizer = UIPanGestureRecognizer(target: self, action: #selector(self.seekGesture(_:))) + seekRecognizer.isEnabled = false + seekRecognizer.delegate = self + self.seekRecognizer = seekRecognizer + self.interactiveVideoNode.view.addGestureRecognizer(seekRecognizer) } override func updateAccessibilityData(_ accessibilityData: ChatMessageAccessibilityData) { @@ -326,9 +334,11 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { var isPlaying = false var displaySize = layoutConstants.instantVideo.dimensions let maximumDisplaySize = CGSize(width: params.width - 20.0, height: params.width - 20.0) + var effectiveAvatarInset = avatarInset if item.associatedData.currentlyPlayingMessageId == item.message.index { isPlaying = true displaySize = maximumDisplaySize + effectiveAvatarInset = 0.0 } var automaticDownload = true @@ -345,7 +355,7 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { let (videoLayout, videoApply) = makeVideoLayout(ChatMessageBubbleContentItem(context: item.context, controllerInteraction: item.controllerInteraction, message: item.message, read: item.read, chatLocation: item.chatLocation, presentationData: item.presentationData, associatedData: item.associatedData, attributes: item.content.firstMessageAttributes, isItemPinned: item.message.tags.contains(.pinned) && !isReplyThread, isItemEdited: false), params.width - params.leftInset - params.rightInset - avatarInset, displaySize, maximumDisplaySize, isPlaying ? 1.0 : 0.0, .free, automaticDownload) - let videoFrame = CGRect(origin: CGPoint(x: (incoming ? (params.leftInset + layoutConstants.bubble.edgeInset + avatarInset + layoutConstants.bubble.contentInsets.left) : (params.width - params.rightInset - videoLayout.contentSize.width - layoutConstants.bubble.edgeInset - layoutConstants.bubble.contentInsets.left - deliveryFailedInset)), y: 0.0), size: videoLayout.contentSize) + let videoFrame = CGRect(origin: CGPoint(x: (incoming ? (params.leftInset + layoutConstants.bubble.edgeInset + effectiveAvatarInset + layoutConstants.bubble.contentInsets.left) : (params.width - params.rightInset - videoLayout.contentSize.width - layoutConstants.bubble.edgeInset - layoutConstants.bubble.contentInsets.left - deliveryFailedInset)), y: 0.0), size: videoLayout.contentSize) var viaBotApply: (TextNodeLayout, () -> TextNode)? var replyInfoApply: (CGSize, () -> ChatMessageReplyInfoNode)? @@ -526,8 +536,6 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { strongSelf.updateAccessibilityData(accessibilityData) - - let videoLayoutData: ChatMessageInstantVideoItemLayoutData if incoming { videoLayoutData = .constrained(left: 0.0, right: max(0.0, availableContentWidth - videoFrame.width)) @@ -541,6 +549,9 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { videoApply(videoLayoutData, transition) } + strongSelf.interactiveVideoNode.view.disablesInteractiveTransitionGestureRecognizer = isPlaying + strongSelf.seekRecognizer?.isEnabled = isPlaying + strongSelf.contextSourceNode.contentRect = videoFrame strongSelf.containerNode.targetNodeForActivationProgressContentRect = strongSelf.contextSourceNode.contentRect @@ -854,6 +865,30 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { } } + override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { + if let panGestureRecognizer = gestureRecognizer as? UIPanGestureRecognizer, panGestureRecognizer === self.seekRecognizer { + let velocity = panGestureRecognizer.velocity(in: self.interactiveVideoNode.view) + return velocity.x > velocity.y + } + return true + } + + private var wasPlaying = false + @objc func seekGesture(_ recognizer: UIPanGestureRecognizer) { + var location = recognizer.location(in: self.interactiveVideoNode.view) + switch recognizer.state { + case .began: + self.interactiveVideoNode.pause() + case .changed: + self.interactiveVideoNode.seekTo(Double(location.x / self.interactiveVideoNode.bounds.size.width)) + case .ended, .cancelled: + self.interactiveVideoNode.seekTo(Double(location.x / self.interactiveVideoNode.bounds.size.width)) + self.interactiveVideoNode.play() + default: + break + } + } + @objc func swipeToReplyGesture(_ recognizer: ChatSwipeToReplyRecognizer) { switch recognizer.state { case .began: @@ -1087,6 +1122,7 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { let targetSize: CGSize let animationProgress: CGFloat = (currentValue - initialHeight) / (targetHeight - initialHeight) let scaleProgress: CGFloat + var effectiveAvatarInset = avatarInset if currentValue < targetHeight { initialSize = displaySize targetSize = maximumDisplaySize @@ -1100,12 +1136,13 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { targetSize = initialSize scaleProgress = isPlaying ? 1.0 : 0.0 } + effectiveAvatarInset *= (1.0 - scaleProgress) displaySize = CGSize(width: initialSize.width + (targetSize.width - initialSize.width) * animationProgress, height: initialSize.height + (targetSize.height - initialSize.height) * animationProgress) let (videoLayout, videoApply) = makeVideoLayout(ChatMessageBubbleContentItem(context: item.context, controllerInteraction: item.controllerInteraction, message: item.message, read: item.read, chatLocation: item.chatLocation, presentationData: item.presentationData, associatedData: item.associatedData, attributes: item.content.firstMessageAttributes, isItemPinned: item.message.tags.contains(.pinned) && !isReplyThread, isItemEdited: false), params.width - params.leftInset - params.rightInset - avatarInset, displaySize, maximumDisplaySize, scaleProgress, .free, self.appliedAutomaticDownload) let availableContentWidth = params.width - params.leftInset - params.rightInset - layoutConstants.bubble.edgeInset * 2.0 - avatarInset - layoutConstants.bubble.contentInsets.left - let videoFrame = CGRect(origin: CGPoint(x: (incoming ? (params.leftInset + layoutConstants.bubble.edgeInset + avatarInset + layoutConstants.bubble.contentInsets.left) : (params.width - params.rightInset - videoLayout.contentSize.width - layoutConstants.bubble.edgeInset - layoutConstants.bubble.contentInsets.left - deliveryFailedInset)), y: 0.0), size: videoLayout.contentSize) + let videoFrame = CGRect(origin: CGPoint(x: (incoming ? (params.leftInset + layoutConstants.bubble.edgeInset + effectiveAvatarInset + layoutConstants.bubble.contentInsets.left) : (params.width - params.rightInset - videoLayout.contentSize.width - layoutConstants.bubble.edgeInset - layoutConstants.bubble.contentInsets.left - deliveryFailedInset)), y: 0.0), size: videoLayout.contentSize) self.interactiveVideoNode.frame = videoFrame let videoLayoutData: ChatMessageInstantVideoItemLayoutData diff --git a/submodules/TelegramUI/Sources/ChatMessageInteractiveInstantVideoNode.swift b/submodules/TelegramUI/Sources/ChatMessageInteractiveInstantVideoNode.swift index b263ed4117..f5f84b52b3 100644 --- a/submodules/TelegramUI/Sources/ChatMessageInteractiveInstantVideoNode.swift +++ b/submodules/TelegramUI/Sources/ChatMessageInteractiveInstantVideoNode.swift @@ -317,7 +317,7 @@ class ChatMessageInteractiveInstantVideoNode: ASDisplayNode { strongSelf.videoFrame = displayVideoFrame strongSelf.secretProgressIcon = secretProgressIcon strongSelf.automaticDownload = automaticDownload - + if let updatedInfoBackgroundImage = updatedInfoBackgroundImage { strongSelf.infoBackgroundNode.image = updatedInfoBackgroundImage } @@ -832,6 +832,20 @@ class ChatMessageInteractiveInstantVideoNode: ASDisplayNode { } } + func seekTo(_ position: Double) { + if let duration = self.playbackStatusNode?.duration { + self.videoNode?.seek(position * duration) + } + } + + func play() { + self.videoNode?.play() + } + + func pause() { + self.videoNode?.pause() + } + func playMediaWithSound() -> (action: (Double?) -> Void, soundEnabled: Bool, isVideoMessage: Bool, isUnread: Bool, badgeNode: ASDisplayNode?)? { if let item = self.item { var isUnconsumed = false diff --git a/submodules/TelegramUI/Sources/InstantVideoRadialStatusNode.swift b/submodules/TelegramUI/Sources/InstantVideoRadialStatusNode.swift index ff02ac1547..9e4768f70a 100644 --- a/submodules/TelegramUI/Sources/InstantVideoRadialStatusNode.swift +++ b/submodules/TelegramUI/Sources/InstantVideoRadialStatusNode.swift @@ -40,6 +40,14 @@ final class InstantVideoRadialStatusNode: ASDisplayNode { private var statusDisposable: Disposable? private var statusValuePromise = Promise() + var duration: Double? { + if let statusValue = self.statusValue { + return statusValue.duration + } else { + return nil + } + } + var status: Signal? { didSet { if let status = self.status {