diff --git a/ModernProto/ModernProto/Info.plist b/ModernProto/ModernProto/Info.plist
deleted file mode 100644
index e1fe4cfb7b..0000000000
--- a/ModernProto/ModernProto/Info.plist
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- $(DEVELOPMENT_LANGUAGE)
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 1.0
- CFBundleVersion
- $(CURRENT_PROJECT_VERSION)
-
-
diff --git a/ModernProto/ModernProto/Instance/ProtoInstance.swift b/ModernProto/ModernProto/Instance/ProtoInstance.swift
deleted file mode 100644
index bbf1cef8f0..0000000000
--- a/ModernProto/ModernProto/Instance/ProtoInstance.swift
+++ /dev/null
@@ -1,22 +0,0 @@
-import Foundation
-import SwiftSignalKit
-
-private enum ProtoInstanceState {
- case none
-}
-
-private final class ProtoInstanceImpl {
- private let target: ProtoTarget
-
- private var state: ProtoInstanceState
-
- init(target: ProtoTarget) {
- self.target = target
-
- self.state = .none
- }
-
- func update(sessionState: ProtoSessionState) {
-
- }
-}
diff --git a/ModernProto/ModernProto/Instance/ProtoSessionData.swift b/ModernProto/ModernProto/Instance/ProtoSessionData.swift
deleted file mode 100644
index 8a683600d9..0000000000
--- a/ModernProto/ModernProto/Instance/ProtoSessionData.swift
+++ /dev/null
@@ -1,5 +0,0 @@
-import Foundation
-
-struct ProtoSessionData {
-
-}
diff --git a/ModernProto/ModernProto/Instance/ProtoTcpConnection.swift b/ModernProto/ModernProto/Instance/ProtoTcpConnection.swift
deleted file mode 100644
index 3fee698d82..0000000000
--- a/ModernProto/ModernProto/Instance/ProtoTcpConnection.swift
+++ /dev/null
@@ -1,41 +0,0 @@
-import Foundation
-
-@available(iOSApplicationExtension 9.0, *)
-private final class ProtoTcpConnectionDelegate: NSObject, URLSessionDelegate, URLSessionStreamDelegate {
- override init() {
- super.init()
- }
-
- func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {
-
- }
-
- func urlSession(_ session: URLSession, readClosedFor streamTask: URLSessionStreamTask) {
- }
-
- func urlSession(_ session: URLSession, writeClosedFor streamTask: URLSessionStreamTask) {
- }
-}
-
-private func tcpReadTimeout(byteCount: Int) -> TimeInterval {
- return 10.0
-}
-
-@available(iOSApplicationExtension 9.0, *)
-final class ProtoTcpConnection {
- let session: URLSession
- let streamTask: URLSessionStreamTask
-
- init(host: String, port: Int32) {
- let configuration = URLSessionConfiguration.ephemeral.copy() as! URLSessionConfiguration
- if #available(iOSApplicationExtension 11.0, *) {
- configuration.waitsForConnectivity = true
- }
-
- self.session = URLSession(configuration: configuration, delegate: ProtoTcpConnectionDelegate(), delegateQueue: nil)
- self.streamTask = self.session.streamTask(withHostName: host, port: Int(port))
- self.streamTask.readData(ofMinLength: 1, maxLength: 1, timeout: tcpReadTimeout(byteCount: 1), completionHandler: { data, eof, error in
-
- })
- }
-}
diff --git a/ModernProto/ModernProto/Instance/ProtoTransport.swift b/ModernProto/ModernProto/Instance/ProtoTransport.swift
deleted file mode 100644
index 409e54de3a..0000000000
--- a/ModernProto/ModernProto/Instance/ProtoTransport.swift
+++ /dev/null
@@ -1,11 +0,0 @@
-import Foundation
-
-struct ProtoTransportState {
- var connected: Bool
-}
-
-final class ProtoTransport {
- func update(paths: [ProtoPath]) -> ProtoTransportState {
- return ProtoTransportState(connected: false)
- }
-}
diff --git a/ModernProto/ModernProto/ModernProto.h b/ModernProto/ModernProto/ModernProto.h
deleted file mode 100644
index ac972da53e..0000000000
--- a/ModernProto/ModernProto/ModernProto.h
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// ModernProto.h
-// ModernProto
-//
-// Created by Peter on 11/24/18.
-// Copyright © 2018 Telegram LLP. All rights reserved.
-//
-
-#import
-
-//! Project version number for ModernProto.
-FOUNDATION_EXPORT double ModernProtoVersionNumber;
-
-//! Project version string for ModernProto.
-FOUNDATION_EXPORT const unsigned char ModernProtoVersionString[];
-
-// In this header, you should import all the public headers of your framework using statements like #import
-
-
diff --git a/ModernProto/ModernProto/New Group/ProtoAuthData.swift b/ModernProto/ModernProto/New Group/ProtoAuthData.swift
deleted file mode 100644
index b594912cf3..0000000000
--- a/ModernProto/ModernProto/New Group/ProtoAuthData.swift
+++ /dev/null
@@ -1,14 +0,0 @@
-import Foundation
-
-struct ProtoAuthKey: Equatable {
- let id: Int64
- let value: Data
-}
-
-final class ProtoAuthData {
- let key: ProtoAuthKey
-
- init(key: ProtoAuthKey) {
- self.key = key
- }
-}
diff --git a/ModernProto/ModernProto/New Group/ProtoAuthInstance.swift b/ModernProto/ModernProto/New Group/ProtoAuthInstance.swift
deleted file mode 100644
index f23525ada2..0000000000
--- a/ModernProto/ModernProto/New Group/ProtoAuthInstance.swift
+++ /dev/null
@@ -1,22 +0,0 @@
-import Foundation
-import SwiftSignalKit
-
-private enum ProtoAuthInstanceState {
- case none
-}
-
-final class ProtoAuthInstance {
- private let target: ProtoTarget
-
- private var state: ProtoAuthInstanceState
-
- init(target: ProtoTarget) {
- self.target = target
-
- self.state = .none
- }
-
- func update(sessionState: ProtoSessionState) {
-
- }
-}
diff --git a/ModernProto/ModernProto/Session/ProtoKeychain.swift b/ModernProto/ModernProto/Session/ProtoKeychain.swift
deleted file mode 100644
index fbf287572c..0000000000
--- a/ModernProto/ModernProto/Session/ProtoKeychain.swift
+++ /dev/null
@@ -1,2 +0,0 @@
-import Foundation
-
diff --git a/ModernProto/ModernProto/Session/ProtoPath.swift b/ModernProto/ModernProto/Session/ProtoPath.swift
deleted file mode 100644
index 648013b48b..0000000000
--- a/ModernProto/ModernProto/Session/ProtoPath.swift
+++ /dev/null
@@ -1,15 +0,0 @@
-import Foundation
-
-public struct ProtoTcpPath: Equatable, Hashable {
- let host: String
- let port: Int32
-
- public init(host: String, port: Int32) {
- self.host = host
- self.port = port
- }
-}
-
-public enum ProtoPath: Equatable, Hashable {
- case tcp(ProtoTcpPath)
-}
diff --git a/ModernProto/ModernProto/Session/ProtoSession.swift b/ModernProto/ModernProto/Session/ProtoSession.swift
deleted file mode 100644
index edb28ece33..0000000000
--- a/ModernProto/ModernProto/Session/ProtoSession.swift
+++ /dev/null
@@ -1,45 +0,0 @@
-import Foundation
-import SwiftSignalKit
-
-final class ProtoSessionState {
- let authData: [ProtoTarget: ProtoAuthData] = [:]
- let paths: [ProtoTarget: Set] = [:]
-}
-
-private final class ProtoSessionImpl {
- private let queue: Queue
- private let configuration: ProtoSessionConfiguration
-
- init(queue: Queue, configuration: ProtoSessionConfiguration) {
- self.queue = queue
- self.configuration = configuration
- }
-
- deinit {
- assert(self.queue.isCurrent())
- }
-
-
-}
-
-public struct ProtoSessionConfiguration {
- public let seedPaths: [ProtoTarget: ProtoPath]
-
- public init(seedPaths: [ProtoTarget: ProtoPath]) {
- self.seedPaths = seedPaths
- }
-}
-
-public final class ProtoSession {
- private let queue = Queue()
- private let impl: QueueLocalObject
-
- init(configuration: ProtoSessionConfiguration) {
- let queue = self.queue
- self.impl = QueueLocalObject(queue: queue, generate: {
- return ProtoSessionImpl(queue: queue, configuration: configuration)
- })
- }
-
-
-}
diff --git a/ModernProto/ModernProto/Session/ProtoTarget.swift b/ModernProto/ModernProto/Session/ProtoTarget.swift
deleted file mode 100644
index 9dc9ae6444..0000000000
--- a/ModernProto/ModernProto/Session/ProtoTarget.swift
+++ /dev/null
@@ -1,5 +0,0 @@
-import Foundation
-
-public enum ProtoTarget: Equatable, Hashable {
- case datacenter(Int)
-}
diff --git a/NotificationService/Serialization.swift b/NotificationService/Serialization.swift
index ca0edf21f9..5db3530ae2 100644
--- a/NotificationService/Serialization.swift
+++ b/NotificationService/Serialization.swift
@@ -10,7 +10,7 @@ public class BoxedMessage: NSObject {
public class Serialization: NSObject, MTSerialization {
public func currentLayer() -> UInt {
- return 99
+ return 100
}
public func parseMessage(_ data: Data!) -> Any! {
diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings
index ef6fdc7b30..588abcb39b 100644
--- a/Telegram-iOS/en.lproj/Localizable.strings
+++ b/Telegram-iOS/en.lproj/Localizable.strings
@@ -4272,3 +4272,10 @@ Sorry for the inconvenience.";
"UserInfo.ScamBotWarning" = "⚠️ Warning: Many users reported this user as a scam. Please be careful, especially if it asks you for money.";
"ChannelInfo.ScamChannelWarning" = "⚠️ Warning: Many users reported this channel as a scam. Please be careful, especially if it asks you for money.";
"GroupInfo.ScamGroupWarning" = "⚠️ Warning: Many users reported this group as a scam. Please be careful, especially if it asks you for money.";
+
+"Privacy.AddNewPeer" = "Add Users or Groups";
+"PrivacyPhoneNumberSettings.WhoCanSeeMyPhoneNumber" = "WHO CAN SEE MY PHONE NUMBER";
+"PrivacyLastSeenSettings.CustomHelp" = "Users who already have your number saved in the contacts will also see it on Telegram.";
+"Privacy.PhoneNumber" = "Phone Number";
+"PrivacySettings.PhoneNumber" = "Phone Number";
+"Contacts.SearchUsersAndGroupsLabel" = "Search for users and groups";
diff --git a/submodules/Display b/submodules/Display
index a1aecb45d3..b75596aaf6 160000
--- a/submodules/Display
+++ b/submodules/Display
@@ -1 +1 @@
-Subproject commit a1aecb45d3320ecedf70d6a6f160a402fd4ee437
+Subproject commit b75596aaf67347e97d0e3ae867c293558f1fc364
diff --git a/submodules/Postbox b/submodules/Postbox
index 926569ffc1..0867f44e61 160000
--- a/submodules/Postbox
+++ b/submodules/Postbox
@@ -1 +1 @@
-Subproject commit 926569ffc12e0d3984da76c8b9746e623ae82832
+Subproject commit 0867f44e617f9e7ab79d7e1e3779459aec1e1545
diff --git a/submodules/TelegramCore b/submodules/TelegramCore
index a55a097d54..e3bce54571 160000
--- a/submodules/TelegramCore
+++ b/submodules/TelegramCore
@@ -1 +1 @@
-Subproject commit a55a097d54af80ab5351baa10cc9d84530d29b38
+Subproject commit e3bce5457196e0fb9d874f3fce505fccc34e7a8d
diff --git a/submodules/TelegramUI b/submodules/TelegramUI
index 87c91d57b2..775e2cb852 160000
--- a/submodules/TelegramUI
+++ b/submodules/TelegramUI
@@ -1 +1 @@
-Subproject commit 87c91d57b22bc278dc839b695911c2aff3ce73b0
+Subproject commit 775e2cb8524b364f1edcf04a6cbe38f65c7fa4d8
diff --git a/submodules/libtgvoip b/submodules/libtgvoip
index 78decc81bf..35653dbdb2 160000
--- a/submodules/libtgvoip
+++ b/submodules/libtgvoip
@@ -1 +1 @@
-Subproject commit 78decc81bf25cf36ad1b4a9398aa11cb195db9c5
+Subproject commit 35653dbdb22688c0f1f4a2ce913eec3dd3705082