From 880586bac42817ffcfea5d9f746f503fa29915b8 Mon Sep 17 00:00:00 2001 From: Wim Date: Sat, 28 Jan 2023 22:57:53 +0100 Subject: Update dependencies (#1951) --- vendor/go.mau.fi/whatsmeow/appstate.go | 5 +- vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.go | 1654 +++++++++++--------- vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.raw | Bin 68215 -> 68546 bytes vendor/go.mau.fi/whatsmeow/binary/proto/def.proto | 9 + vendor/go.mau.fi/whatsmeow/broadcast.go | 8 +- vendor/go.mau.fi/whatsmeow/client.go | 25 +- vendor/go.mau.fi/whatsmeow/connectionevents.go | 3 +- vendor/go.mau.fi/whatsmeow/download.go | 2 + vendor/go.mau.fi/whatsmeow/errors.go | 56 +- vendor/go.mau.fi/whatsmeow/group.go | 185 ++- vendor/go.mau.fi/whatsmeow/mediaretry.go | 6 +- vendor/go.mau.fi/whatsmeow/message.go | 32 +- vendor/go.mau.fi/whatsmeow/msgsecret.go | 9 +- vendor/go.mau.fi/whatsmeow/notification.go | 62 +- vendor/go.mau.fi/whatsmeow/pair.go | 50 +- vendor/go.mau.fi/whatsmeow/presence.go | 28 +- vendor/go.mau.fi/whatsmeow/qrchan.go | 13 +- vendor/go.mau.fi/whatsmeow/retry.go | 6 +- vendor/go.mau.fi/whatsmeow/send.go | 115 +- vendor/go.mau.fi/whatsmeow/store/clientpayload.go | 2 +- .../whatsmeow/store/sqlstore/container.go | 2 + vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go | 41 +- .../go.mau.fi/whatsmeow/store/sqlstore/upgrade.go | 13 +- vendor/go.mau.fi/whatsmeow/store/store.go | 34 +- vendor/go.mau.fi/whatsmeow/types/events/events.go | 17 +- vendor/go.mau.fi/whatsmeow/types/group.go | 59 + vendor/go.mau.fi/whatsmeow/upload.go | 2 +- vendor/go.mau.fi/whatsmeow/user.go | 40 +- 28 files changed, 1562 insertions(+), 916 deletions(-) (limited to 'vendor/go.mau.fi') diff --git a/vendor/go.mau.fi/whatsmeow/appstate.go b/vendor/go.mau.fi/whatsmeow/appstate.go index f1130462..7e99b513 100644 --- a/vendor/go.mau.fi/whatsmeow/appstate.go +++ b/vendor/go.mau.fi/whatsmeow/appstate.go @@ -270,11 +270,12 @@ func (cli *Client) requestAppStateKeys(ctx context.Context, rawKeyIDs [][]byte) }, }, } - if cli.Store.ID == nil { + ownID := cli.getOwnID().ToNonAD() + if ownID.IsEmpty() { return } cli.Log.Infof("Sending key request for app state keys %+v", debugKeyIDs) - _, err := cli.SendMessage(ctx, cli.Store.ID.ToNonAD(), "", msg) + _, err := cli.SendMessage(ctx, ownID, msg, SendRequestExtra{Peer: true}) if err != nil { cli.Log.Warnf("Failed to send app state key request: %v", err) } diff --git a/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.go b/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.go index 03c84a5d..046bebe2 100644 --- a/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.go +++ b/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.12.4 +// protoc v3.21.12 // source: binary/proto/def.proto package proto @@ -2109,7 +2109,7 @@ func (x *BizIdentityInfo_VerifiedLevelValue) UnmarshalJSON(b []byte) error { // Deprecated: Use BizIdentityInfo_VerifiedLevelValue.Descriptor instead. func (BizIdentityInfo_VerifiedLevelValue) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{140, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{141, 0} } type BizIdentityInfo_HostStorageType int32 @@ -2165,7 +2165,7 @@ func (x *BizIdentityInfo_HostStorageType) UnmarshalJSON(b []byte) error { // Deprecated: Use BizIdentityInfo_HostStorageType.Descriptor instead. func (BizIdentityInfo_HostStorageType) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{140, 1} + return file_binary_proto_def_proto_rawDescGZIP(), []int{141, 1} } type BizIdentityInfo_ActualActorsType int32 @@ -2221,7 +2221,7 @@ func (x *BizIdentityInfo_ActualActorsType) UnmarshalJSON(b []byte) error { // Deprecated: Use BizIdentityInfo_ActualActorsType.Descriptor instead. func (BizIdentityInfo_ActualActorsType) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{140, 2} + return file_binary_proto_def_proto_rawDescGZIP(), []int{141, 2} } type BizAccountLinkInfo_HostStorageType int32 @@ -2277,7 +2277,7 @@ func (x *BizAccountLinkInfo_HostStorageType) UnmarshalJSON(b []byte) error { // Deprecated: Use BizAccountLinkInfo_HostStorageType.Descriptor instead. func (BizAccountLinkInfo_HostStorageType) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{142, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{143, 0} } type BizAccountLinkInfo_AccountType int32 @@ -2330,7 +2330,7 @@ func (x *BizAccountLinkInfo_AccountType) UnmarshalJSON(b []byte) error { // Deprecated: Use BizAccountLinkInfo_AccountType.Descriptor instead. func (BizAccountLinkInfo_AccountType) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{142, 1} + return file_binary_proto_def_proto_rawDescGZIP(), []int{143, 1} } type ClientPayload_Product int32 @@ -2386,7 +2386,7 @@ func (x *ClientPayload_Product) UnmarshalJSON(b []byte) error { // Deprecated: Use ClientPayload_Product.Descriptor instead. func (ClientPayload_Product) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148, 0} } type ClientPayload_IOSAppExtension int32 @@ -2445,7 +2445,7 @@ func (x *ClientPayload_IOSAppExtension) UnmarshalJSON(b []byte) error { // Deprecated: Use ClientPayload_IOSAppExtension.Descriptor instead. func (ClientPayload_IOSAppExtension) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147, 1} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148, 1} } type ClientPayload_ConnectType int32 @@ -2540,7 +2540,7 @@ func (x *ClientPayload_ConnectType) UnmarshalJSON(b []byte) error { // Deprecated: Use ClientPayload_ConnectType.Descriptor instead. func (ClientPayload_ConnectType) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147, 2} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148, 2} } type ClientPayload_ConnectReason int32 @@ -2608,7 +2608,7 @@ func (x *ClientPayload_ConnectReason) UnmarshalJSON(b []byte) error { // Deprecated: Use ClientPayload_ConnectReason.Descriptor instead. func (ClientPayload_ConnectReason) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147, 3} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148, 3} } type ClientPayload_BizMarketSegment int32 @@ -2667,7 +2667,7 @@ func (x *ClientPayload_BizMarketSegment) UnmarshalJSON(b []byte) error { // Deprecated: Use ClientPayload_BizMarketSegment.Descriptor instead. func (ClientPayload_BizMarketSegment) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147, 4} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148, 4} } type ClientPayload_WebInfo_WebSubPlatform int32 @@ -2732,7 +2732,7 @@ func (x *ClientPayload_WebInfo_WebSubPlatform) UnmarshalJSON(b []byte) error { // Deprecated: Use ClientPayload_WebInfo_WebSubPlatform.Descriptor instead. func (ClientPayload_WebInfo_WebSubPlatform) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147, 0, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148, 0, 0} } type ClientPayload_UserAgent_ReleaseChannel int32 @@ -2794,7 +2794,7 @@ func (x *ClientPayload_UserAgent_ReleaseChannel) UnmarshalJSON(b []byte) error { // Deprecated: Use ClientPayload_UserAgent_ReleaseChannel.Descriptor instead. func (ClientPayload_UserAgent_ReleaseChannel) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147, 1, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148, 1, 0} } type ClientPayload_UserAgent_Platform int32 @@ -2940,7 +2940,7 @@ func (x *ClientPayload_UserAgent_Platform) UnmarshalJSON(b []byte) error { // Deprecated: Use ClientPayload_UserAgent_Platform.Descriptor instead. func (ClientPayload_UserAgent_Platform) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147, 1, 1} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148, 1, 1} } type ClientPayload_DNSSource_DNSResolutionMethod int32 @@ -3005,7 +3005,7 @@ func (x *ClientPayload_DNSSource_DNSResolutionMethod) UnmarshalJSON(b []byte) er // Deprecated: Use ClientPayload_DNSSource_DNSResolutionMethod.Descriptor instead. func (ClientPayload_DNSSource_DNSResolutionMethod) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147, 3, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148, 3, 0} } type WebMessageInfo_StubType int32 @@ -3541,7 +3541,7 @@ func (x *WebMessageInfo_StubType) UnmarshalJSON(b []byte) error { // Deprecated: Use WebMessageInfo_StubType.Descriptor instead. func (WebMessageInfo_StubType) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{149, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{150, 0} } type WebMessageInfo_Status int32 @@ -3609,7 +3609,7 @@ func (x *WebMessageInfo_Status) UnmarshalJSON(b []byte) error { // Deprecated: Use WebMessageInfo_Status.Descriptor instead. func (WebMessageInfo_Status) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{149, 1} + return file_binary_proto_def_proto_rawDescGZIP(), []int{150, 1} } type WebMessageInfo_BizPrivacyStatus int32 @@ -3671,7 +3671,7 @@ func (x *WebMessageInfo_BizPrivacyStatus) UnmarshalJSON(b []byte) error { // Deprecated: Use WebMessageInfo_BizPrivacyStatus.Descriptor instead. func (WebMessageInfo_BizPrivacyStatus) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{149, 2} + return file_binary_proto_def_proto_rawDescGZIP(), []int{150, 2} } type WebFeatures_Flag int32 @@ -3733,7 +3733,7 @@ func (x *WebFeatures_Flag) UnmarshalJSON(b []byte) error { // Deprecated: Use WebFeatures_Flag.Descriptor instead. func (WebFeatures_Flag) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{150, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{151, 0} } type PaymentInfo_TxnStatus int32 @@ -3879,7 +3879,7 @@ func (x *PaymentInfo_TxnStatus) UnmarshalJSON(b []byte) error { // Deprecated: Use PaymentInfo_TxnStatus.Descriptor instead. func (PaymentInfo_TxnStatus) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{157, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{158, 0} } type PaymentInfo_Status int32 @@ -3965,7 +3965,7 @@ func (x *PaymentInfo_Status) UnmarshalJSON(b []byte) error { // Deprecated: Use PaymentInfo_Status.Descriptor instead. func (PaymentInfo_Status) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{157, 1} + return file_binary_proto_def_proto_rawDescGZIP(), []int{158, 1} } type PaymentInfo_Currency int32 @@ -4021,7 +4021,7 @@ func (x *PaymentInfo_Currency) UnmarshalJSON(b []byte) error { // Deprecated: Use PaymentInfo_Currency.Descriptor instead. func (PaymentInfo_Currency) EnumDescriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{157, 2} + return file_binary_proto_def_proto_rawDescGZIP(), []int{158, 2} } type ADVSignedKeyIndexList struct { @@ -8326,6 +8326,7 @@ type ContextInfo struct { ParentGroupJid *string `protobuf:"bytes,35,opt,name=parentGroupJid" json:"parentGroupJid,omitempty"` TrustBannerType *string `protobuf:"bytes,37,opt,name=trustBannerType" json:"trustBannerType,omitempty"` TrustBannerAction *uint32 `protobuf:"varint,38,opt,name=trustBannerAction" json:"trustBannerAction,omitempty"` + IsSampled *bool `protobuf:"varint,39,opt,name=isSampled" json:"isSampled,omitempty"` } func (x *ContextInfo) Reset() { @@ -8535,6 +8536,13 @@ func (x *ContextInfo) GetTrustBannerAction() uint32 { return 0 } +func (x *ContextInfo) GetIsSampled() bool { + if x != nil && x.IsSampled != nil { + return *x.IsSampled + } + return false +} + type ActionLink struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -9000,6 +9008,7 @@ type Message struct { EncReactionMessage *EncReactionMessage `protobuf:"bytes,56,opt,name=encReactionMessage" json:"encReactionMessage,omitempty"` EditedMessage *FutureProofMessage `protobuf:"bytes,58,opt,name=editedMessage" json:"editedMessage,omitempty"` ViewOnceMessageV2Extension *FutureProofMessage `protobuf:"bytes,59,opt,name=viewOnceMessageV2Extension" json:"viewOnceMessageV2Extension,omitempty"` + PollCreationMessageV2 *PollCreationMessage `protobuf:"bytes,60,opt,name=pollCreationMessageV2" json:"pollCreationMessageV2,omitempty"` } func (x *Message) Reset() { @@ -9377,6 +9386,13 @@ func (x *Message) GetViewOnceMessageV2Extension() *FutureProofMessage { return nil } +func (x *Message) GetPollCreationMessageV2() *PollCreationMessage { + if x != nil { + return x.PollCreationMessageV2 + } + return nil +} + type MessageContextInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -12315,6 +12331,7 @@ type MsgOpaqueData struct { SenderTimestampMs *int64 `protobuf:"varint,22,opt,name=senderTimestampMs" json:"senderTimestampMs,omitempty"` PollUpdateParentKey *string `protobuf:"bytes,23,opt,name=pollUpdateParentKey" json:"pollUpdateParentKey,omitempty"` EncPollVote *PollEncValue `protobuf:"bytes,24,opt,name=encPollVote" json:"encPollVote,omitempty"` + IsSentCagPollCreation *bool `protobuf:"varint,28,opt,name=isSentCagPollCreation" json:"isSentCagPollCreation,omitempty"` EncReactionTargetMessageKey *string `protobuf:"bytes,25,opt,name=encReactionTargetMessageKey" json:"encReactionTargetMessageKey,omitempty"` EncReactionEncPayload []byte `protobuf:"bytes,26,opt,name=encReactionEncPayload" json:"encReactionEncPayload,omitempty"` EncReactionEncIv []byte `protobuf:"bytes,27,opt,name=encReactionEncIv" json:"encReactionEncIv,omitempty"` @@ -12506,6 +12523,13 @@ func (x *MsgOpaqueData) GetEncPollVote() *PollEncValue { return nil } +func (x *MsgOpaqueData) GetIsSentCagPollCreation() bool { + if x != nil && x.IsSentCagPollCreation != nil { + return *x.IsSentCagPollCreation + } + return false +} + func (x *MsgOpaqueData) GetEncReactionTargetMessageKey() string { if x != nil && x.EncReactionTargetMessageKey != nil { return *x.EncReactionTargetMessageKey @@ -13413,6 +13437,7 @@ type SyncActionValue struct { RemoveRecentStickerAction *RemoveRecentStickerAction `protobuf:"bytes,34,opt,name=removeRecentStickerAction" json:"removeRecentStickerAction,omitempty"` ChatAssignment *ChatAssignmentAction `protobuf:"bytes,35,opt,name=chatAssignment" json:"chatAssignment,omitempty"` ChatAssignmentOpenedStatus *ChatAssignmentOpenedStatusAction `protobuf:"bytes,36,opt,name=chatAssignmentOpenedStatus" json:"chatAssignmentOpenedStatus,omitempty"` + PnForLidChatAction *PnForLidChatAction `protobuf:"bytes,37,opt,name=pnForLidChatAction" json:"pnForLidChatAction,omitempty"` } func (x *SyncActionValue) Reset() { @@ -13664,6 +13689,13 @@ func (x *SyncActionValue) GetChatAssignmentOpenedStatus() *ChatAssignmentOpenedS return nil } +func (x *SyncActionValue) GetPnForLidChatAction() *PnForLidChatAction { + if x != nil { + return x.PnForLidChatAction + } + return nil +} + type UserStatusMuteAction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -14513,6 +14545,53 @@ func (x *PrimaryFeature) GetFlags() []string { return nil } +type PnForLidChatAction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PnJid *string `protobuf:"bytes,1,opt,name=pnJid" json:"pnJid,omitempty"` +} + +func (x *PnForLidChatAction) Reset() { + *x = PnForLidChatAction{} + if protoimpl.UnsafeEnabled { + mi := &file_binary_proto_def_proto_msgTypes[119] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PnForLidChatAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PnForLidChatAction) ProtoMessage() {} + +func (x *PnForLidChatAction) ProtoReflect() protoreflect.Message { + mi := &file_binary_proto_def_proto_msgTypes[119] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PnForLidChatAction.ProtoReflect.Descriptor instead. +func (*PnForLidChatAction) Descriptor() ([]byte, []int) { + return file_binary_proto_def_proto_rawDescGZIP(), []int{119} +} + +func (x *PnForLidChatAction) GetPnJid() string { + if x != nil && x.PnJid != nil { + return *x.PnJid + } + return "" +} + type PinAction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -14524,7 +14603,7 @@ type PinAction struct { func (x *PinAction) Reset() { *x = PinAction{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[119] + mi := &file_binary_proto_def_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14537,7 +14616,7 @@ func (x *PinAction) String() string { func (*PinAction) ProtoMessage() {} func (x *PinAction) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[119] + mi := &file_binary_proto_def_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14550,7 +14629,7 @@ func (x *PinAction) ProtoReflect() protoreflect.Message { // Deprecated: Use PinAction.ProtoReflect.Descriptor instead. func (*PinAction) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{119} + return file_binary_proto_def_proto_rawDescGZIP(), []int{120} } func (x *PinAction) GetPinned() bool { @@ -14571,7 +14650,7 @@ type NuxAction struct { func (x *NuxAction) Reset() { *x = NuxAction{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[120] + mi := &file_binary_proto_def_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14584,7 +14663,7 @@ func (x *NuxAction) String() string { func (*NuxAction) ProtoMessage() {} func (x *NuxAction) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[120] + mi := &file_binary_proto_def_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14597,7 +14676,7 @@ func (x *NuxAction) ProtoReflect() protoreflect.Message { // Deprecated: Use NuxAction.ProtoReflect.Descriptor instead. func (*NuxAction) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{120} + return file_binary_proto_def_proto_rawDescGZIP(), []int{121} } func (x *NuxAction) GetAcknowledged() bool { @@ -14620,7 +14699,7 @@ type MuteAction struct { func (x *MuteAction) Reset() { *x = MuteAction{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[121] + mi := &file_binary_proto_def_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14633,7 +14712,7 @@ func (x *MuteAction) String() string { func (*MuteAction) ProtoMessage() {} func (x *MuteAction) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[121] + mi := &file_binary_proto_def_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14646,7 +14725,7 @@ func (x *MuteAction) ProtoReflect() protoreflect.Message { // Deprecated: Use MuteAction.ProtoReflect.Descriptor instead. func (*MuteAction) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{121} + return file_binary_proto_def_proto_rawDescGZIP(), []int{122} } func (x *MuteAction) GetMuted() bool { @@ -14682,7 +14761,7 @@ type MarkChatAsReadAction struct { func (x *MarkChatAsReadAction) Reset() { *x = MarkChatAsReadAction{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[122] + mi := &file_binary_proto_def_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14695,7 +14774,7 @@ func (x *MarkChatAsReadAction) String() string { func (*MarkChatAsReadAction) ProtoMessage() {} func (x *MarkChatAsReadAction) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[122] + mi := &file_binary_proto_def_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14708,7 +14787,7 @@ func (x *MarkChatAsReadAction) ProtoReflect() protoreflect.Message { // Deprecated: Use MarkChatAsReadAction.ProtoReflect.Descriptor instead. func (*MarkChatAsReadAction) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{122} + return file_binary_proto_def_proto_rawDescGZIP(), []int{123} } func (x *MarkChatAsReadAction) GetRead() bool { @@ -14736,7 +14815,7 @@ type LocaleSetting struct { func (x *LocaleSetting) Reset() { *x = LocaleSetting{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[123] + mi := &file_binary_proto_def_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14749,7 +14828,7 @@ func (x *LocaleSetting) String() string { func (*LocaleSetting) ProtoMessage() {} func (x *LocaleSetting) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[123] + mi := &file_binary_proto_def_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14762,7 +14841,7 @@ func (x *LocaleSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use LocaleSetting.ProtoReflect.Descriptor instead. func (*LocaleSetting) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{123} + return file_binary_proto_def_proto_rawDescGZIP(), []int{124} } func (x *LocaleSetting) GetLocale() string { @@ -14786,7 +14865,7 @@ type LabelEditAction struct { func (x *LabelEditAction) Reset() { *x = LabelEditAction{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[124] + mi := &file_binary_proto_def_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14799,7 +14878,7 @@ func (x *LabelEditAction) String() string { func (*LabelEditAction) ProtoMessage() {} func (x *LabelEditAction) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[124] + mi := &file_binary_proto_def_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14812,7 +14891,7 @@ func (x *LabelEditAction) ProtoReflect() protoreflect.Message { // Deprecated: Use LabelEditAction.ProtoReflect.Descriptor instead. func (*LabelEditAction) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{124} + return file_binary_proto_def_proto_rawDescGZIP(), []int{125} } func (x *LabelEditAction) GetName() string { @@ -14854,7 +14933,7 @@ type LabelAssociationAction struct { func (x *LabelAssociationAction) Reset() { *x = LabelAssociationAction{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[125] + mi := &file_binary_proto_def_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14867,7 +14946,7 @@ func (x *LabelAssociationAction) String() string { func (*LabelAssociationAction) ProtoMessage() {} func (x *LabelAssociationAction) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[125] + mi := &file_binary_proto_def_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14880,7 +14959,7 @@ func (x *LabelAssociationAction) ProtoReflect() protoreflect.Message { // Deprecated: Use LabelAssociationAction.ProtoReflect.Descriptor instead. func (*LabelAssociationAction) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{125} + return file_binary_proto_def_proto_rawDescGZIP(), []int{126} } func (x *LabelAssociationAction) GetLabeled() bool { @@ -14901,7 +14980,7 @@ type KeyExpiration struct { func (x *KeyExpiration) Reset() { *x = KeyExpiration{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[126] + mi := &file_binary_proto_def_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14914,7 +14993,7 @@ func (x *KeyExpiration) String() string { func (*KeyExpiration) ProtoMessage() {} func (x *KeyExpiration) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[126] + mi := &file_binary_proto_def_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14927,7 +15006,7 @@ func (x *KeyExpiration) ProtoReflect() protoreflect.Message { // Deprecated: Use KeyExpiration.ProtoReflect.Descriptor instead. func (*KeyExpiration) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{126} + return file_binary_proto_def_proto_rawDescGZIP(), []int{127} } func (x *KeyExpiration) GetExpiredKeyEpoch() int32 { @@ -14949,7 +15028,7 @@ type DeleteMessageForMeAction struct { func (x *DeleteMessageForMeAction) Reset() { *x = DeleteMessageForMeAction{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[127] + mi := &file_binary_proto_def_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14962,7 +15041,7 @@ func (x *DeleteMessageForMeAction) String() string { func (*DeleteMessageForMeAction) ProtoMessage() {} func (x *DeleteMessageForMeAction) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[127] + mi := &file_binary_proto_def_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14975,7 +15054,7 @@ func (x *DeleteMessageForMeAction) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteMessageForMeAction.ProtoReflect.Descriptor instead. func (*DeleteMessageForMeAction) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{127} + return file_binary_proto_def_proto_rawDescGZIP(), []int{128} } func (x *DeleteMessageForMeAction) GetDeleteMedia() bool { @@ -15003,7 +15082,7 @@ type DeleteChatAction struct { func (x *DeleteChatAction) Reset() { *x = DeleteChatAction{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[128] + mi := &file_binary_proto_def_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15016,7 +15095,7 @@ func (x *DeleteChatAction) String() string { func (*DeleteChatAction) ProtoMessage() {} func (x *DeleteChatAction) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[128] + mi := &file_binary_proto_def_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15029,7 +15108,7 @@ func (x *DeleteChatAction) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteChatAction.ProtoReflect.Descriptor instead. func (*DeleteChatAction) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{128} + return file_binary_proto_def_proto_rawDescGZIP(), []int{129} } func (x *DeleteChatAction) GetMessageRange() *SyncActionMessageRange { @@ -15052,7 +15131,7 @@ type ContactAction struct { func (x *ContactAction) Reset() { *x = ContactAction{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[129] + mi := &file_binary_proto_def_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15065,7 +15144,7 @@ func (x *ContactAction) String() string { func (*ContactAction) ProtoMessage() {} func (x *ContactAction) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[129] + mi := &file_binary_proto_def_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15078,7 +15157,7 @@ func (x *ContactAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ContactAction.ProtoReflect.Descriptor instead. func (*ContactAction) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{129} + return file_binary_proto_def_proto_rawDescGZIP(), []int{130} } func (x *ContactAction) GetFullName() string { @@ -15113,7 +15192,7 @@ type ClearChatAction struct { func (x *ClearChatAction) Reset() { *x = ClearChatAction{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[130] + mi := &file_binary_proto_def_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15126,7 +15205,7 @@ func (x *ClearChatAction) String() string { func (*ClearChatAction) ProtoMessage() {} func (x *ClearChatAction) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[130] + mi := &file_binary_proto_def_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15139,7 +15218,7 @@ func (x *ClearChatAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ClearChatAction.ProtoReflect.Descriptor instead. func (*ClearChatAction) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{130} + return file_binary_proto_def_proto_rawDescGZIP(), []int{131} } func (x *ClearChatAction) GetMessageRange() *SyncActionMessageRange { @@ -15160,7 +15239,7 @@ type ChatAssignmentOpenedStatusAction struct { func (x *ChatAssignmentOpenedStatusAction) Reset() { *x = ChatAssignmentOpenedStatusAction{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[131] + mi := &file_binary_proto_def_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15173,7 +15252,7 @@ func (x *ChatAssignmentOpenedStatusAction) String() string { func (*ChatAssignmentOpenedStatusAction) ProtoMessage() {} func (x *ChatAssignmentOpenedStatusAction) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[131] + mi := &file_binary_proto_def_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15186,7 +15265,7 @@ func (x *ChatAssignmentOpenedStatusAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ChatAssignmentOpenedStatusAction.ProtoReflect.Descriptor instead. func (*ChatAssignmentOpenedStatusAction) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{131} + return file_binary_proto_def_proto_rawDescGZIP(), []int{132} } func (x *ChatAssignmentOpenedStatusAction) GetChatOpened() bool { @@ -15207,7 +15286,7 @@ type ChatAssignmentAction struct { func (x *ChatAssignmentAction) Reset() { *x = ChatAssignmentAction{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[132] + mi := &file_binary_proto_def_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15220,7 +15299,7 @@ func (x *ChatAssignmentAction) String() string { func (*ChatAssignmentAction) ProtoMessage() {} func (x *ChatAssignmentAction) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[132] + mi := &file_binary_proto_def_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15233,7 +15312,7 @@ func (x *ChatAssignmentAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ChatAssignmentAction.ProtoReflect.Descriptor instead. func (*ChatAssignmentAction) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{132} + return file_binary_proto_def_proto_rawDescGZIP(), []int{133} } func (x *ChatAssignmentAction) GetDeviceAgentID() string { @@ -15255,7 +15334,7 @@ type ArchiveChatAction struct { func (x *ArchiveChatAction) Reset() { *x = ArchiveChatAction{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[133] + mi := &file_binary_proto_def_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15268,7 +15347,7 @@ func (x *ArchiveChatAction) String() string { func (*ArchiveChatAction) ProtoMessage() {} func (x *ArchiveChatAction) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[133] + mi := &file_binary_proto_def_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15281,7 +15360,7 @@ func (x *ArchiveChatAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ArchiveChatAction.ProtoReflect.Descriptor instead. func (*ArchiveChatAction) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{133} + return file_binary_proto_def_proto_rawDescGZIP(), []int{134} } func (x *ArchiveChatAction) GetArchived() bool { @@ -15309,7 +15388,7 @@ type AndroidUnsupportedActions struct { func (x *AndroidUnsupportedActions) Reset() { *x = AndroidUnsupportedActions{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[134] + mi := &file_binary_proto_def_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15322,7 +15401,7 @@ func (x *AndroidUnsupportedActions) String() string { func (*AndroidUnsupportedActions) ProtoMessage() {} func (x *AndroidUnsupportedActions) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[134] + mi := &file_binary_proto_def_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15335,7 +15414,7 @@ func (x *AndroidUnsupportedActions) ProtoReflect() protoreflect.Message { // Deprecated: Use AndroidUnsupportedActions.ProtoReflect.Descriptor instead. func (*AndroidUnsupportedActions) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{134} + return file_binary_proto_def_proto_rawDescGZIP(), []int{135} } func (x *AndroidUnsupportedActions) GetAllowed() bool { @@ -15358,7 +15437,7 @@ type AgentAction struct { func (x *AgentAction) Reset() { *x = AgentAction{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[135] + mi := &file_binary_proto_def_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15371,7 +15450,7 @@ func (x *AgentAction) String() string { func (*AgentAction) ProtoMessage() {} func (x *AgentAction) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[135] + mi := &file_binary_proto_def_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15384,7 +15463,7 @@ func (x *AgentAction) ProtoReflect() protoreflect.Message { // Deprecated: Use AgentAction.ProtoReflect.Descriptor instead. func (*AgentAction) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{135} + return file_binary_proto_def_proto_rawDescGZIP(), []int{136} } func (x *AgentAction) GetName() string { @@ -15422,7 +15501,7 @@ type SyncActionData struct { func (x *SyncActionData) Reset() { *x = SyncActionData{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[136] + mi := &file_binary_proto_def_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15435,7 +15514,7 @@ func (x *SyncActionData) String() string { func (*SyncActionData) ProtoMessage() {} func (x *SyncActionData) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[136] + mi := &file_binary_proto_def_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15448,7 +15527,7 @@ func (x *SyncActionData) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncActionData.ProtoReflect.Descriptor instead. func (*SyncActionData) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{136} + return file_binary_proto_def_proto_rawDescGZIP(), []int{137} } func (x *SyncActionData) GetIndex() []byte { @@ -15491,7 +15570,7 @@ type RecentEmojiWeight struct { func (x *RecentEmojiWeight) Reset() { *x = RecentEmojiWeight{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[137] + mi := &file_binary_proto_def_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15504,7 +15583,7 @@ func (x *RecentEmojiWeight) String() string { func (*RecentEmojiWeight) ProtoMessage() {} func (x *RecentEmojiWeight) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[137] + mi := &file_binary_proto_def_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15517,7 +15596,7 @@ func (x *RecentEmojiWeight) ProtoReflect() protoreflect.Message { // Deprecated: Use RecentEmojiWeight.ProtoReflect.Descriptor instead. func (*RecentEmojiWeight) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{137} + return file_binary_proto_def_proto_rawDescGZIP(), []int{138} } func (x *RecentEmojiWeight) GetEmoji() string { @@ -15547,7 +15626,7 @@ type VerifiedNameCertificate struct { func (x *VerifiedNameCertificate) Reset() { *x = VerifiedNameCertificate{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[138] + mi := &file_binary_proto_def_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15560,7 +15639,7 @@ func (x *VerifiedNameCertificate) String() string { func (*VerifiedNameCertificate) ProtoMessage() {} func (x *VerifiedNameCertificate) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[138] + mi := &file_binary_proto_def_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15573,7 +15652,7 @@ func (x *VerifiedNameCertificate) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifiedNameCertificate.ProtoReflect.Descriptor instead. func (*VerifiedNameCertificate) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{138} + return file_binary_proto_def_proto_rawDescGZIP(), []int{139} } func (x *VerifiedNameCertificate) GetDetails() []byte { @@ -15610,7 +15689,7 @@ type LocalizedName struct { func (x *LocalizedName) Reset() { *x = LocalizedName{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[139] + mi := &file_binary_proto_def_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15623,7 +15702,7 @@ func (x *LocalizedName) String() string { func (*LocalizedName) ProtoMessage() {} func (x *LocalizedName) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[139] + mi := &file_binary_proto_def_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15636,7 +15715,7 @@ func (x *LocalizedName) ProtoReflect() protoreflect.Message { // Deprecated: Use LocalizedName.ProtoReflect.Descriptor instead. func (*LocalizedName) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{139} + return file_binary_proto_def_proto_rawDescGZIP(), []int{140} } func (x *LocalizedName) GetLg() string { @@ -15678,7 +15757,7 @@ type BizIdentityInfo struct { func (x *BizIdentityInfo) Reset() { *x = BizIdentityInfo{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[140] + mi := &file_binary_proto_def_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15691,7 +15770,7 @@ func (x *BizIdentityInfo) String() string { func (*BizIdentityInfo) ProtoMessage() {} func (x *BizIdentityInfo) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[140] + mi := &file_binary_proto_def_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15704,7 +15783,7 @@ func (x *BizIdentityInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use BizIdentityInfo.ProtoReflect.Descriptor instead. func (*BizIdentityInfo) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{140} + return file_binary_proto_def_proto_rawDescGZIP(), []int{141} } func (x *BizIdentityInfo) GetVlevel() BizIdentityInfo_VerifiedLevelValue { @@ -15775,7 +15854,7 @@ type BizAccountPayload struct { func (x *BizAccountPayload) Reset() { *x = BizAccountPayload{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[141] + mi := &file_binary_proto_def_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15788,7 +15867,7 @@ func (x *BizAccountPayload) String() string { func (*BizAccountPayload) ProtoMessage() {} func (x *BizAccountPayload) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[141] + mi := &file_binary_proto_def_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15801,7 +15880,7 @@ func (x *BizAccountPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use BizAccountPayload.ProtoReflect.Descriptor instead. func (*BizAccountPayload) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{141} + return file_binary_proto_def_proto_rawDescGZIP(), []int{142} } func (x *BizAccountPayload) GetVnameCert() *VerifiedNameCertificate { @@ -15833,7 +15912,7 @@ type BizAccountLinkInfo struct { func (x *BizAccountLinkInfo) Reset() { *x = BizAccountLinkInfo{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[142] + mi := &file_binary_proto_def_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15846,7 +15925,7 @@ func (x *BizAccountLinkInfo) String() string { func (*BizAccountLinkInfo) ProtoMessage() {} func (x *BizAccountLinkInfo) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[142] + mi := &file_binary_proto_def_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15859,7 +15938,7 @@ func (x *BizAccountLinkInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use BizAccountLinkInfo.ProtoReflect.Descriptor instead. func (*BizAccountLinkInfo) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{142} + return file_binary_proto_def_proto_rawDescGZIP(), []int{143} } func (x *BizAccountLinkInfo) GetWhatsappBizAcctFbid() uint64 { @@ -15910,7 +15989,7 @@ type HandshakeMessage struct { func (x *HandshakeMessage) Reset() { *x = HandshakeMessage{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[143] + mi := &file_binary_proto_def_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15923,7 +16002,7 @@ func (x *HandshakeMessage) String() string { func (*HandshakeMessage) ProtoMessage() {} func (x *HandshakeMessage) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[143] + mi := &file_binary_proto_def_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15936,7 +16015,7 @@ func (x *HandshakeMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use HandshakeMessage.ProtoReflect.Descriptor instead. func (*HandshakeMessage) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{143} + return file_binary_proto_def_proto_rawDescGZIP(), []int{144} } func (x *HandshakeMessage) GetClientHello() *HandshakeClientHello { @@ -15973,7 +16052,7 @@ type HandshakeServerHello struct { func (x *HandshakeServerHello) Reset() { *x = HandshakeServerHello{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[144] + mi := &file_binary_proto_def_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15986,7 +16065,7 @@ func (x *HandshakeServerHello) String() string { func (*HandshakeServerHello) ProtoMessage() {} func (x *HandshakeServerHello) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[144] + mi := &file_binary_proto_def_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15999,7 +16078,7 @@ func (x *HandshakeServerHello) ProtoReflect() protoreflect.Message { // Deprecated: Use HandshakeServerHello.ProtoReflect.Descriptor instead. func (*HandshakeServerHello) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{144} + return file_binary_proto_def_proto_rawDescGZIP(), []int{145} } func (x *HandshakeServerHello) GetEphemeral() []byte { @@ -16036,7 +16115,7 @@ type HandshakeClientHello struct { func (x *HandshakeClientHello) Reset() { *x = HandshakeClientHello{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[145] + mi := &file_binary_proto_def_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16049,7 +16128,7 @@ func (x *HandshakeClientHello) String() string { func (*HandshakeClientHello) ProtoMessage() {} func (x *HandshakeClientHello) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[145] + mi := &file_binary_proto_def_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16062,7 +16141,7 @@ func (x *HandshakeClientHello) ProtoReflect() protoreflect.Message { // Deprecated: Use HandshakeClientHello.ProtoReflect.Descriptor instead. func (*HandshakeClientHello) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{145} + return file_binary_proto_def_proto_rawDescGZIP(), []int{146} } func (x *HandshakeClientHello) GetEphemeral() []byte { @@ -16098,7 +16177,7 @@ type HandshakeClientFinish struct { func (x *HandshakeClientFinish) Reset() { *x = HandshakeClientFinish{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[146] + mi := &file_binary_proto_def_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16111,7 +16190,7 @@ func (x *HandshakeClientFinish) String() string { func (*HandshakeClientFinish) ProtoMessage() {} func (x *HandshakeClientFinish) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[146] + mi := &file_binary_proto_def_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16124,7 +16203,7 @@ func (x *HandshakeClientFinish) ProtoReflect() protoreflect.Message { // Deprecated: Use HandshakeClientFinish.ProtoReflect.Descriptor instead. func (*HandshakeClientFinish) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{146} + return file_binary_proto_def_proto_rawDescGZIP(), []int{147} } func (x *HandshakeClientFinish) GetStatic() []byte { @@ -16178,7 +16257,7 @@ type ClientPayload struct { func (x *ClientPayload) Reset() { *x = ClientPayload{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[147] + mi := &file_binary_proto_def_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16191,7 +16270,7 @@ func (x *ClientPayload) String() string { func (*ClientPayload) ProtoMessage() {} func (x *ClientPayload) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[147] + mi := &file_binary_proto_def_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16204,7 +16283,7 @@ func (x *ClientPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientPayload.ProtoReflect.Descriptor instead. func (*ClientPayload) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148} } func (x *ClientPayload) GetUsername() uint64 { @@ -16410,7 +16489,7 @@ type WebNotificationsInfo struct { func (x *WebNotificationsInfo) Reset() { *x = WebNotificationsInfo{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[148] + mi := &file_binary_proto_def_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16423,7 +16502,7 @@ func (x *WebNotificationsInfo) String() string { func (*WebNotificationsInfo) ProtoMessage() {} func (x *WebNotificationsInfo) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[148] + mi := &file_binary_proto_def_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16436,7 +16515,7 @@ func (x *WebNotificationsInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use WebNotificationsInfo.ProtoReflect.Descriptor instead. func (*WebNotificationsInfo) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{148} + return file_binary_proto_def_proto_rawDescGZIP(), []int{149} } func (x *WebNotificationsInfo) GetTimestamp() uint64 { @@ -16520,7 +16599,7 @@ type WebMessageInfo struct { func (x *WebMessageInfo) Reset() { *x = WebMessageInfo{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[149] + mi := &file_binary_proto_def_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16533,7 +16612,7 @@ func (x *WebMessageInfo) String() string { func (*WebMessageInfo) ProtoMessage() {} func (x *WebMessageInfo) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[149] + mi := &file_binary_proto_def_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16546,7 +16625,7 @@ func (x *WebMessageInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use WebMessageInfo.ProtoReflect.Descriptor instead. func (*WebMessageInfo) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{149} + return file_binary_proto_def_proto_rawDescGZIP(), []int{150} } func (x *WebMessageInfo) GetKey() *MessageKey { @@ -16905,7 +16984,7 @@ type WebFeatures struct { func (x *WebFeatures) Reset() { *x = WebFeatures{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[150] + mi := &file_binary_proto_def_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16918,7 +16997,7 @@ func (x *WebFeatures) String() string { func (*WebFeatures) ProtoMessage() {} func (x *WebFeatures) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[150] + mi := &file_binary_proto_def_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16931,7 +17010,7 @@ func (x *WebFeatures) ProtoReflect() protoreflect.Message { // Deprecated: Use WebFeatures.ProtoReflect.Descriptor instead. func (*WebFeatures) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{150} + return file_binary_proto_def_proto_rawDescGZIP(), []int{151} } func (x *WebFeatures) GetLabelsDisplay() WebFeatures_Flag { @@ -17265,7 +17344,7 @@ type UserReceipt struct { func (x *UserReceipt) Reset() { *x = UserReceipt{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[151] + mi := &file_binary_proto_def_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17278,7 +17357,7 @@ func (x *UserReceipt) String() string { func (*UserReceipt) ProtoMessage() {} func (x *UserReceipt) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[151] + mi := &file_binary_proto_def_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17291,7 +17370,7 @@ func (x *UserReceipt) ProtoReflect() protoreflect.Message { // Deprecated: Use UserReceipt.ProtoReflect.Descriptor instead. func (*UserReceipt) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{151} + return file_binary_proto_def_proto_rawDescGZIP(), []int{152} } func (x *UserReceipt) GetUserJid() string { @@ -17348,7 +17427,7 @@ type StatusPSA struct { func (x *StatusPSA) Reset() { *x = StatusPSA{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[152] + mi := &file_binary_proto_def_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17361,7 +17440,7 @@ func (x *StatusPSA) String() string { func (*StatusPSA) ProtoMessage() {} func (x *StatusPSA) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[152] + mi := &file_binary_proto_def_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17374,7 +17453,7 @@ func (x *StatusPSA) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusPSA.ProtoReflect.Descriptor instead. func (*StatusPSA) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{152} + return file_binary_proto_def_proto_rawDescGZIP(), []int{153} } func (x *StatusPSA) GetCampaignId() uint64 { @@ -17406,7 +17485,7 @@ type Reaction struct { func (x *Reaction) Reset() { *x = Reaction{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[153] + mi := &file_binary_proto_def_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17419,7 +17498,7 @@ func (x *Reaction) String() string { func (*Reaction) ProtoMessage() {} func (x *Reaction) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[153] + mi := &file_binary_proto_def_proto_msgTypes[154] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17432,7 +17511,7 @@ func (x *Reaction) ProtoReflect() protoreflect.Message { // Deprecated: Use Reaction.ProtoReflect.Descriptor instead. func (*Reaction) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{153} + return file_binary_proto_def_proto_rawDescGZIP(), []int{154} } func (x *Reaction) GetKey() *MessageKey { @@ -17478,12 +17557,13 @@ type PollUpdate struct { PollUpdateMessageKey *MessageKey `protobuf:"bytes,1,opt,name=pollUpdateMessageKey" json:"pollUpdateMessageKey,omitempty"` Vote *PollVoteMessage `protobuf:"bytes,2,opt,name=vote" json:"vote,omitempty"` SenderTimestampMs *int64 `protobuf:"varint,3,opt,name=senderTimestampMs" json:"senderTimestampMs,omitempty"` + ServerTimestampMs *int64 `protobuf:"varint,4,opt,name=serverTimestampMs" json:"serverTimestampMs,omitempty"` } func (x *PollUpdate) Reset() { *x = PollUpdate{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[154] + mi := &file_binary_proto_def_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17496,7 +17576,7 @@ func (x *PollUpdate) String() string { func (*PollUpdate) ProtoMessage() {} func (x *PollUpdate) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[154] + mi := &file_binary_proto_def_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17509,7 +17589,7 @@ func (x *PollUpdate) ProtoReflect() protoreflect.Message { // Deprecated: Use PollUpdate.ProtoReflect.Descriptor instead. func (*PollUpdate) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{154} + return file_binary_proto_def_proto_rawDescGZIP(), []int{155} } func (x *PollUpdate) GetPollUpdateMessageKey() *MessageKey { @@ -17533,6 +17613,13 @@ func (x *PollUpdate) GetSenderTimestampMs() int64 { return 0 } +func (x *PollUpdate) GetServerTimestampMs() int64 { + if x != nil && x.ServerTimestampMs != nil { + return *x.ServerTimestampMs + } + return 0 +} + type PollAdditionalMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -17544,7 +17631,7 @@ type PollAdditionalMetadata struct { func (x *PollAdditionalMetadata) Reset() { *x = PollAdditionalMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[155] + mi := &file_binary_proto_def_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17557,7 +17644,7 @@ func (x *PollAdditionalMetadata) String() string { func (*PollAdditionalMetadata) ProtoMessage() {} func (x *PollAdditionalMetadata) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[155] + mi := &file_binary_proto_def_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17570,7 +17657,7 @@ func (x *PollAdditionalMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use PollAdditionalMetadata.ProtoReflect.Descriptor instead. func (*PollAdditionalMetadata) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{155} + return file_binary_proto_def_proto_rawDescGZIP(), []int{156} } func (x *PollAdditionalMetadata) GetPollInvalidated() bool { @@ -17593,7 +17680,7 @@ type PhotoChange struct { func (x *PhotoChange) Reset() { *x = PhotoChange{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[156] + mi := &file_binary_proto_def_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17606,7 +17693,7 @@ func (x *PhotoChange) String() string { func (*PhotoChange) ProtoMessage() {} func (x *PhotoChange) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[156] + mi := &file_binary_proto_def_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17619,7 +17706,7 @@ func (x *PhotoChange) ProtoReflect() protoreflect.Message { // Deprecated: Use PhotoChange.ProtoReflect.Descriptor instead. func (*PhotoChange) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{156} + return file_binary_proto_def_proto_rawDescGZIP(), []int{157} } func (x *PhotoChange) GetOldPhoto() []byte { @@ -17666,7 +17753,7 @@ type PaymentInfo struct { func (x *PaymentInfo) Reset() { *x = PaymentInfo{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[157] + mi := &file_binary_proto_def_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17679,7 +17766,7 @@ func (x *PaymentInfo) String() string { func (*PaymentInfo) ProtoMessage() {} func (x *PaymentInfo) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[157] + mi := &file_binary_proto_def_proto_msgTypes[158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17692,7 +17779,7 @@ func (x *PaymentInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PaymentInfo.ProtoReflect.Descriptor instead. func (*PaymentInfo) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{157} + return file_binary_proto_def_proto_rawDescGZIP(), []int{158} } func (x *PaymentInfo) GetCurrencyDeprecated() PaymentInfo_Currency { @@ -17800,7 +17887,7 @@ type NotificationMessageInfo struct { func (x *NotificationMessageInfo) Reset() { *x = NotificationMessageInfo{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[158] + mi := &file_binary_proto_def_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17813,7 +17900,7 @@ func (x *NotificationMessageInfo) String() string { func (*NotificationMessageInfo) ProtoMessage() {} func (x *NotificationMessageInfo) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[158] + mi := &file_binary_proto_def_proto_msgTypes[159] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17826,7 +17913,7 @@ func (x *NotificationMessageInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use NotificationMessageInfo.ProtoReflect.Descriptor instead. func (*NotificationMessageInfo) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{158} + return file_binary_proto_def_proto_rawDescGZIP(), []int{159} } func (x *NotificationMessageInfo) GetKey() *MessageKey { @@ -17868,7 +17955,7 @@ type MediaData struct { func (x *MediaData) Reset() { *x = MediaData{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[159] + mi := &file_binary_proto_def_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17881,7 +17968,7 @@ func (x *MediaData) String() string { func (*MediaData) ProtoMessage() {} func (x *MediaData) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[159] + mi := &file_binary_proto_def_proto_msgTypes[160] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17894,7 +17981,7 @@ func (x *MediaData) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaData.ProtoReflect.Descriptor instead. func (*MediaData) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{159} + return file_binary_proto_def_proto_rawDescGZIP(), []int{160} } func (x *MediaData) GetLocalPath() string { @@ -17920,7 +18007,7 @@ type KeepInChat struct { func (x *KeepInChat) Reset() { *x = KeepInChat{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[160] + mi := &file_binary_proto_def_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17933,7 +18020,7 @@ func (x *KeepInChat) String() string { func (*KeepInChat) ProtoMessage() {} func (x *KeepInChat) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[160] + mi := &file_binary_proto_def_proto_msgTypes[161] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17946,7 +18033,7 @@ func (x *KeepInChat) ProtoReflect() protoreflect.Message { // Deprecated: Use KeepInChat.ProtoReflect.Descriptor instead. func (*KeepInChat) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{160} + return file_binary_proto_def_proto_rawDescGZIP(), []int{161} } func (x *KeepInChat) GetKeepType() KeepType { @@ -18003,7 +18090,7 @@ type NoiseCertificate struct { func (x *NoiseCertificate) Reset() { *x = NoiseCertificate{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[161] + mi := &file_binary_proto_def_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18016,7 +18103,7 @@ func (x *NoiseCertificate) String() string { func (*NoiseCertificate) ProtoMessage() {} func (x *NoiseCertificate) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[161] + mi := &file_binary_proto_def_proto_msgTypes[162] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18029,7 +18116,7 @@ func (x *NoiseCertificate) ProtoReflect() protoreflect.Message { // Deprecated: Use NoiseCertificate.ProtoReflect.Descriptor instead. func (*NoiseCertificate) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{161} + return file_binary_proto_def_proto_rawDescGZIP(), []int{162} } func (x *NoiseCertificate) GetDetails() []byte { @@ -18058,7 +18145,7 @@ type CertChain struct { func (x *CertChain) Reset() { *x = CertChain{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[162] + mi := &file_binary_proto_def_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18071,7 +18158,7 @@ func (x *CertChain) String() string { func (*CertChain) ProtoMessage() {} func (x *CertChain) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[162] + mi := &file_binary_proto_def_proto_msgTypes[163] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18084,7 +18171,7 @@ func (x *CertChain) ProtoReflect() protoreflect.Message { // Deprecated: Use CertChain.ProtoReflect.Descriptor instead. func (*CertChain) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{162} + return file_binary_proto_def_proto_rawDescGZIP(), []int{163} } func (x *CertChain) GetLeaf() *CertChain_NoiseCertificate { @@ -18114,7 +18201,7 @@ type DeviceProps_HistorySyncConfig struct { func (x *DeviceProps_HistorySyncConfig) Reset() { *x = DeviceProps_HistorySyncConfig{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[163] + mi := &file_binary_proto_def_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18127,7 +18214,7 @@ func (x *DeviceProps_HistorySyncConfig) String() string { func (*DeviceProps_HistorySyncConfig) ProtoMessage() {} func (x *DeviceProps_HistorySyncConfig) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[163] + mi := &file_binary_proto_def_proto_msgTypes[164] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18179,7 +18266,7 @@ type DeviceProps_AppVersion struct { func (x *DeviceProps_AppVersion) Reset() { *x = DeviceProps_AppVersion{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[164] + mi := &file_binary_proto_def_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18192,7 +18279,7 @@ func (x *DeviceProps_AppVersion) String() string { func (*DeviceProps_AppVersion) ProtoMessage() {} func (x *DeviceProps_AppVersion) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[164] + mi := &file_binary_proto_def_proto_msgTypes[165] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18256,7 +18343,7 @@ type PeerDataOperationRequestResponseMessage_PeerDataOperationResult struct { func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult) Reset() { *x = PeerDataOperationRequestResponseMessage_PeerDataOperationResult{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[165] + mi := &file_binary_proto_def_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18269,7 +18356,7 @@ func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult) String func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult) ProtoMessage() {} func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[165] + mi := &file_binary_proto_def_proto_msgTypes[166] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18323,7 +18410,7 @@ type PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreview func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse) Reset() { *x = PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[166] + mi := &file_binary_proto_def_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18337,7 +18424,7 @@ func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPrevi } func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[166] + mi := &file_binary_proto_def_proto_msgTypes[167] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18413,7 +18500,7 @@ type PeerDataOperationRequestMessage_RequestUrlPreview struct { func (x *PeerDataOperationRequestMessage_RequestUrlPreview) Reset() { *x = PeerDataOperationRequestMessage_RequestUrlPreview{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[167] + mi := &file_binary_proto_def_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18426,7 +18513,7 @@ func (x *PeerDataOperationRequestMessage_RequestUrlPreview) String() string { func (*PeerDataOperationRequestMessage_RequestUrlPreview) ProtoMessage() {} func (x *PeerDataOperationRequestMessage_RequestUrlPreview) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[167] + mi := &file_binary_proto_def_proto_msgTypes[168] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18460,7 +18547,7 @@ type PeerDataOperationRequestMessage_RequestStickerReupload struct { func (x *PeerDataOperationRequestMessage_RequestStickerReupload) Reset() { *x = PeerDataOperationRequestMessage_RequestStickerReupload{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[168] + mi := &file_binary_proto_def_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18473,7 +18560,7 @@ func (x *PeerDataOperationRequestMessage_RequestStickerReupload) String() string func (*PeerDataOperationRequestMessage_RequestStickerReupload) ProtoMessage() {} func (x *PeerDataOperationRequestMessage_RequestStickerReupload) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[168] + mi := &file_binary_proto_def_proto_msgTypes[169] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18507,7 +18594,7 @@ type ListResponseMessage_SingleSelectReply struct { func (x *ListResponseMessage_SingleSelectReply) Reset() { *x = ListResponseMessage_SingleSelectReply{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[169] + mi := &file_binary_proto_def_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18520,7 +18607,7 @@ func (x *ListResponseMessage_SingleSelectReply) String() string { func (*ListResponseMessage_SingleSelectReply) ProtoMessage() {} func (x *ListResponseMessage_SingleSelectReply) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[169] + mi := &file_binary_proto_def_proto_msgTypes[170] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18555,7 +18642,7 @@ type ListMessage_Section struct { func (x *ListMessage_Section) Reset() { *x = ListMessage_Section{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[170] + mi := &file_binary_proto_def_proto_msgTypes[171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18568,7 +18655,7 @@ func (x *ListMessage_Section) String() string { func (*ListMessage_Section) ProtoMessage() {} func (x *ListMessage_Section) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[170] + mi := &file_binary_proto_def_proto_msgTypes[171] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18611,7 +18698,7 @@ type ListMessage_Row struct { func (x *ListMessage_Row) Reset() { *x = ListMessage_Row{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[171] + mi := &file_binary_proto_def_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18624,7 +18711,7 @@ func (x *ListMessage_Row) String() string { func (*ListMessage_Row) ProtoMessage() {} func (x *ListMessage_Row) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[171] + mi := &file_binary_proto_def_proto_msgTypes[172] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18672,7 +18759,7 @@ type ListMessage_Product struct { func (x *ListMessage_Product) Reset() { *x = ListMessage_Product{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[172] + mi := &file_binary_proto_def_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18685,7 +18772,7 @@ func (x *ListMessage_Product) String() string { func (*ListMessage_Product) ProtoMessage() {} func (x *ListMessage_Product) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[172] + mi := &file_binary_proto_def_proto_msgTypes[173] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18720,7 +18807,7 @@ type ListMessage_ProductSection struct { func (x *ListMessage_ProductSection) Reset() { *x = ListMessage_ProductSection{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[173] + mi := &file_binary_proto_def_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18733,7 +18820,7 @@ func (x *ListMessage_ProductSection) String() string { func (*ListMessage_ProductSection) ProtoMessage() {} func (x *ListMessage_ProductSection) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[173] + mi := &file_binary_proto_def_proto_msgTypes[174] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18776,7 +18863,7 @@ type ListMessage_ProductListInfo struct { func (x *ListMessage_ProductListInfo) Reset() { *x = ListMessage_ProductListInfo{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[174] + mi := &file_binary_proto_def_proto_msgTypes[175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18789,7 +18876,7 @@ func (x *ListMessage_ProductListInfo) String() string { func (*ListMessage_ProductListInfo) ProtoMessage() {} func (x *ListMessage_ProductListInfo) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[174] + mi := &file_binary_proto_def_proto_msgTypes[175] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18838,7 +18925,7 @@ type ListMessage_ProductListHeaderImage struct { func (x *ListMessage_ProductListHeaderImage) Reset() { *x = ListMessage_ProductListHeaderImage{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[175] + mi := &file_binary_proto_def_proto_msgTypes[176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18851,7 +18938,7 @@ func (x *ListMessage_ProductListHeaderImage) String() string { func (*ListMessage_ProductListHeaderImage) ProtoMessage() {} func (x *ListMessage_ProductListHeaderImage) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[175] + mi := &file_binary_proto_def_proto_msgTypes[176] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18894,7 +18981,7 @@ type InteractiveResponseMessage_NativeFlowResponseMessage struct { func (x *InteractiveResponseMessage_NativeFlowResponseMessage) Reset() { *x = InteractiveResponseMessage_NativeFlowResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[176] + mi := &file_binary_proto_def_proto_msgTypes[177] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18907,7 +18994,7 @@ func (x *InteractiveResponseMessage_NativeFlowResponseMessage) String() string { func (*InteractiveResponseMessage_NativeFlowResponseMessage) ProtoMessage() {} func (x *InteractiveResponseMessage_NativeFlowResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[176] + mi := &file_binary_proto_def_proto_msgTypes[177] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18955,7 +19042,7 @@ type InteractiveResponseMessage_Body struct { func (x *InteractiveResponseMessage_Body) Reset() { *x = InteractiveResponseMessage_Body{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[177] + mi := &file_binary_proto_def_proto_msgTypes[178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18968,7 +19055,7 @@ func (x *InteractiveResponseMessage_Body) String() string { func (*InteractiveResponseMessage_Body) ProtoMessage() {} func (x *InteractiveResponseMessage_Body) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[177] + mi := &file_binary_proto_def_proto_msgTypes[178] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19004,7 +19091,7 @@ type InteractiveMessage_ShopMessage struct { func (x *InteractiveMessage_ShopMessage) Reset() { *x = InteractiveMessage_ShopMessage{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[178] + mi := &file_binary_proto_def_proto_msgTypes[179] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19017,7 +19104,7 @@ func (x *InteractiveMessage_ShopMessage) String() string { func (*InteractiveMessage_ShopMessage) ProtoMessage() {} func (x *InteractiveMessage_ShopMessage) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[178] + mi := &file_binary_proto_def_proto_msgTypes[179] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19067,7 +19154,7 @@ type InteractiveMessage_NativeFlowMessage struct { func (x *InteractiveMessage_NativeFlowMessage) Reset() { *x = InteractiveMessage_NativeFlowMessage{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[179] + mi := &file_binary_proto_def_proto_msgTypes[180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19080,7 +19167,7 @@ func (x *InteractiveMessage_NativeFlowMessage) String() string { func (*InteractiveMessage_NativeFlowMessage) ProtoMessage() {} func (x *InteractiveMessage_NativeFlowMessage) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[179] + mi := &file_binary_proto_def_proto_msgTypes[180] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19137,7 +19224,7 @@ type InteractiveMessage_Header struct { func (x *InteractiveMessage_Header) Reset() { *x = InteractiveMessage_Header{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[180] + mi := &file_binary_proto_def_proto_msgTypes[181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19150,7 +19237,7 @@ func (x *InteractiveMessage_Header) String() string { func (*InteractiveMessage_Header) ProtoMessage() {} func (x *InteractiveMessage_Header) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[180] + mi := &file_binary_proto_def_proto_msgTypes[181] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19261,7 +19348,7 @@ type InteractiveMessage_Footer struct { func (x *InteractiveMessage_Footer) Reset() { *x = InteractiveMessage_Footer{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[181] + mi := &file_binary_proto_def_proto_msgTypes[182] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19274,7 +19361,7 @@ func (x *InteractiveMessage_Footer) String() string { func (*InteractiveMessage_Footer) ProtoMessage() {} func (x *InteractiveMessage_Footer) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[181] + mi := &file_binary_proto_def_proto_msgTypes[182] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19310,7 +19397,7 @@ type InteractiveMessage_CollectionMessage struct { func (x *InteractiveMessage_CollectionMessage) Reset() { *x = InteractiveMessage_CollectionMessage{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[182] + mi := &file_binary_proto_def_proto_msgTypes[183] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19323,7 +19410,7 @@ func (x *InteractiveMessage_CollectionMessage) String() string { func (*InteractiveMessage_CollectionMessage) ProtoMessage() {} func (x *InteractiveMessage_CollectionMessage) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[182] + mi := &file_binary_proto_def_proto_msgTypes[183] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19371,7 +19458,7 @@ type InteractiveMessage_Body struct { func (x *InteractiveMessage_Body) Reset() { *x = InteractiveMessage_Body{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[183] + mi := &file_binary_proto_def_proto_msgTypes[184] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19384,7 +19471,7 @@ func (x *InteractiveMessage_Body) String() string { func (*InteractiveMessage_Body) ProtoMessage() {} func (x *InteractiveMessage_Body) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[183] + mi := &file_binary_proto_def_proto_msgTypes[184] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19419,7 +19506,7 @@ type InteractiveMessage_NativeFlowMessage_NativeFlowButton struct { func (x *InteractiveMessage_NativeFlowMessage_NativeFlowButton) Reset() { *x = InteractiveMessage_NativeFlowMessage_NativeFlowButton{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[184] + mi := &file_binary_proto_def_proto_msgTypes[185] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19432,7 +19519,7 @@ func (x *InteractiveMessage_NativeFlowMessage_NativeFlowButton) String() string func (*InteractiveMessage_NativeFlowMessage_NativeFlowButton) ProtoMessage() {} func (x *InteractiveMessage_NativeFlowMessage_NativeFlowButton) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[184] + mi := &file_binary_proto_def_proto_msgTypes[185] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19478,7 +19565,7 @@ type HighlyStructuredMessage_HSMLocalizableParameter struct { func (x *HighlyStructuredMessage_HSMLocalizableParameter) Reset() { *x = HighlyStructuredMessage_HSMLocalizableParameter{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[185] + mi := &file_binary_proto_def_proto_msgTypes[186] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19491,7 +19578,7 @@ func (x *HighlyStructuredMessage_HSMLocalizableParameter) String() string { func (*HighlyStructuredMessage_HSMLocalizableParameter) ProtoMessage() {} func (x *HighlyStructuredMessage_HSMLocalizableParameter) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[185] + mi := &file_binary_proto_def_proto_msgTypes[186] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19568,7 +19655,7 @@ type HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime struct { func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime) Reset() { *x = HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[186] + mi := &file_binary_proto_def_proto_msgTypes[187] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19581,7 +19668,7 @@ func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime) String() s func (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime) ProtoMessage() {} func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[186] + mi := &file_binary_proto_def_proto_msgTypes[187] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19648,7 +19735,7 @@ type HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency struct { func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency) Reset() { *x = HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[187] + mi := &file_binary_proto_def_proto_msgTypes[188] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19661,7 +19748,7 @@ func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency) String() s func (*HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency) ProtoMessage() {} func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[187] + mi := &file_binary_proto_def_proto_msgTypes[188] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19702,7 +19789,7 @@ type HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnix func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnixEpoch) Reset() { *x = HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnixEpoch{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[188] + mi := &file_binary_proto_def_proto_msgTypes[189] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19716,7 +19803,7 @@ func (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUn } func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnixEpoch) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[188] + mi := &file_binary_proto_def_proto_msgTypes[189] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19756,7 +19843,7 @@ type HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComp func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent) Reset() { *x = HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[189] + mi := &file_binary_proto_def_proto_msgTypes[190] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19770,7 +19857,7 @@ func (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeCo } func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[189] + mi := &file_binary_proto_def_proto_msgTypes[190] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19849,7 +19936,7 @@ type ButtonsMessage_Button struct { func (x *ButtonsMessage_Button) Reset() { *x = ButtonsMessage_Button{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[190] + mi := &file_binary_proto_def_proto_msgTypes[191] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19862,7 +19949,7 @@ func (x *ButtonsMessage_Button) String() string { func (*ButtonsMessage_Button) ProtoMessage() {} func (x *ButtonsMessage_Button) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[190] + mi := &file_binary_proto_def_proto_msgTypes[191] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19918,7 +20005,7 @@ type ButtonsMessage_Button_NativeFlowInfo struct { func (x *ButtonsMessage_Button_NativeFlowInfo) Reset() { *x = ButtonsMessage_Button_NativeFlowInfo{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[191] + mi := &file_binary_proto_def_proto_msgTypes[192] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19931,7 +20018,7 @@ func (x *ButtonsMessage_Button_NativeFlowInfo) String() string { func (*ButtonsMessage_Button_NativeFlowInfo) ProtoMessage() {} func (x *ButtonsMessage_Button_NativeFlowInfo) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[191] + mi := &file_binary_proto_def_proto_msgTypes[192] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19972,7 +20059,7 @@ type ButtonsMessage_Button_ButtonText struct { func (x *ButtonsMessage_Button_ButtonText) Reset() { *x = ButtonsMessage_Button_ButtonText{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[192] + mi := &file_binary_proto_def_proto_msgTypes[193] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19985,7 +20072,7 @@ func (x *ButtonsMessage_Button_ButtonText) String() string { func (*ButtonsMessage_Button_ButtonText) ProtoMessage() {} func (x *ButtonsMessage_Button_ButtonText) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[192] + mi := &file_binary_proto_def_proto_msgTypes[193] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20020,7 +20107,7 @@ type HydratedTemplateButton_HydratedURLButton struct { func (x *HydratedTemplateButton_HydratedURLButton) Reset() { *x = HydratedTemplateButton_HydratedURLButton{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[193] + mi := &file_binary_proto_def_proto_msgTypes[194] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20033,7 +20120,7 @@ func (x *HydratedTemplateButton_HydratedURLButton) String() string { func (*HydratedTemplateButton_HydratedURLButton) ProtoMessage() {} func (x *HydratedTemplateButton_HydratedURLButton) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[193] + mi := &file_binary_proto_def_proto_msgTypes[194] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20075,7 +20162,7 @@ type HydratedTemplateButton_HydratedQuickReplyButton struct { func (x *HydratedTemplateButton_HydratedQuickReplyButton) Reset() { *x = HydratedTemplateButton_HydratedQuickReplyButton{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[194] + mi := &file_binary_proto_def_proto_msgTypes[195] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20088,7 +20175,7 @@ func (x *HydratedTemplateButton_HydratedQuickReplyButton) String() string { func (*HydratedTemplateButton_HydratedQuickReplyButton) ProtoMessage() {} func (x *HydratedTemplateButton_HydratedQuickReplyButton) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[194] + mi := &file_binary_proto_def_proto_msgTypes[195] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20130,7 +20217,7 @@ type HydratedTemplateButton_HydratedCallButton struct { func (x *HydratedTemplateButton_HydratedCallButton) Reset() { *x = HydratedTemplateButton_HydratedCallButton{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[195] + mi := &file_binary_proto_def_proto_msgTypes[196] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20143,7 +20230,7 @@ func (x *HydratedTemplateButton_HydratedCallButton) String() string { func (*HydratedTemplateButton_HydratedCallButton) ProtoMessage() {} func (x *HydratedTemplateButton_HydratedCallButton) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[195] + mi := &file_binary_proto_def_proto_msgTypes[196] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20196,7 +20283,7 @@ type ContextInfo_ExternalAdReplyInfo struct { func (x *ContextInfo_ExternalAdReplyInfo) Reset() { *x = ContextInfo_ExternalAdReplyInfo{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[196] + mi := &file_binary_proto_def_proto_msgTypes[197] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20209,7 +20296,7 @@ func (x *ContextInfo_ExternalAdReplyInfo) String() string { func (*ContextInfo_ExternalAdReplyInfo) ProtoMessage() {} func (x *ContextInfo_ExternalAdReplyInfo) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[196] + mi := &file_binary_proto_def_proto_msgTypes[197] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20330,7 +20417,7 @@ type ContextInfo_AdReplyInfo struct { func (x *ContextInfo_AdReplyInfo) Reset() { *x = ContextInfo_AdReplyInfo{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[197] + mi := &file_binary_proto_def_proto_msgTypes[198] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20343,7 +20430,7 @@ func (x *ContextInfo_AdReplyInfo) String() string { func (*ContextInfo_AdReplyInfo) ProtoMessage() {} func (x *ContextInfo_AdReplyInfo) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[197] + mi := &file_binary_proto_def_proto_msgTypes[198] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20399,7 +20486,7 @@ type TemplateButton_URLButton struct { func (x *TemplateButton_URLButton) Reset() { *x = TemplateButton_URLButton{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[198] + mi := &file_binary_proto_def_proto_msgTypes[199] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20412,7 +20499,7 @@ func (x *TemplateButton_URLButton) String() string { func (*TemplateButton_URLButton) ProtoMessage() {} func (x *TemplateButton_URLButton) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[198] + mi := &file_binary_proto_def_proto_msgTypes[199] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20454,7 +20541,7 @@ type TemplateButton_QuickReplyButton struct { func (x *TemplateButton_QuickReplyButton) Reset() { *x = TemplateButton_QuickReplyButton{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[199] + mi := &file_binary_proto_def_proto_msgTypes[200] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20467,7 +20554,7 @@ func (x *TemplateButton_QuickReplyButton) String() string { func (*TemplateButton_QuickReplyButton) ProtoMessage() {} func (x *TemplateButton_QuickReplyButton) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[199] + mi := &file_binary_proto_def_proto_msgTypes[200] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20509,7 +20596,7 @@ type TemplateButton_CallButton struct { func (x *TemplateButton_CallButton) Reset() { *x = TemplateButton_CallButton{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[200] + mi := &file_binary_proto_def_proto_msgTypes[201] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20522,7 +20609,7 @@ func (x *TemplateButton_CallButton) String() string { func (*TemplateButton_CallButton) ProtoMessage() {} func (x *TemplateButton_CallButton) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[200] + mi := &file_binary_proto_def_proto_msgTypes[201] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20567,7 +20654,7 @@ type PaymentBackground_MediaData struct { func (x *PaymentBackground_MediaData) Reset() { *x = PaymentBackground_MediaData{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[201] + mi := &file_binary_proto_def_proto_msgTypes[202] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20580,7 +20667,7 @@ func (x *PaymentBackground_MediaData) String() string { func (*PaymentBackground_MediaData) ProtoMessage() {} func (x *PaymentBackground_MediaData) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[201] + mi := &file_binary_proto_def_proto_msgTypes[202] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20653,7 +20740,7 @@ type TemplateMessage_HydratedFourRowTemplate struct { func (x *TemplateMessage_HydratedFourRowTemplate) Reset() { *x = TemplateMessage_HydratedFourRowTemplate{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[202] + mi := &file_binary_proto_def_proto_msgTypes[203] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20666,7 +20753,7 @@ func (x *TemplateMessage_HydratedFourRowTemplate) String() string { func (*TemplateMessage_HydratedFourRowTemplate) ProtoMessage() {} func (x *TemplateMessage_HydratedFourRowTemplate) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[202] + mi := &file_binary_proto_def_proto_msgTypes[203] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20812,7 +20899,7 @@ type TemplateMessage_FourRowTemplate struct { func (x *TemplateMessage_FourRowTemplate) Reset() { *x = TemplateMessage_FourRowTemplate{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[203] + mi := &file_binary_proto_def_proto_msgTypes[204] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20825,7 +20912,7 @@ func (x *TemplateMessage_FourRowTemplate) String() string { func (*TemplateMessage_FourRowTemplate) ProtoMessage() {} func (x *TemplateMessage_FourRowTemplate) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[203] + mi := &file_binary_proto_def_proto_msgTypes[204] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20960,7 +21047,7 @@ type ProductMessage_ProductSnapshot struct { func (x *ProductMessage_ProductSnapshot) Reset() { *x = ProductMessage_ProductSnapshot{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[204] + mi := &file_binary_proto_def_proto_msgTypes[205] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20973,7 +21060,7 @@ func (x *ProductMessage_ProductSnapshot) String() string { func (*ProductMessage_ProductSnapshot) ProtoMessage() {} func (x *ProductMessage_ProductSnapshot) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[204] + mi := &file_binary_proto_def_proto_msgTypes[205] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21079,7 +21166,7 @@ type ProductMessage_CatalogSnapshot struct { func (x *ProductMessage_CatalogSnapshot) Reset() { *x = ProductMessage_CatalogSnapshot{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[205] + mi := &file_binary_proto_def_proto_msgTypes[206] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21092,7 +21179,7 @@ func (x *ProductMessage_CatalogSnapshot) String() string { func (*ProductMessage_CatalogSnapshot) ProtoMessage() {} func (x *ProductMessage_CatalogSnapshot) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[205] + mi := &file_binary_proto_def_proto_msgTypes[206] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21140,7 +21227,7 @@ type PollCreationMessage_Option struct { func (x *PollCreationMessage_Option) Reset() { *x = PollCreationMessage_Option{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[206] + mi := &file_binary_proto_def_proto_msgTypes[207] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21153,7 +21240,7 @@ func (x *PollCreationMessage_Option) String() string { func (*PollCreationMessage_Option) ProtoMessage() {} func (x *PollCreationMessage_Option) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[206] + mi := &file_binary_proto_def_proto_msgTypes[207] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21187,7 +21274,7 @@ type MsgOpaqueData_PollOption struct { func (x *MsgOpaqueData_PollOption) Reset() { *x = MsgOpaqueData_PollOption{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[207] + mi := &file_binary_proto_def_proto_msgTypes[208] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21200,7 +21287,7 @@ func (x *MsgOpaqueData_PollOption) String() string { func (*MsgOpaqueData_PollOption) ProtoMessage() {} func (x *MsgOpaqueData_PollOption) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[207] + mi := &file_binary_proto_def_proto_msgTypes[208] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21238,7 +21325,7 @@ type VerifiedNameCertificate_Details struct { func (x *VerifiedNameCertificate_Details) Reset() { *x = VerifiedNameCertificate_Details{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[208] + mi := &file_binary_proto_def_proto_msgTypes[209] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21251,7 +21338,7 @@ func (x *VerifiedNameCertificate_Details) String() string { func (*VerifiedNameCertificate_Details) ProtoMessage() {} func (x *VerifiedNameCertificate_Details) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[208] + mi := &file_binary_proto_def_proto_msgTypes[209] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21264,7 +21351,7 @@ func (x *VerifiedNameCertificate_Details) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifiedNameCertificate_Details.ProtoReflect.Descriptor instead. func (*VerifiedNameCertificate_Details) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{138, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{139, 0} } func (x *VerifiedNameCertificate_Details) GetSerial() uint64 { @@ -21316,7 +21403,7 @@ type ClientPayload_WebInfo struct { func (x *ClientPayload_WebInfo) Reset() { *x = ClientPayload_WebInfo{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[209] + mi := &file_binary_proto_def_proto_msgTypes[210] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21329,7 +21416,7 @@ func (x *ClientPayload_WebInfo) String() string { func (*ClientPayload_WebInfo) ProtoMessage() {} func (x *ClientPayload_WebInfo) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[209] + mi := &file_binary_proto_def_proto_msgTypes[210] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21342,7 +21429,7 @@ func (x *ClientPayload_WebInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientPayload_WebInfo.ProtoReflect.Descriptor instead. func (*ClientPayload_WebInfo) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148, 0} } func (x *ClientPayload_WebInfo) GetRefToken() string { @@ -21396,7 +21483,7 @@ type ClientPayload_UserAgent struct { func (x *ClientPayload_UserAgent) Reset() { *x = ClientPayload_UserAgent{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[210] + mi := &file_binary_proto_def_proto_msgTypes[211] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21409,7 +21496,7 @@ func (x *ClientPayload_UserAgent) String() string { func (*ClientPayload_UserAgent) ProtoMessage() {} func (x *ClientPayload_UserAgent) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[210] + mi := &file_binary_proto_def_proto_msgTypes[211] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21422,7 +21509,7 @@ func (x *ClientPayload_UserAgent) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientPayload_UserAgent.ProtoReflect.Descriptor instead. func (*ClientPayload_UserAgent) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147, 1} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148, 1} } func (x *ClientPayload_UserAgent) GetPlatform() ClientPayload_UserAgent_Platform { @@ -21534,7 +21621,7 @@ type ClientPayload_DevicePairingRegistrationData struct { func (x *ClientPayload_DevicePairingRegistrationData) Reset() { *x = ClientPayload_DevicePairingRegistrationData{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[211] + mi := &file_binary_proto_def_proto_msgTypes[212] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21547,7 +21634,7 @@ func (x *ClientPayload_DevicePairingRegistrationData) String() string { func (*ClientPayload_DevicePairingRegistrationData) ProtoMessage() {} func (x *ClientPayload_DevicePairingRegistrationData) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[211] + mi := &file_binary_proto_def_proto_msgTypes[212] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21560,7 +21647,7 @@ func (x *ClientPayload_DevicePairingRegistrationData) ProtoReflect() protoreflec // Deprecated: Use ClientPayload_DevicePairingRegistrationData.ProtoReflect.Descriptor instead. func (*ClientPayload_DevicePairingRegistrationData) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147, 2} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148, 2} } func (x *ClientPayload_DevicePairingRegistrationData) GetERegid() []byte { @@ -21631,7 +21718,7 @@ type ClientPayload_DNSSource struct { func (x *ClientPayload_DNSSource) Reset() { *x = ClientPayload_DNSSource{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[212] + mi := &file_binary_proto_def_proto_msgTypes[213] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21644,7 +21731,7 @@ func (x *ClientPayload_DNSSource) String() string { func (*ClientPayload_DNSSource) ProtoMessage() {} func (x *ClientPayload_DNSSource) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[212] + mi := &file_binary_proto_def_proto_msgTypes[213] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21657,7 +21744,7 @@ func (x *ClientPayload_DNSSource) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientPayload_DNSSource.ProtoReflect.Descriptor instead. func (*ClientPayload_DNSSource) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147, 3} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148, 3} } func (x *ClientPayload_DNSSource) GetDnsMethod() ClientPayload_DNSSource_DNSResolutionMethod { @@ -21695,7 +21782,7 @@ type ClientPayload_WebInfo_WebdPayload struct { func (x *ClientPayload_WebInfo_WebdPayload) Reset() { *x = ClientPayload_WebInfo_WebdPayload{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[213] + mi := &file_binary_proto_def_proto_msgTypes[214] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21708,7 +21795,7 @@ func (x *ClientPayload_WebInfo_WebdPayload) String() string { func (*ClientPayload_WebInfo_WebdPayload) ProtoMessage() {} func (x *ClientPayload_WebInfo_WebdPayload) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[213] + mi := &file_binary_proto_def_proto_msgTypes[214] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21721,7 +21808,7 @@ func (x *ClientPayload_WebInfo_WebdPayload) ProtoReflect() protoreflect.Message // Deprecated: Use ClientPayload_WebInfo_WebdPayload.ProtoReflect.Descriptor instead. func (*ClientPayload_WebInfo_WebdPayload) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147, 0, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148, 0, 0} } func (x *ClientPayload_WebInfo_WebdPayload) GetUsesParticipantInKey() bool { @@ -21816,7 +21903,7 @@ type ClientPayload_UserAgent_AppVersion struct { func (x *ClientPayload_UserAgent_AppVersion) Reset() { *x = ClientPayload_UserAgent_AppVersion{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[214] + mi := &file_binary_proto_def_proto_msgTypes[215] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21829,7 +21916,7 @@ func (x *ClientPayload_UserAgent_AppVersion) String() string { func (*ClientPayload_UserAgent_AppVersion) ProtoMessage() {} func (x *ClientPayload_UserAgent_AppVersion) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[214] + mi := &file_binary_proto_def_proto_msgTypes[215] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21842,7 +21929,7 @@ func (x *ClientPayload_UserAgent_AppVersion) ProtoReflect() protoreflect.Message // Deprecated: Use ClientPayload_UserAgent_AppVersion.ProtoReflect.Descriptor instead. func (*ClientPayload_UserAgent_AppVersion) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{147, 1, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{148, 1, 0} } func (x *ClientPayload_UserAgent_AppVersion) GetPrimary() uint32 { @@ -21895,7 +21982,7 @@ type NoiseCertificate_Details struct { func (x *NoiseCertificate_Details) Reset() { *x = NoiseCertificate_Details{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[215] + mi := &file_binary_proto_def_proto_msgTypes[216] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21908,7 +21995,7 @@ func (x *NoiseCertificate_Details) String() string { func (*NoiseCertificate_Details) ProtoMessage() {} func (x *NoiseCertificate_Details) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[215] + mi := &file_binary_proto_def_proto_msgTypes[216] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21921,7 +22008,7 @@ func (x *NoiseCertificate_Details) ProtoReflect() protoreflect.Message { // Deprecated: Use NoiseCertificate_Details.ProtoReflect.Descriptor instead. func (*NoiseCertificate_Details) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{161, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{162, 0} } func (x *NoiseCertificate_Details) GetSerial() uint32 { @@ -21971,7 +22058,7 @@ type CertChain_NoiseCertificate struct { func (x *CertChain_NoiseCertificate) Reset() { *x = CertChain_NoiseCertificate{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[216] + mi := &file_binary_proto_def_proto_msgTypes[217] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21984,7 +22071,7 @@ func (x *CertChain_NoiseCertificate) String() string { func (*CertChain_NoiseCertificate) ProtoMessage() {} func (x *CertChain_NoiseCertificate) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[216] + mi := &file_binary_proto_def_proto_msgTypes[217] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21997,7 +22084,7 @@ func (x *CertChain_NoiseCertificate) ProtoReflect() protoreflect.Message { // Deprecated: Use CertChain_NoiseCertificate.ProtoReflect.Descriptor instead. func (*CertChain_NoiseCertificate) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{162, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{163, 0} } func (x *CertChain_NoiseCertificate) GetDetails() []byte { @@ -22029,7 +22116,7 @@ type CertChain_NoiseCertificate_Details struct { func (x *CertChain_NoiseCertificate_Details) Reset() { *x = CertChain_NoiseCertificate_Details{} if protoimpl.UnsafeEnabled { - mi := &file_binary_proto_def_proto_msgTypes[217] + mi := &file_binary_proto_def_proto_msgTypes[218] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22042,7 +22129,7 @@ func (x *CertChain_NoiseCertificate_Details) String() string { func (*CertChain_NoiseCertificate_Details) ProtoMessage() {} func (x *CertChain_NoiseCertificate_Details) ProtoReflect() protoreflect.Message { - mi := &file_binary_proto_def_proto_msgTypes[217] + mi := &file_binary_proto_def_proto_msgTypes[218] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22055,7 +22142,7 @@ func (x *CertChain_NoiseCertificate_Details) ProtoReflect() protoreflect.Message // Deprecated: Use CertChain_NoiseCertificate_Details.ProtoReflect.Descriptor instead. func (*CertChain_NoiseCertificate_Details) Descriptor() ([]byte, []int) { - return file_binary_proto_def_proto_rawDescGZIP(), []int{162, 0, 0} + return file_binary_proto_def_proto_rawDescGZIP(), []int{163, 0, 0} } func (x *CertChain_NoiseCertificate_Details) GetSerial() uint32 { @@ -22111,7 +22198,7 @@ func file_binary_proto_def_proto_rawDescGZIP() []byte { } var file_binary_proto_def_proto_enumTypes = make([]protoimpl.EnumInfo, 54) -var file_binary_proto_def_proto_msgTypes = make([]protoimpl.MessageInfo, 218) +var file_binary_proto_def_proto_msgTypes = make([]protoimpl.MessageInfo, 219) var file_binary_proto_def_proto_goTypes = []interface{}{ (PeerDataOperationRequestType)(0), // 0: proto.PeerDataOperationRequestType (KeepType)(0), // 1: proto.KeepType @@ -22286,115 +22373,116 @@ var file_binary_proto_def_proto_goTypes = []interface{}{ (*PushNameSetting)(nil), // 170: proto.PushNameSetting (*PrimaryVersionAction)(nil), // 171: proto.PrimaryVersionAction (*PrimaryFeature)(nil), // 172: proto.PrimaryFeature - (*PinAction)(nil), // 173: proto.PinAction - (*NuxAction)(nil), // 174: proto.NuxAction - (*MuteAction)(nil), // 175: proto.MuteAction - (*MarkChatAsReadAction)(nil), // 176: proto.MarkChatAsReadAction - (*LocaleSetting)(nil), // 177: proto.LocaleSetting - (*LabelEditAction)(nil), // 178: proto.LabelEditAction - (*LabelAssociationAction)(nil), // 179: proto.LabelAssociationAction - (*KeyExpiration)(nil), // 180: proto.KeyExpiration - (*DeleteMessageForMeAction)(nil), // 181: proto.DeleteMessageForMeAction - (*DeleteChatAction)(nil), // 182: proto.DeleteChatAction - (*ContactAction)(nil), // 183: proto.ContactAction - (*ClearChatAction)(nil), // 184: proto.ClearChatAction - (*ChatAssignmentOpenedStatusAction)(nil), // 185: proto.ChatAssignmentOpenedStatusAction - (*ChatAssignmentAction)(nil), // 186: proto.ChatAssignmentAction - (*ArchiveChatAction)(nil), // 187: proto.ArchiveChatAction - (*AndroidUnsupportedActions)(nil), // 188: proto.AndroidUnsupportedActions - (*AgentAction)(nil), // 189: proto.AgentAction - (*SyncActionData)(nil), // 190: proto.SyncActionData - (*RecentEmojiWeight)(nil), // 191: proto.RecentEmojiWeight - (*VerifiedNameCertificate)(nil), // 192: proto.VerifiedNameCertificate - (*LocalizedName)(nil), // 193: proto.LocalizedName - (*BizIdentityInfo)(nil), // 194: proto.BizIdentityInfo - (*BizAccountPayload)(nil), // 195: proto.BizAccountPayload - (*BizAccountLinkInfo)(nil), // 196: proto.BizAccountLinkInfo - (*HandshakeMessage)(nil), // 197: proto.HandshakeMessage - (*HandshakeServerHello)(nil), // 198: proto.HandshakeServerHello - (*HandshakeClientHello)(nil), // 199: proto.HandshakeClientHello - (*HandshakeClientFinish)(nil), // 200: proto.HandshakeClientFinish - (*ClientPayload)(nil), // 201: proto.ClientPayload - (*WebNotificationsInfo)(nil), // 202: proto.WebNotificationsInfo - (*WebMessageInfo)(nil), // 203: proto.WebMessageInfo - (*WebFeatures)(nil), // 204: proto.WebFeatures - (*UserReceipt)(nil), // 205: proto.UserReceipt - (*StatusPSA)(nil), // 206: proto.StatusPSA - (*Reaction)(nil), // 207: proto.Reaction - (*PollUpdate)(nil), // 208: proto.PollUpdate - (*PollAdditionalMetadata)(nil), // 209: proto.PollAdditionalMetadata - (*PhotoChange)(nil), // 210: proto.PhotoChange - (*PaymentInfo)(nil), // 211: proto.PaymentInfo - (*NotificationMessageInfo)(nil), // 212: proto.NotificationMessageInfo - (*MediaData)(nil), // 213: proto.MediaData - (*KeepInChat)(nil), // 214: proto.KeepInChat - (*NoiseCertificate)(nil), // 215: proto.NoiseCertificate - (*CertChain)(nil), // 216: proto.CertChain - (*DeviceProps_HistorySyncConfig)(nil), // 217: proto.DeviceProps.HistorySyncConfig - (*DeviceProps_AppVersion)(nil), // 218: proto.DeviceProps.AppVersion - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult)(nil), // 219: proto.PeerDataOperationRequestResponseMessage.PeerDataOperationResult - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse)(nil), // 220: proto.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse - (*PeerDataOperationRequestMessage_RequestUrlPreview)(nil), // 221: proto.PeerDataOperationRequestMessage.RequestUrlPreview - (*PeerDataOperationRequestMessage_RequestStickerReupload)(nil), // 222: proto.PeerDataOperationRequestMessage.RequestStickerReupload - (*ListResponseMessage_SingleSelectReply)(nil), // 223: proto.ListResponseMessage.SingleSelectReply - (*ListMessage_Section)(nil), // 224: proto.ListMessage.Section - (*ListMessage_Row)(nil), // 225: proto.ListMessage.Row - (*ListMessage_Product)(nil), // 226: proto.ListMessage.Product - (*ListMessage_ProductSection)(nil), // 227: proto.ListMessage.ProductSection - (*ListMessage_ProductListInfo)(nil), // 228: proto.ListMessage.ProductListInfo - (*ListMessage_ProductListHeaderImage)(nil), // 229: proto.ListMessage.ProductListHeaderImage - (*InteractiveResponseMessage_NativeFlowResponseMessage)(nil), // 230: proto.InteractiveResponseMessage.NativeFlowResponseMessage - (*InteractiveResponseMessage_Body)(nil), // 231: proto.InteractiveResponseMessage.Body - (*InteractiveMessage_ShopMessage)(nil), // 232: proto.InteractiveMessage.ShopMessage - (*InteractiveMessage_NativeFlowMessage)(nil), // 233: proto.InteractiveMessage.NativeFlowMessage - (*InteractiveMessage_Header)(nil), // 234: proto.InteractiveMessage.Header - (*InteractiveMessage_Footer)(nil), // 235: proto.InteractiveMessage.Footer - (*InteractiveMessage_CollectionMessage)(nil), // 236: proto.InteractiveMessage.CollectionMessage - (*InteractiveMessage_Body)(nil), // 237: proto.InteractiveMessage.Body - (*InteractiveMessage_NativeFlowMessage_NativeFlowButton)(nil), // 238: proto.InteractiveMessage.NativeFlowMessage.NativeFlowButton - (*HighlyStructuredMessage_HSMLocalizableParameter)(nil), // 239: proto.HighlyStructuredMessage.HSMLocalizableParameter - (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime)(nil), // 240: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime - (*HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency)(nil), // 241: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency - (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnixEpoch)(nil), // 242: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch - (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent)(nil), // 243: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent - (*ButtonsMessage_Button)(nil), // 244: proto.ButtonsMessage.Button - (*ButtonsMessage_Button_NativeFlowInfo)(nil), // 245: proto.ButtonsMessage.Button.NativeFlowInfo - (*ButtonsMessage_Button_ButtonText)(nil), // 246: proto.ButtonsMessage.Button.ButtonText - (*HydratedTemplateButton_HydratedURLButton)(nil), // 247: proto.HydratedTemplateButton.HydratedURLButton - (*HydratedTemplateButton_HydratedQuickReplyButton)(nil), // 248: proto.HydratedTemplateButton.HydratedQuickReplyButton - (*HydratedTemplateButton_HydratedCallButton)(nil), // 249: proto.HydratedTemplateButton.HydratedCallButton - (*ContextInfo_ExternalAdReplyInfo)(nil), // 250: proto.ContextInfo.ExternalAdReplyInfo - (*ContextInfo_AdReplyInfo)(nil), // 251: proto.ContextInfo.AdReplyInfo - (*TemplateButton_URLButton)(nil), // 252: proto.TemplateButton.URLButton - (*TemplateButton_QuickReplyButton)(nil), // 253: proto.TemplateButton.QuickReplyButton - (*TemplateButton_CallButton)(nil), // 254: proto.TemplateButton.CallButton - (*PaymentBackground_MediaData)(nil), // 255: proto.PaymentBackground.MediaData - (*TemplateMessage_HydratedFourRowTemplate)(nil), // 256: proto.TemplateMessage.HydratedFourRowTemplate - (*TemplateMessage_FourRowTemplate)(nil), // 257: proto.TemplateMessage.FourRowTemplate - (*ProductMessage_ProductSnapshot)(nil), // 258: proto.ProductMessage.ProductSnapshot - (*ProductMessage_CatalogSnapshot)(nil), // 259: proto.ProductMessage.CatalogSnapshot - (*PollCreationMessage_Option)(nil), // 260: proto.PollCreationMessage.Option - (*MsgOpaqueData_PollOption)(nil), // 261: proto.MsgOpaqueData.PollOption - (*VerifiedNameCertificate_Details)(nil), // 262: proto.VerifiedNameCertificate.Details - (*ClientPayload_WebInfo)(nil), // 263: proto.ClientPayload.WebInfo - (*ClientPayload_UserAgent)(nil), // 264: proto.ClientPayload.UserAgent - (*ClientPayload_DevicePairingRegistrationData)(nil), // 265: proto.ClientPayload.DevicePairingRegistrationData - (*ClientPayload_DNSSource)(nil), // 266: proto.ClientPayload.DNSSource - (*ClientPayload_WebInfo_WebdPayload)(nil), // 267: proto.ClientPayload.WebInfo.WebdPayload - (*ClientPayload_UserAgent_AppVersion)(nil), // 268: proto.ClientPayload.UserAgent.AppVersion - (*NoiseCertificate_Details)(nil), // 269: proto.NoiseCertificate.Details - (*CertChain_NoiseCertificate)(nil), // 270: proto.CertChain.NoiseCertificate - (*CertChain_NoiseCertificate_Details)(nil), // 271: proto.CertChain.NoiseCertificate.Details + (*PnForLidChatAction)(nil), // 173: proto.PnForLidChatAction + (*PinAction)(nil), // 174: proto.PinAction + (*NuxAction)(nil), // 175: proto.NuxAction + (*MuteAction)(nil), // 176: proto.MuteAction + (*MarkChatAsReadAction)(nil), // 177: proto.MarkChatAsReadAction + (*LocaleSetting)(nil), // 178: proto.LocaleSetting + (*LabelEditAction)(nil), // 179: proto.LabelEditAction + (*LabelAssociationAction)(nil), // 180: proto.LabelAssociationAction + (*KeyExpiration)(nil), // 181: proto.KeyExpiration + (*DeleteMessageForMeAction)(nil), // 182: proto.DeleteMessageForMeAction + (*DeleteChatAction)(nil), // 183: proto.DeleteChatAction + (*ContactAction)(nil), // 184: proto.ContactAction + (*ClearChatAction)(nil), // 185: proto.ClearChatAction + (*ChatAssignmentOpenedStatusAction)(nil), // 186: proto.ChatAssignmentOpenedStatusAction + (*ChatAssignmentAction)(nil), // 187: proto.ChatAssignmentAction + (*ArchiveChatAction)(nil), // 188: proto.ArchiveChatAction + (*AndroidUnsupportedActions)(nil), // 189: proto.AndroidUnsupportedActions + (*AgentAction)(nil), // 190: proto.AgentAction + (*SyncActionData)(nil), // 191: proto.SyncActionData + (*RecentEmojiWeight)(nil), // 192: proto.RecentEmojiWeight + (*VerifiedNameCertificate)(nil), // 193: proto.VerifiedNameCertificate + (*LocalizedName)(nil), // 194: proto.LocalizedName + (*BizIdentityInfo)(nil), // 195: proto.BizIdentityInfo + (*BizAccountPayload)(nil), // 196: proto.BizAccountPayload + (*BizAccountLinkInfo)(nil), // 197: proto.BizAccountLinkInfo + (*HandshakeMessage)(nil), // 198: proto.HandshakeMessage + (*HandshakeServerHello)(nil), // 199: proto.HandshakeServerHello + (*HandshakeClientHello)(nil), // 200: proto.HandshakeClientHello + (*HandshakeClientFinish)(nil), // 201: proto.HandshakeClientFinish + (*ClientPayload)(nil), // 202: proto.ClientPayload + (*WebNotificationsInfo)(nil), // 203: proto.WebNotificationsInfo + (*WebMessageInfo)(nil), // 204: proto.WebMessageInfo + (*WebFeatures)(nil), // 205: proto.WebFeatures + (*UserReceipt)(nil), // 206: proto.UserReceipt + (*StatusPSA)(nil), // 207: proto.StatusPSA + (*Reaction)(nil), // 208: proto.Reaction + (*PollUpdate)(nil), // 209: proto.PollUpdate + (*PollAdditionalMetadata)(nil), // 210: proto.PollAdditionalMetadata + (*PhotoChange)(nil), // 211: proto.PhotoChange + (*PaymentInfo)(nil), // 212: proto.PaymentInfo + (*NotificationMessageInfo)(nil), // 213: proto.NotificationMessageInfo + (*MediaData)(nil), // 214: proto.MediaData + (*KeepInChat)(nil), // 215: proto.KeepInChat + (*NoiseCertificate)(nil), // 216: proto.NoiseCertificate + (*CertChain)(nil), // 217: proto.CertChain + (*DeviceProps_HistorySyncConfig)(nil), // 218: proto.DeviceProps.HistorySyncConfig + (*DeviceProps_AppVersion)(nil), // 219: proto.DeviceProps.AppVersion + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult)(nil), // 220: proto.PeerDataOperationRequestResponseMessage.PeerDataOperationResult + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse)(nil), // 221: proto.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse + (*PeerDataOperationRequestMessage_RequestUrlPreview)(nil), // 222: proto.PeerDataOperationRequestMessage.RequestUrlPreview + (*PeerDataOperationRequestMessage_RequestStickerReupload)(nil), // 223: proto.PeerDataOperationRequestMessage.RequestStickerReupload + (*ListResponseMessage_SingleSelectReply)(nil), // 224: proto.ListResponseMessage.SingleSelectReply + (*ListMessage_Section)(nil), // 225: proto.ListMessage.Section + (*ListMessage_Row)(nil), // 226: proto.ListMessage.Row + (*ListMessage_Product)(nil), // 227: proto.ListMessage.Product + (*ListMessage_ProductSection)(nil), // 228: proto.ListMessage.ProductSection + (*ListMessage_ProductListInfo)(nil), // 229: proto.ListMessage.ProductListInfo + (*ListMessage_ProductListHeaderImage)(nil), // 230: proto.ListMessage.ProductListHeaderImage + (*InteractiveResponseMessage_NativeFlowResponseMessage)(nil), // 231: proto.InteractiveResponseMessage.NativeFlowResponseMessage + (*InteractiveResponseMessage_Body)(nil), // 232: proto.InteractiveResponseMessage.Body + (*InteractiveMessage_ShopMessage)(nil), // 233: proto.InteractiveMessage.ShopMessage + (*InteractiveMessage_NativeFlowMessage)(nil), // 234: proto.InteractiveMessage.NativeFlowMessage + (*InteractiveMessage_Header)(nil), // 235: proto.InteractiveMessage.Header + (*InteractiveMessage_Footer)(nil), // 236: proto.InteractiveMessage.Footer + (*InteractiveMessage_CollectionMessage)(nil), // 237: proto.InteractiveMessage.CollectionMessage + (*InteractiveMessage_Body)(nil), // 238: proto.InteractiveMessage.Body + (*InteractiveMessage_NativeFlowMessage_NativeFlowButton)(nil), // 239: proto.InteractiveMessage.NativeFlowMessage.NativeFlowButton + (*HighlyStructuredMessage_HSMLocalizableParameter)(nil), // 240: proto.HighlyStructuredMessage.HSMLocalizableParameter + (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime)(nil), // 241: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime + (*HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency)(nil), // 242: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency + (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnixEpoch)(nil), // 243: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch + (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent)(nil), // 244: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent + (*ButtonsMessage_Button)(nil), // 245: proto.ButtonsMessage.Button + (*ButtonsMessage_Button_NativeFlowInfo)(nil), // 246: proto.ButtonsMessage.Button.NativeFlowInfo + (*ButtonsMessage_Button_ButtonText)(nil), // 247: proto.ButtonsMessage.Button.ButtonText + (*HydratedTemplateButton_HydratedURLButton)(nil), // 248: proto.HydratedTemplateButton.HydratedURLButton + (*HydratedTemplateButton_HydratedQuickReplyButton)(nil), // 249: proto.HydratedTemplateButton.HydratedQuickReplyButton + (*HydratedTemplateButton_HydratedCallButton)(nil), // 250: proto.HydratedTemplateButton.HydratedCallButton + (*ContextInfo_ExternalAdReplyInfo)(nil), // 251: proto.ContextInfo.ExternalAdReplyInfo + (*ContextInfo_AdReplyInfo)(nil), // 252: proto.ContextInfo.AdReplyInfo + (*TemplateButton_URLButton)(nil), // 253: proto.TemplateButton.URLButton + (*TemplateButton_QuickReplyButton)(nil), // 254: proto.TemplateButton.QuickReplyButton + (*TemplateButton_CallButton)(nil), // 255: proto.TemplateButton.CallButton + (*PaymentBackground_MediaData)(nil), // 256: proto.PaymentBackground.MediaData + (*TemplateMessage_HydratedFourRowTemplate)(nil), // 257: proto.TemplateMessage.HydratedFourRowTemplate + (*TemplateMessage_FourRowTemplate)(nil), // 258: proto.TemplateMessage.FourRowTemplate + (*ProductMessage_ProductSnapshot)(nil), // 259: proto.ProductMessage.ProductSnapshot + (*ProductMessage_CatalogSnapshot)(nil), // 260: proto.ProductMessage.CatalogSnapshot + (*PollCreationMessage_Option)(nil), // 261: proto.PollCreationMessage.Option + (*MsgOpaqueData_PollOption)(nil), // 262: proto.MsgOpaqueData.PollOption + (*VerifiedNameCertificate_Details)(nil), // 263: proto.VerifiedNameCertificate.Details + (*ClientPayload_WebInfo)(nil), // 264: proto.ClientPayload.WebInfo + (*ClientPayload_UserAgent)(nil), // 265: proto.ClientPayload.UserAgent + (*ClientPayload_DevicePairingRegistrationData)(nil), // 266: proto.ClientPayload.DevicePairingRegistrationData + (*ClientPayload_DNSSource)(nil), // 267: proto.ClientPayload.DNSSource + (*ClientPayload_WebInfo_WebdPayload)(nil), // 268: proto.ClientPayload.WebInfo.WebdPayload + (*ClientPayload_UserAgent_AppVersion)(nil), // 269: proto.ClientPayload.UserAgent.AppVersion + (*NoiseCertificate_Details)(nil), // 270: proto.NoiseCertificate.Details + (*CertChain_NoiseCertificate)(nil), // 271: proto.CertChain.NoiseCertificate + (*CertChain_NoiseCertificate_Details)(nil), // 272: proto.CertChain.NoiseCertificate.Details } var file_binary_proto_def_proto_depIdxs = []int32{ - 218, // 0: proto.DeviceProps.version:type_name -> proto.DeviceProps.AppVersion + 219, // 0: proto.DeviceProps.version:type_name -> proto.DeviceProps.AppVersion 3, // 1: proto.DeviceProps.platformType:type_name -> proto.DeviceProps.PlatformType - 217, // 2: proto.DeviceProps.historySyncConfig:type_name -> proto.DeviceProps.HistorySyncConfig + 218, // 2: proto.DeviceProps.historySyncConfig:type_name -> proto.DeviceProps.HistorySyncConfig 0, // 3: proto.PeerDataOperationRequestResponseMessage.peerDataOperationRequestType:type_name -> proto.PeerDataOperationRequestType - 219, // 4: proto.PeerDataOperationRequestResponseMessage.peerDataOperationResult:type_name -> proto.PeerDataOperationRequestResponseMessage.PeerDataOperationResult + 220, // 4: proto.PeerDataOperationRequestResponseMessage.peerDataOperationResult:type_name -> proto.PeerDataOperationRequestResponseMessage.PeerDataOperationResult 0, // 5: proto.PeerDataOperationRequestMessage.peerDataOperationRequestType:type_name -> proto.PeerDataOperationRequestType - 222, // 6: proto.PeerDataOperationRequestMessage.requestStickerReupload:type_name -> proto.PeerDataOperationRequestMessage.RequestStickerReupload - 221, // 7: proto.PeerDataOperationRequestMessage.requestUrlPreview:type_name -> proto.PeerDataOperationRequestMessage.RequestUrlPreview + 223, // 6: proto.PeerDataOperationRequestMessage.requestStickerReupload:type_name -> proto.PeerDataOperationRequestMessage.RequestStickerReupload + 222, // 7: proto.PeerDataOperationRequestMessage.requestUrlPreview:type_name -> proto.PeerDataOperationRequestMessage.RequestUrlPreview 4, // 8: proto.PaymentInviteMessage.serviceType:type_name -> proto.PaymentInviteMessage.ServiceType 6, // 9: proto.OrderMessage.status:type_name -> proto.OrderMessage.OrderStatus 5, // 10: proto.OrderMessage.surface:type_name -> proto.OrderMessage.OrderSurface @@ -22402,29 +22490,29 @@ var file_binary_proto_def_proto_depIdxs = []int32{ 103, // 12: proto.LocationMessage.contextInfo:type_name -> proto.ContextInfo 103, // 13: proto.LiveLocationMessage.contextInfo:type_name -> proto.ContextInfo 7, // 14: proto.ListResponseMessage.listType:type_name -> proto.ListResponseMessage.ListType - 223, // 15: proto.ListResponseMessage.singleSelectReply:type_name -> proto.ListResponseMessage.SingleSelectReply + 224, // 15: proto.ListResponseMessage.singleSelectReply:type_name -> proto.ListResponseMessage.SingleSelectReply 103, // 16: proto.ListResponseMessage.contextInfo:type_name -> proto.ContextInfo 8, // 17: proto.ListMessage.listType:type_name -> proto.ListMessage.ListType - 224, // 18: proto.ListMessage.sections:type_name -> proto.ListMessage.Section - 228, // 19: proto.ListMessage.productListInfo:type_name -> proto.ListMessage.ProductListInfo + 225, // 18: proto.ListMessage.sections:type_name -> proto.ListMessage.Section + 229, // 19: proto.ListMessage.productListInfo:type_name -> proto.ListMessage.ProductListInfo 103, // 20: proto.ListMessage.contextInfo:type_name -> proto.ContextInfo 145, // 21: proto.KeepInChatMessage.key:type_name -> proto.MessageKey 1, // 22: proto.KeepInChatMessage.keepType:type_name -> proto.KeepType 9, // 23: proto.InvoiceMessage.attachmentType:type_name -> proto.InvoiceMessage.AttachmentType - 231, // 24: proto.InteractiveResponseMessage.body:type_name -> proto.InteractiveResponseMessage.Body + 232, // 24: proto.InteractiveResponseMessage.body:type_name -> proto.InteractiveResponseMessage.Body 103, // 25: proto.InteractiveResponseMessage.contextInfo:type_name -> proto.ContextInfo - 230, // 26: proto.InteractiveResponseMessage.nativeFlowResponseMessage:type_name -> proto.InteractiveResponseMessage.NativeFlowResponseMessage - 234, // 27: proto.InteractiveMessage.header:type_name -> proto.InteractiveMessage.Header - 237, // 28: proto.InteractiveMessage.body:type_name -> proto.InteractiveMessage.Body - 235, // 29: proto.InteractiveMessage.footer:type_name -> proto.InteractiveMessage.Footer + 231, // 26: proto.InteractiveResponseMessage.nativeFlowResponseMessage:type_name -> proto.InteractiveResponseMessage.NativeFlowResponseMessage + 235, // 27: proto.InteractiveMessage.header:type_name -> proto.InteractiveMessage.Header + 238, // 28: proto.InteractiveMessage.body:type_name -> proto.InteractiveMessage.Body + 236, // 29: proto.InteractiveMessage.footer:type_name -> proto.InteractiveMessage.Footer 103, // 30: proto.InteractiveMessage.contextInfo:type_name -> proto.ContextInfo - 232, // 31: proto.InteractiveMessage.shopStorefrontMessage:type_name -> proto.InteractiveMessage.ShopMessage - 236, // 32: proto.InteractiveMessage.collectionMessage:type_name -> proto.InteractiveMessage.CollectionMessage - 233, // 33: proto.InteractiveMessage.nativeFlowMessage:type_name -> proto.InteractiveMessage.NativeFlowMessage + 233, // 31: proto.InteractiveMessage.shopStorefrontMessage:type_name -> proto.InteractiveMessage.ShopMessage + 237, // 32: proto.InteractiveMessage.collectionMessage:type_name -> proto.InteractiveMessage.CollectionMessage + 234, // 33: proto.InteractiveMessage.nativeFlowMessage:type_name -> proto.InteractiveMessage.NativeFlowMessage 99, // 34: proto.ImageMessage.interactiveAnnotations:type_name -> proto.InteractiveAnnotation 103, // 35: proto.ImageMessage.contextInfo:type_name -> proto.ContextInfo 11, // 36: proto.HistorySyncNotification.syncType:type_name -> proto.HistorySyncNotification.HistorySyncType - 239, // 37: proto.HighlyStructuredMessage.localizableParams:type_name -> proto.HighlyStructuredMessage.HSMLocalizableParameter + 240, // 37: proto.HighlyStructuredMessage.localizableParams:type_name -> proto.HighlyStructuredMessage.HSMLocalizableParameter 112, // 38: proto.HighlyStructuredMessage.hydratedHsm:type_name -> proto.TemplateMessage 103, // 39: proto.GroupInviteMessage.contextInfo:type_name -> proto.ContextInfo 14, // 40: proto.GroupInviteMessage.groupType:type_name -> proto.GroupInviteMessage.GroupType @@ -22445,7 +22533,7 @@ var file_binary_proto_def_proto_depIdxs = []int32{ 103, // 55: proto.ButtonsResponseMessage.contextInfo:type_name -> proto.ContextInfo 18, // 56: proto.ButtonsResponseMessage.type:type_name -> proto.ButtonsResponseMessage.Type 103, // 57: proto.ButtonsMessage.contextInfo:type_name -> proto.ContextInfo - 244, // 58: proto.ButtonsMessage.buttons:type_name -> proto.ButtonsMessage.Button + 245, // 58: proto.ButtonsMessage.buttons:type_name -> proto.ButtonsMessage.Button 19, // 59: proto.ButtonsMessage.headerType:type_name -> proto.ButtonsMessage.HeaderType 80, // 60: proto.ButtonsMessage.documentMessage:type_name -> proto.DocumentMessage 73, // 61: proto.ButtonsMessage.imageMessage:type_name -> proto.ImageMessage @@ -22459,20 +22547,20 @@ var file_binary_proto_def_proto_depIdxs = []int32{ 95, // 69: proto.AppStateSyncKeyData.fingerprint:type_name -> proto.AppStateSyncKeyFingerprint 106, // 70: proto.InteractiveAnnotation.polygonVertices:type_name -> proto.Point 98, // 71: proto.InteractiveAnnotation.location:type_name -> proto.Location - 248, // 72: proto.HydratedTemplateButton.quickReplyButton:type_name -> proto.HydratedTemplateButton.HydratedQuickReplyButton - 247, // 73: proto.HydratedTemplateButton.urlButton:type_name -> proto.HydratedTemplateButton.HydratedURLButton - 249, // 74: proto.HydratedTemplateButton.callButton:type_name -> proto.HydratedTemplateButton.HydratedCallButton + 249, // 72: proto.HydratedTemplateButton.quickReplyButton:type_name -> proto.HydratedTemplateButton.HydratedQuickReplyButton + 248, // 73: proto.HydratedTemplateButton.urlButton:type_name -> proto.HydratedTemplateButton.HydratedURLButton + 250, // 74: proto.HydratedTemplateButton.callButton:type_name -> proto.HydratedTemplateButton.HydratedCallButton 21, // 75: proto.DisappearingMode.initiator:type_name -> proto.DisappearingMode.Initiator 109, // 76: proto.ContextInfo.quotedMessage:type_name -> proto.Message - 251, // 77: proto.ContextInfo.quotedAd:type_name -> proto.ContextInfo.AdReplyInfo + 252, // 77: proto.ContextInfo.quotedAd:type_name -> proto.ContextInfo.AdReplyInfo 145, // 78: proto.ContextInfo.placeholderKey:type_name -> proto.MessageKey - 250, // 79: proto.ContextInfo.externalAdReply:type_name -> proto.ContextInfo.ExternalAdReplyInfo + 251, // 79: proto.ContextInfo.externalAdReply:type_name -> proto.ContextInfo.ExternalAdReplyInfo 101, // 80: proto.ContextInfo.disappearingMode:type_name -> proto.DisappearingMode 104, // 81: proto.ContextInfo.actionLink:type_name -> proto.ActionLink - 253, // 82: proto.TemplateButton.quickReplyButton:type_name -> proto.TemplateButton.QuickReplyButton - 252, // 83: proto.TemplateButton.urlButton:type_name -> proto.TemplateButton.URLButton - 254, // 84: proto.TemplateButton.callButton:type_name -> proto.TemplateButton.CallButton - 255, // 85: proto.PaymentBackground.mediaData:type_name -> proto.PaymentBackground.MediaData + 254, // 82: proto.TemplateButton.quickReplyButton:type_name -> proto.TemplateButton.QuickReplyButton + 253, // 83: proto.TemplateButton.urlButton:type_name -> proto.TemplateButton.URLButton + 255, // 84: proto.TemplateButton.callButton:type_name -> proto.TemplateButton.CallButton + 256, // 85: proto.PaymentBackground.mediaData:type_name -> proto.PaymentBackground.MediaData 24, // 86: proto.PaymentBackground.type:type_name -> proto.PaymentBackground.Type 116, // 87: proto.Message.senderKeyDistributionMessage:type_name -> proto.SenderKeyDistributionMessage 73, // 88: proto.Message.imageMessage:type_name -> proto.ImageMessage @@ -22522,277 +22610,279 @@ var file_binary_proto_def_proto_depIdxs = []int32{ 79, // 132: proto.Message.encReactionMessage:type_name -> proto.EncReactionMessage 77, // 133: proto.Message.editedMessage:type_name -> proto.FutureProofMessage 77, // 134: proto.Message.viewOnceMessageV2Extension:type_name -> proto.FutureProofMessage - 102, // 135: proto.MessageContextInfo.deviceListMetadata:type_name -> proto.DeviceListMetadata - 99, // 136: proto.VideoMessage.interactiveAnnotations:type_name -> proto.InteractiveAnnotation - 103, // 137: proto.VideoMessage.contextInfo:type_name -> proto.ContextInfo - 25, // 138: proto.VideoMessage.gifAttribution:type_name -> proto.VideoMessage.Attribution - 103, // 139: proto.TemplateMessage.contextInfo:type_name -> proto.ContextInfo - 256, // 140: proto.TemplateMessage.hydratedTemplate:type_name -> proto.TemplateMessage.HydratedFourRowTemplate - 257, // 141: proto.TemplateMessage.fourRowTemplate:type_name -> proto.TemplateMessage.FourRowTemplate - 256, // 142: proto.TemplateMessage.hydratedFourRowTemplate:type_name -> proto.TemplateMessage.HydratedFourRowTemplate - 71, // 143: proto.TemplateMessage.interactiveMessageTemplate:type_name -> proto.InteractiveMessage - 103, // 144: proto.TemplateButtonReplyMessage.contextInfo:type_name -> proto.ContextInfo - 103, // 145: proto.StickerMessage.contextInfo:type_name -> proto.ContextInfo - 109, // 146: proto.SendPaymentMessage.noteMessage:type_name -> proto.Message - 145, // 147: proto.SendPaymentMessage.requestMessageKey:type_name -> proto.MessageKey - 107, // 148: proto.SendPaymentMessage.background:type_name -> proto.PaymentBackground - 103, // 149: proto.RequestPhoneNumberMessage.contextInfo:type_name -> proto.ContextInfo - 109, // 150: proto.RequestPaymentMessage.noteMessage:type_name -> proto.Message - 108, // 151: proto.RequestPaymentMessage.amount:type_name -> proto.Money - 107, // 152: proto.RequestPaymentMessage.background:type_name -> proto.PaymentBackground - 145, // 153: proto.ReactionMessage.key:type_name -> proto.MessageKey - 145, // 154: proto.ProtocolMessage.key:type_name -> proto.MessageKey - 26, // 155: proto.ProtocolMessage.type:type_name -> proto.ProtocolMessage.Type - 74, // 156: proto.ProtocolMessage.historySyncNotification:type_name -> proto.HistorySyncNotification - 92, // 157: proto.ProtocolMessage.appStateSyncKeyShare:type_name -> proto.AppStateSyncKeyShare - 93, // 158: proto.ProtocolMessage.appStateSyncKeyRequest:type_name -> proto.AppStateSyncKeyRequest - 72, // 159: proto.ProtocolMessage.initialSecurityNotificationSettingSync:type_name -> proto.InitialSecurityNotificationSettingSync - 97, // 160: proto.ProtocolMessage.appStateFatalExceptionNotification:type_name -> proto.AppStateFatalExceptionNotification - 101, // 161: proto.ProtocolMessage.disappearingMode:type_name -> proto.DisappearingMode - 109, // 162: proto.ProtocolMessage.editedMessage:type_name -> proto.Message - 61, // 163: proto.ProtocolMessage.peerDataOperationRequestMessage:type_name -> proto.PeerDataOperationRequestMessage - 60, // 164: proto.ProtocolMessage.peerDataOperationRequestResponseMessage:type_name -> proto.PeerDataOperationRequestResponseMessage - 258, // 165: proto.ProductMessage.product:type_name -> proto.ProductMessage.ProductSnapshot - 259, // 166: proto.ProductMessage.catalog:type_name -> proto.ProductMessage.CatalogSnapshot - 103, // 167: proto.ProductMessage.contextInfo:type_name -> proto.ContextInfo - 145, // 168: proto.PollUpdateMessage.pollCreationMessageKey:type_name -> proto.MessageKey - 126, // 169: proto.PollUpdateMessage.vote:type_name -> proto.PollEncValue - 125, // 170: proto.PollUpdateMessage.metadata:type_name -> proto.PollUpdateMessageMetadata - 260, // 171: proto.PollCreationMessage.options:type_name -> proto.PollCreationMessage.Option - 103, // 172: proto.PollCreationMessage.contextInfo:type_name -> proto.ContextInfo - 133, // 173: proto.PastParticipants.pastParticipants:type_name -> proto.PastParticipant - 27, // 174: proto.PastParticipant.leaveReason:type_name -> proto.PastParticipant.LeaveReason - 28, // 175: proto.HistorySync.syncType:type_name -> proto.HistorySync.HistorySyncType - 138, // 176: proto.HistorySync.conversations:type_name -> proto.Conversation - 203, // 177: proto.HistorySync.statusV3Messages:type_name -> proto.WebMessageInfo - 131, // 178: proto.HistorySync.pushnames:type_name -> proto.Pushname - 137, // 179: proto.HistorySync.globalSettings:type_name -> proto.GlobalSettings - 130, // 180: proto.HistorySync.recentStickers:type_name -> proto.StickerMetadata - 132, // 181: proto.HistorySync.pastParticipants:type_name -> proto.PastParticipants - 203, // 182: proto.HistorySyncMsg.message:type_name -> proto.WebMessageInfo - 29, // 183: proto.GroupParticipant.rank:type_name -> proto.GroupParticipant.Rank - 129, // 184: proto.GlobalSettings.lightThemeWallpaper:type_name -> proto.WallpaperSettings - 2, // 185: proto.GlobalSettings.mediaVisibility:type_name -> proto.MediaVisibility - 129, // 186: proto.GlobalSettings.darkThemeWallpaper:type_name -> proto.WallpaperSettings - 140, // 187: proto.GlobalSettings.autoDownloadWiFi:type_name -> proto.AutoDownloadSettings - 140, // 188: proto.GlobalSettings.autoDownloadCellular:type_name -> proto.AutoDownloadSettings - 140, // 189: proto.GlobalSettings.autoDownloadRoaming:type_name -> proto.AutoDownloadSettings - 139, // 190: proto.GlobalSettings.avatarUserSettings:type_name -> proto.AvatarUserSettings - 135, // 191: proto.Conversation.messages:type_name -> proto.HistorySyncMsg - 30, // 192: proto.Conversation.endOfHistoryTransferType:type_name -> proto.Conversation.EndOfHistoryTransferType - 101, // 193: proto.Conversation.disappearingMode:type_name -> proto.DisappearingMode - 136, // 194: proto.Conversation.participant:type_name -> proto.GroupParticipant - 129, // 195: proto.Conversation.wallpaper:type_name -> proto.WallpaperSettings - 2, // 196: proto.Conversation.mediaVisibility:type_name -> proto.MediaVisibility - 142, // 197: proto.MsgRowOpaqueData.currentMsg:type_name -> proto.MsgOpaqueData - 142, // 198: proto.MsgRowOpaqueData.quotedMsg:type_name -> proto.MsgOpaqueData - 261, // 199: proto.MsgOpaqueData.pollOptions:type_name -> proto.MsgOpaqueData.PollOption - 126, // 200: proto.MsgOpaqueData.encPollVote:type_name -> proto.PollEncValue - 31, // 201: proto.MediaRetryNotification.result:type_name -> proto.MediaRetryNotification.ResultType - 146, // 202: proto.SyncdSnapshot.version:type_name -> proto.SyncdVersion - 149, // 203: proto.SyncdSnapshot.records:type_name -> proto.SyncdRecord - 154, // 204: proto.SyncdSnapshot.keyId:type_name -> proto.KeyId - 153, // 205: proto.SyncdRecord.index:type_name -> proto.SyncdIndex - 147, // 206: proto.SyncdRecord.value:type_name -> proto.SyncdValue - 154, // 207: proto.SyncdRecord.keyId:type_name -> proto.KeyId - 146, // 208: proto.SyncdPatch.version:type_name -> proto.SyncdVersion - 152, // 209: proto.SyncdPatch.mutations:type_name -> proto.SyncdMutation - 155, // 210: proto.SyncdPatch.externalMutations:type_name -> proto.ExternalBlobReference - 154, // 211: proto.SyncdPatch.keyId:type_name -> proto.KeyId - 156, // 212: proto.SyncdPatch.exitCode:type_name -> proto.ExitCode - 152, // 213: proto.SyncdMutations.mutations:type_name -> proto.SyncdMutation - 32, // 214: proto.SyncdMutation.operation:type_name -> proto.SyncdMutation.SyncdOperation - 149, // 215: proto.SyncdMutation.record:type_name -> proto.SyncdRecord - 165, // 216: proto.SyncActionValue.starAction:type_name -> proto.StarAction - 183, // 217: proto.SyncActionValue.contactAction:type_name -> proto.ContactAction - 175, // 218: proto.SyncActionValue.muteAction:type_name -> proto.MuteAction - 173, // 219: proto.SyncActionValue.pinAction:type_name -> proto.PinAction - 166, // 220: proto.SyncActionValue.securityNotificationSetting:type_name -> proto.SecurityNotificationSetting - 170, // 221: proto.SyncActionValue.pushNameSetting:type_name -> proto.PushNameSetting - 169, // 222: proto.SyncActionValue.quickReplyAction:type_name -> proto.QuickReplyAction - 168, // 223: proto.SyncActionValue.recentEmojiWeightsAction:type_name -> proto.RecentEmojiWeightsAction - 178, // 224: proto.SyncActionValue.labelEditAction:type_name -> proto.LabelEditAction - 179, // 225: proto.SyncActionValue.labelAssociationAction:type_name -> proto.LabelAssociationAction - 177, // 226: proto.SyncActionValue.localeSetting:type_name -> proto.LocaleSetting - 187, // 227: proto.SyncActionValue.archiveChatAction:type_name -> proto.ArchiveChatAction - 181, // 228: proto.SyncActionValue.deleteMessageForMeAction:type_name -> proto.DeleteMessageForMeAction - 180, // 229: proto.SyncActionValue.keyExpiration:type_name -> proto.KeyExpiration - 176, // 230: proto.SyncActionValue.markChatAsReadAction:type_name -> proto.MarkChatAsReadAction - 184, // 231: proto.SyncActionValue.clearChatAction:type_name -> proto.ClearChatAction - 182, // 232: proto.SyncActionValue.deleteChatAction:type_name -> proto.DeleteChatAction - 159, // 233: proto.SyncActionValue.unarchiveChatsSetting:type_name -> proto.UnarchiveChatsSetting - 172, // 234: proto.SyncActionValue.primaryFeature:type_name -> proto.PrimaryFeature - 188, // 235: proto.SyncActionValue.androidUnsupportedActions:type_name -> proto.AndroidUnsupportedActions - 189, // 236: proto.SyncActionValue.agentAction:type_name -> proto.AgentAction - 163, // 237: proto.SyncActionValue.subscriptionAction:type_name -> proto.SubscriptionAction - 158, // 238: proto.SyncActionValue.userStatusMuteAction:type_name -> proto.UserStatusMuteAction - 160, // 239: proto.SyncActionValue.timeFormatAction:type_name -> proto.TimeFormatAction - 174, // 240: proto.SyncActionValue.nuxAction:type_name -> proto.NuxAction - 171, // 241: proto.SyncActionValue.primaryVersionAction:type_name -> proto.PrimaryVersionAction - 164, // 242: proto.SyncActionValue.stickerAction:type_name -> proto.StickerAction - 167, // 243: proto.SyncActionValue.removeRecentStickerAction:type_name -> proto.RemoveRecentStickerAction - 186, // 244: proto.SyncActionValue.chatAssignment:type_name -> proto.ChatAssignmentAction - 185, // 245: proto.SyncActionValue.chatAssignmentOpenedStatus:type_name -> proto.ChatAssignmentOpenedStatusAction - 145, // 246: proto.SyncActionMessage.key:type_name -> proto.MessageKey - 161, // 247: proto.SyncActionMessageRange.messages:type_name -> proto.SyncActionMessage - 191, // 248: proto.RecentEmojiWeightsAction.weights:type_name -> proto.RecentEmojiWeight - 162, // 249: proto.MarkChatAsReadAction.messageRange:type_name -> proto.SyncActionMessageRange - 162, // 250: proto.DeleteChatAction.messageRange:type_name -> proto.SyncActionMessageRange - 162, // 251: proto.ClearChatAction.messageRange:type_name -> proto.SyncActionMessageRange - 162, // 252: proto.ArchiveChatAction.messageRange:type_name -> proto.SyncActionMessageRange - 157, // 253: proto.SyncActionData.value:type_name -> proto.SyncActionValue - 33, // 254: proto.BizIdentityInfo.vlevel:type_name -> proto.BizIdentityInfo.VerifiedLevelValue - 192, // 255: proto.BizIdentityInfo.vnameCert:type_name -> proto.VerifiedNameCertificate - 34, // 256: proto.BizIdentityInfo.hostStorage:type_name -> proto.BizIdentityInfo.HostStorageType - 35, // 257: proto.BizIdentityInfo.actualActors:type_name -> proto.BizIdentityInfo.ActualActorsType - 192, // 258: proto.BizAccountPayload.vnameCert:type_name -> proto.VerifiedNameCertificate - 36, // 259: proto.BizAccountLinkInfo.hostStorage:type_name -> proto.BizAccountLinkInfo.HostStorageType - 37, // 260: proto.BizAccountLinkInfo.accountType:type_name -> proto.BizAccountLinkInfo.AccountType - 199, // 261: proto.HandshakeMessage.clientHello:type_name -> proto.HandshakeClientHello - 198, // 262: proto.HandshakeMessage.serverHello:type_name -> proto.HandshakeServerHello - 200, // 263: proto.HandshakeMessage.clientFinish:type_name -> proto.HandshakeClientFinish - 264, // 264: proto.ClientPayload.userAgent:type_name -> proto.ClientPayload.UserAgent - 263, // 265: proto.ClientPayload.webInfo:type_name -> proto.ClientPayload.WebInfo - 40, // 266: proto.ClientPayload.connectType:type_name -> proto.ClientPayload.ConnectType - 41, // 267: proto.ClientPayload.connectReason:type_name -> proto.ClientPayload.ConnectReason - 266, // 268: proto.ClientPayload.dnsSource:type_name -> proto.ClientPayload.DNSSource - 265, // 269: proto.ClientPayload.devicePairingData:type_name -> proto.ClientPayload.DevicePairingRegistrationData - 38, // 270: proto.ClientPayload.product:type_name -> proto.ClientPayload.Product - 39, // 271: proto.ClientPayload.iosAppExtension:type_name -> proto.ClientPayload.IOSAppExtension - 42, // 272: proto.ClientPayload.bizMarketSegment:type_name -> proto.ClientPayload.BizMarketSegment - 203, // 273: proto.WebNotificationsInfo.notifyMessages:type_name -> proto.WebMessageInfo - 145, // 274: proto.WebMessageInfo.key:type_name -> proto.MessageKey - 109, // 275: proto.WebMessageInfo.message:type_name -> proto.Message - 48, // 276: proto.WebMessageInfo.status:type_name -> proto.WebMessageInfo.Status - 47, // 277: proto.WebMessageInfo.messageStubType:type_name -> proto.WebMessageInfo.StubType - 211, // 278: proto.WebMessageInfo.paymentInfo:type_name -> proto.PaymentInfo - 65, // 279: proto.WebMessageInfo.finalLiveLocation:type_name -> proto.LiveLocationMessage - 211, // 280: proto.WebMessageInfo.quotedPaymentInfo:type_name -> proto.PaymentInfo - 49, // 281: proto.WebMessageInfo.bizPrivacyStatus:type_name -> proto.WebMessageInfo.BizPrivacyStatus - 213, // 282: proto.WebMessageInfo.mediaData:type_name -> proto.MediaData - 210, // 283: proto.WebMessageInfo.photoChange:type_name -> proto.PhotoChange - 205, // 284: proto.WebMessageInfo.userReceipt:type_name -> proto.UserReceipt - 207, // 285: proto.WebMessageInfo.reactions:type_name -> proto.Reaction - 213, // 286: proto.WebMessageInfo.quotedStickerData:type_name -> proto.MediaData - 206, // 287: proto.WebMessageInfo.statusPsa:type_name -> proto.StatusPSA - 208, // 288: proto.WebMessageInfo.pollUpdates:type_name -> proto.PollUpdate - 209, // 289: proto.WebMessageInfo.pollAdditionalMetadata:type_name -> proto.PollAdditionalMetadata - 214, // 290: proto.WebMessageInfo.keepInChat:type_name -> proto.KeepInChat - 50, // 291: proto.WebFeatures.labelsDisplay:type_name -> proto.WebFeatures.Flag - 50, // 292: proto.WebFeatures.voipIndividualOutgoing:type_name -> proto.WebFeatures.Flag - 50, // 293: proto.WebFeatures.groupsV3:type_name -> proto.WebFeatures.Flag - 50, // 294: proto.WebFeatures.groupsV3Create:type_name -> proto.WebFeatures.Flag - 50, // 295: proto.WebFeatures.changeNumberV2:type_name -> proto.WebFeatures.Flag - 50, // 296: proto.WebFeatures.queryStatusV3Thumbnail:type_name -> proto.WebFeatures.Flag - 50, // 297: proto.WebFeatures.liveLocations:type_name -> proto.WebFeatures.Flag - 50, // 298: proto.WebFeatures.queryVname:type_name -> proto.WebFeatures.Flag - 50, // 299: proto.WebFeatures.voipIndividualIncoming:type_name -> proto.WebFeatures.Flag - 50, // 300: proto.WebFeatures.quickRepliesQuery:type_name -> proto.WebFeatures.Flag - 50, // 301: proto.WebFeatures.payments:type_name -> proto.WebFeatures.Flag - 50, // 302: proto.WebFeatures.stickerPackQuery:type_name -> proto.WebFeatures.Flag - 50, // 303: proto.WebFeatures.liveLocationsFinal:type_name -> proto.WebFeatures.Flag - 50, // 304: proto.WebFeatures.labelsEdit:type_name -> proto.WebFeatures.Flag - 50, // 305: proto.WebFeatures.mediaUpload:type_name -> proto.WebFeatures.Flag - 50, // 306: proto.WebFeatures.mediaUploadRichQuickReplies:type_name -> proto.WebFeatures.Flag - 50, // 307: proto.WebFeatures.vnameV2:type_name -> proto.WebFeatures.Flag - 50, // 308: proto.WebFeatures.videoPlaybackUrl:type_name -> proto.WebFeatures.Flag - 50, // 309: proto.WebFeatures.statusRanking:type_name -> proto.WebFeatures.Flag - 50, // 310: proto.WebFeatures.voipIndividualVideo:type_name -> proto.WebFeatures.Flag - 50, // 311: proto.WebFeatures.thirdPartyStickers:type_name -> proto.WebFeatures.Flag - 50, // 312: proto.WebFeatures.frequentlyForwardedSetting:type_name -> proto.WebFeatures.Flag - 50, // 313: proto.WebFeatures.groupsV4JoinPermission:type_name -> proto.WebFeatures.Flag - 50, // 314: proto.WebFeatures.recentStickers:type_name -> proto.WebFeatures.Flag - 50, // 315: proto.WebFeatures.catalog:type_name -> proto.WebFeatures.Flag - 50, // 316: proto.WebFeatures.starredStickers:type_name -> proto.WebFeatures.Flag - 50, // 317: proto.WebFeatures.voipGroupCall:type_name -> proto.WebFeatures.Flag - 50, // 318: proto.WebFeatures.templateMessage:type_name -> proto.WebFeatures.Flag - 50, // 319: proto.WebFeatures.templateMessageInteractivity:type_name -> proto.WebFeatures.Flag - 50, // 320: proto.WebFeatures.ephemeralMessages:type_name -> proto.WebFeatures.Flag - 50, // 321: proto.WebFeatures.e2ENotificationSync:type_name -> proto.WebFeatures.Flag - 50, // 322: proto.WebFeatures.recentStickersV2:type_name -> proto.WebFeatures.Flag - 50, // 323: proto.WebFeatures.recentStickersV3:type_name -> proto.WebFeatures.Flag - 50, // 324: proto.WebFeatures.userNotice:type_name -> proto.WebFeatures.Flag - 50, // 325: proto.WebFeatures.support:type_name -> proto.WebFeatures.Flag - 50, // 326: proto.WebFeatures.groupUiiCleanup:type_name -> proto.WebFeatures.Flag - 50, // 327: proto.WebFeatures.groupDogfoodingInternalOnly:type_name -> proto.WebFeatures.Flag - 50, // 328: proto.WebFeatures.settingsSync:type_name -> proto.WebFeatures.Flag - 50, // 329: proto.WebFeatures.archiveV2:type_name -> proto.WebFeatures.Flag - 50, // 330: proto.WebFeatures.ephemeralAllowGroupMembers:type_name -> proto.WebFeatures.Flag - 50, // 331: proto.WebFeatures.ephemeral24HDuration:type_name -> proto.WebFeatures.Flag - 50, // 332: proto.WebFeatures.mdForceUpgrade:type_name -> proto.WebFeatures.Flag - 50, // 333: proto.WebFeatures.disappearingMode:type_name -> proto.WebFeatures.Flag - 50, // 334: proto.WebFeatures.externalMdOptInAvailable:type_name -> proto.WebFeatures.Flag - 50, // 335: proto.WebFeatures.noDeleteMessageTimeLimit:type_name -> proto.WebFeatures.Flag - 145, // 336: proto.Reaction.key:type_name -> proto.MessageKey - 145, // 337: proto.PollUpdate.pollUpdateMessageKey:type_name -> proto.MessageKey - 123, // 338: proto.PollUpdate.vote:type_name -> proto.PollVoteMessage - 53, // 339: proto.PaymentInfo.currencyDeprecated:type_name -> proto.PaymentInfo.Currency - 52, // 340: proto.PaymentInfo.status:type_name -> proto.PaymentInfo.Status - 145, // 341: proto.PaymentInfo.requestMessageKey:type_name -> proto.MessageKey - 51, // 342: proto.PaymentInfo.txnStatus:type_name -> proto.PaymentInfo.TxnStatus - 108, // 343: proto.PaymentInfo.primaryAmount:type_name -> proto.Money - 108, // 344: proto.PaymentInfo.exchangeAmount:type_name -> proto.Money - 145, // 345: proto.NotificationMessageInfo.key:type_name -> proto.MessageKey - 109, // 346: proto.NotificationMessageInfo.message:type_name -> proto.Message - 1, // 347: proto.KeepInChat.keepType:type_name -> proto.KeepType - 145, // 348: proto.KeepInChat.key:type_name -> proto.MessageKey - 270, // 349: proto.CertChain.leaf:type_name -> proto.CertChain.NoiseCertificate - 270, // 350: proto.CertChain.intermediate:type_name -> proto.CertChain.NoiseCertificate - 31, // 351: proto.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.mediaUploadResult:type_name -> proto.MediaRetryNotification.ResultType - 115, // 352: proto.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.stickerMessage:type_name -> proto.StickerMessage - 220, // 353: proto.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.linkPreviewResponse:type_name -> proto.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse - 225, // 354: proto.ListMessage.Section.rows:type_name -> proto.ListMessage.Row - 226, // 355: proto.ListMessage.ProductSection.products:type_name -> proto.ListMessage.Product - 227, // 356: proto.ListMessage.ProductListInfo.productSections:type_name -> proto.ListMessage.ProductSection - 229, // 357: proto.ListMessage.ProductListInfo.headerImage:type_name -> proto.ListMessage.ProductListHeaderImage - 10, // 358: proto.InteractiveMessage.ShopMessage.surface:type_name -> proto.InteractiveMessage.ShopMessage.Surface - 238, // 359: proto.InteractiveMessage.NativeFlowMessage.buttons:type_name -> proto.InteractiveMessage.NativeFlowMessage.NativeFlowButton - 80, // 360: proto.InteractiveMessage.Header.documentMessage:type_name -> proto.DocumentMessage - 73, // 361: proto.InteractiveMessage.Header.imageMessage:type_name -> proto.ImageMessage - 111, // 362: proto.InteractiveMessage.Header.videoMessage:type_name -> proto.VideoMessage - 241, // 363: proto.HighlyStructuredMessage.HSMLocalizableParameter.currency:type_name -> proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency - 240, // 364: proto.HighlyStructuredMessage.HSMLocalizableParameter.dateTime:type_name -> proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime - 243, // 365: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.component:type_name -> proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent - 242, // 366: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.unixEpoch:type_name -> proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch - 12, // 367: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.dayOfWeek:type_name -> proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType - 13, // 368: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.calendar:type_name -> proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType - 246, // 369: proto.ButtonsMessage.Button.buttonText:type_name -> proto.ButtonsMessage.Button.ButtonText - 20, // 370: proto.ButtonsMessage.Button.type:type_name -> proto.ButtonsMessage.Button.Type - 245, // 371: proto.ButtonsMessage.Button.nativeFlowInfo:type_name -> proto.ButtonsMessage.Button.NativeFlowInfo - 22, // 372: proto.ContextInfo.ExternalAdReplyInfo.mediaType:type_name -> proto.ContextInfo.ExternalAdReplyInfo.MediaType - 23, // 373: proto.ContextInfo.AdReplyInfo.mediaType:type_name -> proto.ContextInfo.AdReplyInfo.MediaType - 75, // 374: proto.TemplateButton.URLButton.displayText:type_name -> proto.HighlyStructuredMessage - 75, // 375: proto.TemplateButton.URLButton.url:type_name -> proto.HighlyStructuredMessage - 75, // 376: proto.TemplateButton.QuickReplyButton.displayText:type_name -> proto.HighlyStructuredMessage - 75, // 377: proto.TemplateButton.CallButton.displayText:type_name -> proto.HighlyStructuredMessage - 75, // 378: proto.TemplateButton.CallButton.phoneNumber:type_name -> proto.HighlyStructuredMessage - 100, // 379: proto.TemplateMessage.HydratedFourRowTemplate.hydratedButtons:type_name -> proto.HydratedTemplateButton - 80, // 380: proto.TemplateMessage.HydratedFourRowTemplate.documentMessage:type_name -> proto.DocumentMessage - 73, // 381: proto.TemplateMessage.HydratedFourRowTemplate.imageMessage:type_name -> proto.ImageMessage - 111, // 382: proto.TemplateMessage.HydratedFourRowTemplate.videoMessage:type_name -> proto.VideoMessage - 64, // 383: proto.TemplateMessage.HydratedFourRowTemplate.locationMessage:type_name -> proto.LocationMessage - 75, // 384: proto.TemplateMessage.FourRowTemplate.content:type_name -> proto.HighlyStructuredMessage - 75, // 385: proto.TemplateMessage.FourRowTemplate.footer:type_name -> proto.HighlyStructuredMessage - 105, // 386: proto.TemplateMessage.FourRowTemplate.buttons:type_name -> proto.TemplateButton - 80, // 387: proto.TemplateMessage.FourRowTemplate.documentMessage:type_name -> proto.DocumentMessage - 75, // 388: proto.TemplateMessage.FourRowTemplate.highlyStructuredMessage:type_name -> proto.HighlyStructuredMessage - 73, // 389: proto.TemplateMessage.FourRowTemplate.imageMessage:type_name -> proto.ImageMessage - 111, // 390: proto.TemplateMessage.FourRowTemplate.videoMessage:type_name -> proto.VideoMessage - 64, // 391: proto.TemplateMessage.FourRowTemplate.locationMessage:type_name -> proto.LocationMessage - 73, // 392: proto.ProductMessage.ProductSnapshot.productImage:type_name -> proto.ImageMessage - 73, // 393: proto.ProductMessage.CatalogSnapshot.catalogImage:type_name -> proto.ImageMessage - 193, // 394: proto.VerifiedNameCertificate.Details.localizedNames:type_name -> proto.LocalizedName - 267, // 395: proto.ClientPayload.WebInfo.webdPayload:type_name -> proto.ClientPayload.WebInfo.WebdPayload - 43, // 396: proto.ClientPayload.WebInfo.webSubPlatform:type_name -> proto.ClientPayload.WebInfo.WebSubPlatform - 45, // 397: proto.ClientPayload.UserAgent.platform:type_name -> proto.ClientPayload.UserAgent.Platform - 268, // 398: proto.ClientPayload.UserAgent.appVersion:type_name -> proto.ClientPayload.UserAgent.AppVersion - 44, // 399: proto.ClientPayload.UserAgent.releaseChannel:type_name -> proto.ClientPayload.UserAgent.ReleaseChannel - 46, // 400: proto.ClientPayload.DNSSource.dnsMethod:type_name -> proto.ClientPayload.DNSSource.DNSResolutionMethod - 401, // [401:401] is the sub-list for method output_type - 401, // [401:401] is the sub-list for method input_type - 401, // [401:401] is the sub-list for extension type_name - 401, // [401:401] is the sub-list for extension extendee - 0, // [0:401] is the sub-list for field type_name + 127, // 135: proto.Message.pollCreationMessageV2:type_name -> proto.PollCreationMessage + 102, // 136: proto.MessageContextInfo.deviceListMetadata:type_name -> proto.DeviceListMetadata + 99, // 137: proto.VideoMessage.interactiveAnnotations:type_name -> proto.InteractiveAnnotation + 103, // 138: proto.VideoMessage.contextInfo:type_name -> proto.ContextInfo + 25, // 139: proto.VideoMessage.gifAttribution:type_name -> proto.VideoMessage.Attribution + 103, // 140: proto.TemplateMessage.contextInfo:type_name -> proto.ContextInfo + 257, // 141: proto.TemplateMessage.hydratedTemplate:type_name -> proto.TemplateMessage.HydratedFourRowTemplate + 258, // 142: proto.TemplateMessage.fourRowTemplate:type_name -> proto.TemplateMessage.FourRowTemplate + 257, // 143: proto.TemplateMessage.hydratedFourRowTemplate:type_name -> proto.TemplateMessage.HydratedFourRowTemplate + 71, // 144: proto.TemplateMessage.interactiveMessageTemplate:type_name -> proto.InteractiveMessage + 103, // 145: proto.TemplateButtonReplyMessage.contextInfo:type_name -> proto.ContextInfo + 103, // 146: proto.StickerMessage.contextInfo:type_name -> proto.ContextInfo + 109, // 147: proto.SendPaymentMessage.noteMessage:type_name -> proto.Message + 145, // 148: proto.SendPaymentMessage.requestMessageKey:type_name -> proto.MessageKey + 107, // 149: proto.SendPaymentMessage.background:type_name -> proto.PaymentBackground + 103, // 150: proto.RequestPhoneNumberMessage.contextInfo:type_name -> proto.ContextInfo + 109, // 151: proto.RequestPaymentMessage.noteMessage:type_name -> proto.Message + 108, // 152: proto.RequestPaymentMessage.amount:type_name -> proto.Money + 107, // 153: proto.RequestPaymentMessage.background:type_name -> proto.PaymentBackground + 145, // 154: proto.ReactionMessage.key:type_name -> proto.MessageKey + 145, // 155: proto.ProtocolMessage.key:type_name -> proto.MessageKey + 26, // 156: proto.ProtocolMessage.type:type_name -> proto.ProtocolMessage.Type + 74, // 157: proto.ProtocolMessage.historySyncNotification:type_name -> proto.HistorySyncNotification + 92, // 158: proto.ProtocolMessage.appStateSyncKeyShare:type_name -> proto.AppStateSyncKeyShare + 93, // 159: proto.ProtocolMessage.appStateSyncKeyRequest:type_name -> proto.AppStateSyncKeyRequest + 72, // 160: proto.ProtocolMessage.initialSecurityNotificationSettingSync:type_name -> proto.InitialSecurityNotificationSettingSync + 97, // 161: proto.ProtocolMessage.appStateFatalExceptionNotification:type_name -> proto.AppStateFatalExceptionNotification + 101, // 162: proto.ProtocolMessage.disappearingMode:type_name -> proto.DisappearingMode + 109, // 163: proto.ProtocolMessage.editedMessage:type_name -> proto.Message + 61, // 164: proto.ProtocolMessage.peerDataOperationRequestMessage:type_name -> proto.PeerDataOperationRequestMessage + 60, // 165: proto.ProtocolMessage.peerDataOperationRequestResponseMessage:type_name -> proto.PeerDataOperationRequestResponseMessage + 259, // 166: proto.ProductMessage.product:type_name -> proto.ProductMessage.ProductSnapshot + 260, // 167: proto.ProductMessage.catalog:type_name -> proto.ProductMessage.CatalogSnapshot + 103, // 168: proto.ProductMessage.contextInfo:type_name -> proto.ContextInfo + 145, // 169: proto.PollUpdateMessage.pollCreationMessageKey:type_name -> proto.MessageKey + 126, // 170: proto.PollUpdateMessage.vote:type_name -> proto.PollEncValue + 125, // 171: proto.PollUpdateMessage.metadata:type_name -> proto.PollUpdateMessageMetadata + 261, // 172: proto.PollCreationMessage.options:type_name -> proto.PollCreationMessage.Option + 103, // 173: proto.PollCreationMessage.contextInfo:type_name -> proto.ContextInfo + 133, // 174: proto.PastParticipants.pastParticipants:type_name -> proto.PastParticipant + 27, // 175: proto.PastParticipant.leaveReason:type_name -> proto.PastParticipant.LeaveReason + 28, // 176: proto.HistorySync.syncType:type_name -> proto.HistorySync.HistorySyncType + 138, // 177: proto.HistorySync.conversations:type_name -> proto.Conversation + 204, // 178: proto.HistorySync.statusV3Messages:type_name -> proto.WebMessageInfo + 131, // 179: proto.HistorySync.pushnames:type_name -> proto.Pushname + 137, // 180: proto.HistorySync.globalSettings:type_name -> proto.GlobalSettings + 130, // 181: proto.HistorySync.recentStickers:type_name -> proto.StickerMetadata + 132, // 182: proto.HistorySync.pastParticipants:type_name -> proto.PastParticipants + 204, // 183: proto.HistorySyncMsg.message:type_name -> proto.WebMessageInfo + 29, // 184: proto.GroupParticipant.rank:type_name -> proto.GroupParticipant.Rank + 129, // 185: proto.GlobalSettings.lightThemeWallpaper:type_name -> proto.WallpaperSettings + 2, // 186: proto.GlobalSettings.mediaVisibility:type_name -> proto.MediaVisibility + 129, // 187: proto.GlobalSettings.darkThemeWallpaper:type_name -> proto.WallpaperSettings + 140, // 188: proto.GlobalSettings.autoDownloadWiFi:type_name -> proto.AutoDownloadSettings + 140, // 189: proto.GlobalSettings.autoDownloadCellular:type_name -> proto.AutoDownloadSettings + 140, // 190: proto.GlobalSettings.autoDownloadRoaming:type_name -> proto.AutoDownloadSettings + 139, // 191: proto.GlobalSettings.avatarUserSettings:type_name -> proto.AvatarUserSettings + 135, // 192: proto.Conversation.messages:type_name -> proto.HistorySyncMsg + 30, // 193: proto.Conversation.endOfHistoryTransferType:type_name -> proto.Conversation.EndOfHistoryTransferType + 101, // 194: proto.Conversation.disappearingMode:type_name -> proto.DisappearingMode + 136, // 195: proto.Conversation.participant:type_name -> proto.GroupParticipant + 129, // 196: proto.Conversation.wallpaper:type_name -> proto.WallpaperSettings + 2, // 197: proto.Conversation.mediaVisibility:type_name -> proto.MediaVisibility + 142, // 198: proto.MsgRowOpaqueData.currentMsg:type_name -> proto.MsgOpaqueData + 142, // 199: proto.MsgRowOpaqueData.quotedMsg:type_name -> proto.MsgOpaqueData + 262, // 200: proto.MsgOpaqueData.pollOptions:type_name -> proto.MsgOpaqueData.PollOption + 126, // 201: proto.MsgOpaqueData.encPollVote:type_name -> proto.PollEncValue + 31, // 202: proto.MediaRetryNotification.result:type_name -> proto.MediaRetryNotification.ResultType + 146, // 203: proto.SyncdSnapshot.version:type_name -> proto.SyncdVersion + 149, // 204: proto.SyncdSnapshot.records:type_name -> proto.SyncdRecord + 154, // 205: proto.SyncdSnapshot.keyId:type_name -> proto.KeyId + 153, // 206: proto.SyncdRecord.index:type_name -> proto.SyncdIndex + 147, // 207: proto.SyncdRecord.value:type_name -> proto.SyncdValue + 154, // 208: proto.SyncdRecord.keyId:type_name -> proto.KeyId + 146, // 209: proto.SyncdPatch.version:type_name -> proto.SyncdVersion + 152, // 210: proto.SyncdPatch.mutations:type_name -> proto.SyncdMutation + 155, // 211: proto.SyncdPatch.externalMutations:type_name -> proto.ExternalBlobReference + 154, // 212: proto.SyncdPatch.keyId:type_name -> proto.KeyId + 156, // 213: proto.SyncdPatch.exitCode:type_name -> proto.ExitCode + 152, // 214: proto.SyncdMutations.mutations:type_name -> proto.SyncdMutation + 32, // 215: proto.SyncdMutation.operation:type_name -> proto.SyncdMutation.SyncdOperation + 149, // 216: proto.SyncdMutation.record:type_name -> proto.SyncdRecord + 165, // 217: proto.SyncActionValue.starAction:type_name -> proto.StarAction + 184, // 218: proto.SyncActionValue.contactAction:type_name -> proto.ContactAction + 176, // 219: proto.SyncActionValue.muteAction:type_name -> proto.MuteAction + 174, // 220: proto.SyncActionValue.pinAction:type_name -> proto.PinAction + 166, // 221: proto.SyncActionValue.securityNotificationSetting:type_name -> proto.SecurityNotificationSetting + 170, // 222: proto.SyncActionValue.pushNameSetting:type_name -> proto.PushNameSetting + 169, // 223: proto.SyncActionValue.quickReplyAction:type_name -> proto.QuickReplyAction + 168, // 224: proto.SyncActionValue.recentEmojiWeightsAction:type_name -> proto.RecentEmojiWeightsAction + 179, // 225: proto.SyncActionValue.labelEditAction:type_name -> proto.LabelEditAction + 180, // 226: proto.SyncActionValue.labelAssociationAction:type_name -> proto.LabelAssociationAction + 178, // 227: proto.SyncActionValue.localeSetting:type_name -> proto.LocaleSetting + 188, // 228: proto.SyncActionValue.archiveChatAction:type_name -> proto.ArchiveChatAction + 182, // 229: proto.SyncActionValue.deleteMessageForMeAction:type_name -> proto.DeleteMessageForMeAction + 181, // 230: proto.SyncActionValue.keyExpiration:type_name -> proto.KeyExpiration + 177, // 231: proto.SyncActionValue.markChatAsReadAction:type_name -> proto.MarkChatAsReadAction + 185, // 232: proto.SyncActionValue.clearChatAction:type_name -> proto.ClearChatAction + 183, // 233: proto.SyncActionValue.deleteChatAction:type_name -> proto.DeleteChatAction + 159, // 234: proto.SyncActionValue.unarchiveChatsSetting:type_name -> proto.UnarchiveChatsSetting + 172, // 235: proto.SyncActionValue.primaryFeature:type_name -> proto.PrimaryFeature + 189, // 236: proto.SyncActionValue.androidUnsupportedActions:type_name -> proto.AndroidUnsupportedActions + 190, // 237: proto.SyncActionValue.agentAction:type_name -> proto.AgentAction + 163, // 238: proto.SyncActionValue.subscriptionAction:type_name -> proto.SubscriptionAction + 158, // 239: proto.SyncActionValue.userStatusMuteAction:type_name -> proto.UserStatusMuteAction + 160, // 240: proto.SyncActionValue.timeFormatAction:type_name -> proto.TimeFormatAction + 175, // 241: proto.SyncActionValue.nuxAction:type_name -> proto.NuxAction + 171, // 242: proto.SyncActionValue.primaryVersionAction:type_name -> proto.PrimaryVersionAction + 164, // 243: proto.SyncActionValue.stickerAction:type_name -> proto.StickerAction + 167, // 244: proto.SyncActionValue.removeRecentStickerAction:type_name -> proto.RemoveRecentStickerAction + 187, // 245: proto.SyncActionValue.chatAssignment:type_name -> proto.ChatAssignmentAction + 186, // 246: proto.SyncActionValue.chatAssignmentOpenedStatus:type_name -> proto.ChatAssignmentOpenedStatusAction + 173, // 247: proto.SyncActionValue.pnForLidChatAction:type_name -> proto.PnForLidChatAction + 145, // 248: proto.SyncActionMessage.key:type_name -> proto.MessageKey + 161, // 249: proto.SyncActionMessageRange.messages:type_name -> proto.SyncActionMessage + 192, // 250: proto.RecentEmojiWeightsAction.weights:type_name -> proto.RecentEmojiWeight + 162, // 251: proto.MarkChatAsReadAction.messageRange:type_name -> proto.SyncActionMessageRange + 162, // 252: proto.DeleteChatAction.messageRange:type_name -> proto.SyncActionMessageRange + 162, // 253: proto.ClearChatAction.messageRange:type_name -> proto.SyncActionMessageRange + 162, // 254: proto.ArchiveChatAction.messageRange:type_name -> proto.SyncActionMessageRange + 157, // 255: proto.SyncActionData.value:type_name -> proto.SyncActionValue + 33, // 256: proto.BizIdentityInfo.vlevel:type_name -> proto.BizIdentityInfo.VerifiedLevelValue + 193, // 257: proto.BizIdentityInfo.vnameCert:type_name -> proto.VerifiedNameCertificate + 34, // 258: proto.BizIdentityInfo.hostStorage:type_name -> proto.BizIdentityInfo.HostStorageType + 35, // 259: proto.BizIdentityInfo.actualActors:type_name -> proto.BizIdentityInfo.ActualActorsType + 193, // 260: proto.BizAccountPayload.vnameCert:type_name -> proto.VerifiedNameCertificate + 36, // 261: proto.BizAccountLinkInfo.hostStorage:type_name -> proto.BizAccountLinkInfo.HostStorageType + 37, // 262: proto.BizAccountLinkInfo.accountType:type_name -> proto.BizAccountLinkInfo.AccountType + 200, // 263: proto.HandshakeMessage.clientHello:type_name -> proto.HandshakeClientHello + 199, // 264: proto.HandshakeMessage.serverHello:type_name -> proto.HandshakeServerHello + 201, // 265: proto.HandshakeMessage.clientFinish:type_name -> proto.HandshakeClientFinish + 265, // 266: proto.ClientPayload.userAgent:type_name -> proto.ClientPayload.UserAgent + 264, // 267: proto.ClientPayload.webInfo:type_name -> proto.ClientPayload.WebInfo + 40, // 268: proto.ClientPayload.connectType:type_name -> proto.ClientPayload.ConnectType + 41, // 269: proto.ClientPayload.connectReason:type_name -> proto.ClientPayload.ConnectReason + 267, // 270: proto.ClientPayload.dnsSource:type_name -> proto.ClientPayload.DNSSource + 266, // 271: proto.ClientPayload.devicePairingData:type_name -> proto.ClientPayload.DevicePairingRegistrationData + 38, // 272: proto.ClientPayload.product:type_name -> proto.ClientPayload.Product + 39, // 273: proto.ClientPayload.iosAppExtension:type_name -> proto.ClientPayload.IOSAppExtension + 42, // 274: proto.ClientPayload.bizMarketSegment:type_name -> proto.ClientPayload.BizMarketSegment + 204, // 275: proto.WebNotificationsInfo.notifyMessages:type_name -> proto.WebMessageInfo + 145, // 276: proto.WebMessageInfo.key:type_name -> proto.MessageKey + 109, // 277: proto.WebMessageInfo.message:type_name -> proto.Message + 48, // 278: proto.WebMessageInfo.status:type_name -> proto.WebMessageInfo.Status + 47, // 279: proto.WebMessageInfo.messageStubType:type_name -> proto.WebMessageInfo.StubType + 212, // 280: proto.WebMessageInfo.paymentInfo:type_name -> proto.PaymentInfo + 65, // 281: proto.WebMessageInfo.finalLiveLocation:type_name -> proto.LiveLocationMessage + 212, // 282: proto.WebMessageInfo.quotedPaymentInfo:type_name -> proto.PaymentInfo + 49, // 283: proto.WebMessageInfo.bizPrivacyStatus:type_name -> proto.WebMessageInfo.BizPrivacyStatus + 214, // 284: proto.WebMessageInfo.mediaData:type_name -> proto.MediaData + 211, // 285: proto.WebMessageInfo.photoChange:type_name -> proto.PhotoChange + 206, // 286: proto.WebMessageInfo.userReceipt:type_name -> proto.UserReceipt + 208, // 287: proto.WebMessageInfo.reactions:type_name -> proto.Reaction + 214, // 288: proto.WebMessageInfo.quotedStickerData:type_name -> proto.MediaData + 207, // 289: proto.WebMessageInfo.statusPsa:type_name -> proto.StatusPSA + 209, // 290: proto.WebMessageInfo.pollUpdates:type_name -> proto.PollUpdate + 210, // 291: proto.WebMessageInfo.pollAdditionalMetadata:type_name -> proto.PollAdditionalMetadata + 215, // 292: proto.WebMessageInfo.keepInChat:type_name -> proto.KeepInChat + 50, // 293: proto.WebFeatures.labelsDisplay:type_name -> proto.WebFeatures.Flag + 50, // 294: proto.WebFeatures.voipIndividualOutgoing:type_name -> proto.WebFeatures.Flag + 50, // 295: proto.WebFeatures.groupsV3:type_name -> proto.WebFeatures.Flag + 50, // 296: proto.WebFeatures.groupsV3Create:type_name -> proto.WebFeatures.Flag + 50, // 297: proto.WebFeatures.changeNumberV2:type_name -> proto.WebFeatures.Flag + 50, // 298: proto.WebFeatures.queryStatusV3Thumbnail:type_name -> proto.WebFeatures.Flag + 50, // 299: proto.WebFeatures.liveLocations:type_name -> proto.WebFeatures.Flag + 50, // 300: proto.WebFeatures.queryVname:type_name -> proto.WebFeatures.Flag + 50, // 301: proto.WebFeatures.voipIndividualIncoming:type_name -> proto.WebFeatures.Flag + 50, // 302: proto.WebFeatures.quickRepliesQuery:type_name -> proto.WebFeatures.Flag + 50, // 303: proto.WebFeatures.payments:type_name -> proto.WebFeatures.Flag + 50, // 304: proto.WebFeatures.stickerPackQuery:type_name -> proto.WebFeatures.Flag + 50, // 305: proto.WebFeatures.liveLocationsFinal:type_name -> proto.WebFeatures.Flag + 50, // 306: proto.WebFeatures.labelsEdit:type_name -> proto.WebFeatures.Flag + 50, // 307: proto.WebFeatures.mediaUpload:type_name -> proto.WebFeatures.Flag + 50, // 308: proto.WebFeatures.mediaUploadRichQuickReplies:type_name -> proto.WebFeatures.Flag + 50, // 309: proto.WebFeatures.vnameV2:type_name -> proto.WebFeatures.Flag + 50, // 310: proto.WebFeatures.videoPlaybackUrl:type_name -> proto.WebFeatures.Flag + 50, // 311: proto.WebFeatures.statusRanking:type_name -> proto.WebFeatures.Flag + 50, // 312: proto.WebFeatures.voipIndividualVideo:type_name -> proto.WebFeatures.Flag + 50, // 313: proto.WebFeatures.thirdPartyStickers:type_name -> proto.WebFeatures.Flag + 50, // 314: proto.WebFeatures.frequentlyForwardedSetting:type_name -> proto.WebFeatures.Flag + 50, // 315: proto.WebFeatures.groupsV4JoinPermission:type_name -> proto.WebFeatures.Flag + 50, // 316: proto.WebFeatures.recentStickers:type_name -> proto.WebFeatures.Flag + 50, // 317: proto.WebFeatures.catalog:type_name -> proto.WebFeatures.Flag + 50, // 318: proto.WebFeatures.starredStickers:type_name -> proto.WebFeatures.Flag + 50, // 319: proto.WebFeatures.voipGroupCall:type_name -> proto.WebFeatures.Flag + 50, // 320: proto.WebFeatures.templateMessage:type_name -> proto.WebFeatures.Flag + 50, // 321: proto.WebFeatures.templateMessageInteractivity:type_name -> proto.WebFeatures.Flag + 50, // 322: proto.WebFeatures.ephemeralMessages:type_name -> proto.WebFeatures.Flag + 50, // 323: proto.WebFeatures.e2ENotificationSync:type_name -> proto.WebFeatures.Flag + 50, // 324: proto.WebFeatures.recentStickersV2:type_name -> proto.WebFeatures.Flag + 50, // 325: proto.WebFeatures.recentStickersV3:type_name -> proto.WebFeatures.Flag + 50, // 326: proto.WebFeatures.userNotice:type_name -> proto.WebFeatures.Flag + 50, // 327: proto.WebFeatures.support:type_name -> proto.WebFeatures.Flag + 50, // 328: proto.WebFeatures.groupUiiCleanup:type_name -> proto.WebFeatures.Flag + 50, // 329: proto.WebFeatures.groupDogfoodingInternalOnly:type_name -> proto.WebFeatures.Flag + 50, // 330: proto.WebFeatures.settingsSync:type_name -> proto.WebFeatures.Flag + 50, // 331: proto.WebFeatures.archiveV2:type_name -> proto.WebFeatures.Flag + 50, // 332: proto.WebFeatures.ephemeralAllowGroupMembers:type_name -> proto.WebFeatures.Flag + 50, // 333: proto.WebFeatures.ephemeral24HDuration:type_name -> proto.WebFeatures.Flag + 50, // 334: proto.WebFeatures.mdForceUpgrade:type_name -> proto.WebFeatures.Flag + 50, // 335: proto.WebFeatures.disappearingMode:type_name -> proto.WebFeatures.Flag + 50, // 336: proto.WebFeatures.externalMdOptInAvailable:type_name -> proto.WebFeatures.Flag + 50, // 337: proto.WebFeatures.noDeleteMessageTimeLimit:type_name -> proto.WebFeatures.Flag + 145, // 338: proto.Reaction.key:type_name -> proto.MessageKey + 145, // 339: proto.PollUpdate.pollUpdateMessageKey:type_name -> proto.MessageKey + 123, // 340: proto.PollUpdate.vote:type_name -> proto.PollVoteMessage + 53, // 341: proto.PaymentInfo.currencyDeprecated:type_name -> proto.PaymentInfo.Currency + 52, // 342: proto.PaymentInfo.status:type_name -> proto.PaymentInfo.Status + 145, // 343: proto.PaymentInfo.requestMessageKey:type_name -> proto.MessageKey + 51, // 344: proto.PaymentInfo.txnStatus:type_name -> proto.PaymentInfo.TxnStatus + 108, // 345: proto.PaymentInfo.primaryAmount:type_name -> proto.Money + 108, // 346: proto.PaymentInfo.exchangeAmount:type_name -> proto.Money + 145, // 347: proto.NotificationMessageInfo.key:type_name -> proto.MessageKey + 109, // 348: proto.NotificationMessageInfo.message:type_name -> proto.Message + 1, // 349: proto.KeepInChat.keepType:type_name -> proto.KeepType + 145, // 350: proto.KeepInChat.key:type_name -> proto.MessageKey + 271, // 351: proto.CertChain.leaf:type_name -> proto.CertChain.NoiseCertificate + 271, // 352: proto.CertChain.intermediate:type_name -> proto.CertChain.NoiseCertificate + 31, // 353: proto.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.mediaUploadResult:type_name -> proto.MediaRetryNotification.ResultType + 115, // 354: proto.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.stickerMessage:type_name -> proto.StickerMessage + 221, // 355: proto.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.linkPreviewResponse:type_name -> proto.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse + 226, // 356: proto.ListMessage.Section.rows:type_name -> proto.ListMessage.Row + 227, // 357: proto.ListMessage.ProductSection.products:type_name -> proto.ListMessage.Product + 228, // 358: proto.ListMessage.ProductListInfo.productSections:type_name -> proto.ListMessage.ProductSection + 230, // 359: proto.ListMessage.ProductListInfo.headerImage:type_name -> proto.ListMessage.ProductListHeaderImage + 10, // 360: proto.InteractiveMessage.ShopMessage.surface:type_name -> proto.InteractiveMessage.ShopMessage.Surface + 239, // 361: proto.InteractiveMessage.NativeFlowMessage.buttons:type_name -> proto.InteractiveMessage.NativeFlowMessage.NativeFlowButton + 80, // 362: proto.InteractiveMessage.Header.documentMessage:type_name -> proto.DocumentMessage + 73, // 363: proto.InteractiveMessage.Header.imageMessage:type_name -> proto.ImageMessage + 111, // 364: proto.InteractiveMessage.Header.videoMessage:type_name -> proto.VideoMessage + 242, // 365: proto.HighlyStructuredMessage.HSMLocalizableParameter.currency:type_name -> proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency + 241, // 366: proto.HighlyStructuredMessage.HSMLocalizableParameter.dateTime:type_name -> proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime + 244, // 367: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.component:type_name -> proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent + 243, // 368: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.unixEpoch:type_name -> proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch + 12, // 369: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.dayOfWeek:type_name -> proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType + 13, // 370: proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.calendar:type_name -> proto.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType + 247, // 371: proto.ButtonsMessage.Button.buttonText:type_name -> proto.ButtonsMessage.Button.ButtonText + 20, // 372: proto.ButtonsMessage.Button.type:type_name -> proto.ButtonsMessage.Button.Type + 246, // 373: proto.ButtonsMessage.Button.nativeFlowInfo:type_name -> proto.ButtonsMessage.Button.NativeFlowInfo + 22, // 374: proto.ContextInfo.ExternalAdReplyInfo.mediaType:type_name -> proto.ContextInfo.ExternalAdReplyInfo.MediaType + 23, // 375: proto.ContextInfo.AdReplyInfo.mediaType:type_name -> proto.ContextInfo.AdReplyInfo.MediaType + 75, // 376: proto.TemplateButton.URLButton.displayText:type_name -> proto.HighlyStructuredMessage + 75, // 377: proto.TemplateButton.URLButton.url:type_name -> proto.HighlyStructuredMessage + 75, // 378: proto.TemplateButton.QuickReplyButton.displayText:type_name -> proto.HighlyStructuredMessage + 75, // 379: proto.TemplateButton.CallButton.displayText:type_name -> proto.HighlyStructuredMessage + 75, // 380: proto.TemplateButton.CallButton.phoneNumber:type_name -> proto.HighlyStructuredMessage + 100, // 381: proto.TemplateMessage.HydratedFourRowTemplate.hydratedButtons:type_name -> proto.HydratedTemplateButton + 80, // 382: proto.TemplateMessage.HydratedFourRowTemplate.documentMessage:type_name -> proto.DocumentMessage + 73, // 383: proto.TemplateMessage.HydratedFourRowTemplate.imageMessage:type_name -> proto.ImageMessage + 111, // 384: proto.TemplateMessage.HydratedFourRowTemplate.videoMessage:type_name -> proto.VideoMessage + 64, // 385: proto.TemplateMessage.HydratedFourRowTemplate.locationMessage:type_name -> proto.LocationMessage + 75, // 386: proto.TemplateMessage.FourRowTemplate.content:type_name -> proto.HighlyStructuredMessage + 75, // 387: proto.TemplateMessage.FourRowTemplate.footer:type_name -> proto.HighlyStructuredMessage + 105, // 388: proto.TemplateMessage.FourRowTemplate.buttons:type_name -> proto.TemplateButton + 80, // 389: proto.TemplateMessage.FourRowTemplate.documentMessage:type_name -> proto.DocumentMessage + 75, // 390: proto.TemplateMessage.FourRowTemplate.highlyStructuredMessage:type_name -> proto.HighlyStructuredMessage + 73, // 391: proto.TemplateMessage.FourRowTemplate.imageMessage:type_name -> proto.ImageMessage + 111, // 392: proto.TemplateMessage.FourRowTemplate.videoMessage:type_name -> proto.VideoMessage + 64, // 393: proto.TemplateMessage.FourRowTemplate.locationMessage:type_name -> proto.LocationMessage + 73, // 394: proto.ProductMessage.ProductSnapshot.productImage:type_name -> proto.ImageMessage + 73, // 395: proto.ProductMessage.CatalogSnapshot.catalogImage:type_name -> proto.ImageMessage + 194, // 396: proto.VerifiedNameCertificate.Details.localizedNames:type_name -> proto.LocalizedName + 268, // 397: proto.ClientPayload.WebInfo.webdPayload:type_name -> proto.ClientPayload.WebInfo.WebdPayload + 43, // 398: proto.ClientPayload.WebInfo.webSubPlatform:type_name -> proto.ClientPayload.WebInfo.WebSubPlatform + 45, // 399: proto.ClientPayload.UserAgent.platform:type_name -> proto.ClientPayload.UserAgent.Platform + 269, // 400: proto.ClientPayload.UserAgent.appVersion:type_name -> proto.ClientPayload.UserAgent.AppVersion + 44, // 401: proto.ClientPayload.UserAgent.releaseChannel:type_name -> proto.ClientPayload.UserAgent.ReleaseChannel + 46, // 402: proto.ClientPayload.DNSSource.dnsMethod:type_name -> proto.ClientPayload.DNSSource.DNSResolutionMethod + 403, // [403:403] is the sub-list for method output_type + 403, // [403:403] is the sub-list for method input_type + 403, // [403:403] is the sub-list for extension type_name + 403, // [403:403] is the sub-list for extension extendee + 0, // [0:403] is the sub-list for field type_name } func init() { file_binary_proto_def_proto_init() } @@ -24230,7 +24320,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PinAction); i { + switch v := v.(*PnForLidChatAction); i { case 0: return &v.state case 1: @@ -24242,7 +24332,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NuxAction); i { + switch v := v.(*PinAction); i { case 0: return &v.state case 1: @@ -24254,7 +24344,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MuteAction); i { + switch v := v.(*NuxAction); i { case 0: return &v.state case 1: @@ -24266,7 +24356,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MarkChatAsReadAction); i { + switch v := v.(*MuteAction); i { case 0: return &v.state case 1: @@ -24278,7 +24368,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LocaleSetting); i { + switch v := v.(*MarkChatAsReadAction); i { case 0: return &v.state case 1: @@ -24290,7 +24380,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LabelEditAction); i { + switch v := v.(*LocaleSetting); i { case 0: return &v.state case 1: @@ -24302,7 +24392,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LabelAssociationAction); i { + switch v := v.(*LabelEditAction); i { case 0: return &v.state case 1: @@ -24314,7 +24404,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KeyExpiration); i { + switch v := v.(*LabelAssociationAction); i { case 0: return &v.state case 1: @@ -24326,7 +24416,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteMessageForMeAction); i { + switch v := v.(*KeyExpiration); i { case 0: return &v.state case 1: @@ -24338,7 +24428,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteChatAction); i { + switch v := v.(*DeleteMessageForMeAction); i { case 0: return &v.state case 1: @@ -24350,7 +24440,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContactAction); i { + switch v := v.(*DeleteChatAction); i { case 0: return &v.state case 1: @@ -24362,7 +24452,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClearChatAction); i { + switch v := v.(*ContactAction); i { case 0: return &v.state case 1: @@ -24374,7 +24464,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChatAssignmentOpenedStatusAction); i { + switch v := v.(*ClearChatAction); i { case 0: return &v.state case 1: @@ -24386,7 +24476,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChatAssignmentAction); i { + switch v := v.(*ChatAssignmentOpenedStatusAction); i { case 0: return &v.state case 1: @@ -24398,7 +24488,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArchiveChatAction); i { + switch v := v.(*ChatAssignmentAction); i { case 0: return &v.state case 1: @@ -24410,7 +24500,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AndroidUnsupportedActions); i { + switch v := v.(*ArchiveChatAction); i { case 0: return &v.state case 1: @@ -24422,7 +24512,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AgentAction); i { + switch v := v.(*AndroidUnsupportedActions); i { case 0: return &v.state case 1: @@ -24434,7 +24524,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SyncActionData); i { + switch v := v.(*AgentAction); i { case 0: return &v.state case 1: @@ -24446,7 +24536,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecentEmojiWeight); i { + switch v := v.(*SyncActionData); i { case 0: return &v.state case 1: @@ -24458,7 +24548,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifiedNameCertificate); i { + switch v := v.(*RecentEmojiWeight); i { case 0: return &v.state case 1: @@ -24470,7 +24560,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LocalizedName); i { + switch v := v.(*VerifiedNameCertificate); i { case 0: return &v.state case 1: @@ -24482,7 +24572,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BizIdentityInfo); i { + switch v := v.(*LocalizedName); i { case 0: return &v.state case 1: @@ -24494,7 +24584,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BizAccountPayload); i { + switch v := v.(*BizIdentityInfo); i { case 0: return &v.state case 1: @@ -24506,7 +24596,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BizAccountLinkInfo); i { + switch v := v.(*BizAccountPayload); i { case 0: return &v.state case 1: @@ -24518,7 +24608,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HandshakeMessage); i { + switch v := v.(*BizAccountLinkInfo); i { case 0: return &v.state case 1: @@ -24530,7 +24620,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HandshakeServerHello); i { + switch v := v.(*HandshakeMessage); i { case 0: return &v.state case 1: @@ -24542,7 +24632,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HandshakeClientHello); i { + switch v := v.(*HandshakeServerHello); i { case 0: return &v.state case 1: @@ -24554,7 +24644,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HandshakeClientFinish); i { + switch v := v.(*HandshakeClientHello); i { case 0: return &v.state case 1: @@ -24566,7 +24656,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientPayload); i { + switch v := v.(*HandshakeClientFinish); i { case 0: return &v.state case 1: @@ -24578,7 +24668,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebNotificationsInfo); i { + switch v := v.(*ClientPayload); i { case 0: return &v.state case 1: @@ -24590,7 +24680,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebMessageInfo); i { + switch v := v.(*WebNotificationsInfo); i { case 0: return &v.state case 1: @@ -24602,7 +24692,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebFeatures); i { + switch v := v.(*WebMessageInfo); i { case 0: return &v.state case 1: @@ -24614,7 +24704,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserReceipt); i { + switch v := v.(*WebFeatures); i { case 0: return &v.state case 1: @@ -24626,7 +24716,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusPSA); i { + switch v := v.(*UserReceipt); i { case 0: return &v.state case 1: @@ -24638,7 +24728,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Reaction); i { + switch v := v.(*StatusPSA); i { case 0: return &v.state case 1: @@ -24650,7 +24740,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PollUpdate); i { + switch v := v.(*Reaction); i { case 0: return &v.state case 1: @@ -24662,7 +24752,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PollAdditionalMetadata); i { + switch v := v.(*PollUpdate); i { case 0: return &v.state case 1: @@ -24674,7 +24764,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PhotoChange); i { + switch v := v.(*PollAdditionalMetadata); i { case 0: return &v.state case 1: @@ -24686,7 +24776,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PaymentInfo); i { + switch v := v.(*PhotoChange); i { case 0: return &v.state case 1: @@ -24698,7 +24788,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotificationMessageInfo); i { + switch v := v.(*PaymentInfo); i { case 0: return &v.state case 1: @@ -24710,7 +24800,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MediaData); i { + switch v := v.(*NotificationMessageInfo); i { case 0: return &v.state case 1: @@ -24722,7 +24812,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KeepInChat); i { + switch v := v.(*MediaData); i { case 0: return &v.state case 1: @@ -24734,7 +24824,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NoiseCertificate); i { + switch v := v.(*KeepInChat); i { case 0: return &v.state case 1: @@ -24746,7 +24836,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CertChain); i { + switch v := v.(*NoiseCertificate); i { case 0: return &v.state case 1: @@ -24758,7 +24848,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceProps_HistorySyncConfig); i { + switch v := v.(*CertChain); i { case 0: return &v.state case 1: @@ -24770,7 +24860,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceProps_AppVersion); i { + switch v := v.(*DeviceProps_HistorySyncConfig); i { case 0: return &v.state case 1: @@ -24782,7 +24872,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeerDataOperationRequestResponseMessage_PeerDataOperationResult); i { + switch v := v.(*DeviceProps_AppVersion); i { case 0: return &v.state case 1: @@ -24794,7 +24884,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse); i { + switch v := v.(*PeerDataOperationRequestResponseMessage_PeerDataOperationResult); i { case 0: return &v.state case 1: @@ -24806,7 +24896,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeerDataOperationRequestMessage_RequestUrlPreview); i { + switch v := v.(*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse); i { case 0: return &v.state case 1: @@ -24818,7 +24908,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeerDataOperationRequestMessage_RequestStickerReupload); i { + switch v := v.(*PeerDataOperationRequestMessage_RequestUrlPreview); i { case 0: return &v.state case 1: @@ -24830,7 +24920,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListResponseMessage_SingleSelectReply); i { + switch v := v.(*PeerDataOperationRequestMessage_RequestStickerReupload); i { case 0: return &v.state case 1: @@ -24842,7 +24932,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListMessage_Section); i { + switch v := v.(*ListResponseMessage_SingleSelectReply); i { case 0: return &v.state case 1: @@ -24854,7 +24944,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListMessage_Row); i { + switch v := v.(*ListMessage_Section); i { case 0: return &v.state case 1: @@ -24866,7 +24956,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListMessage_Product); i { + switch v := v.(*ListMessage_Row); i { case 0: return &v.state case 1: @@ -24878,7 +24968,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListMessage_ProductSection); i { + switch v := v.(*ListMessage_Product); i { case 0: return &v.state case 1: @@ -24890,7 +24980,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListMessage_ProductListInfo); i { + switch v := v.(*ListMessage_ProductSection); i { case 0: return &v.state case 1: @@ -24902,7 +24992,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListMessage_ProductListHeaderImage); i { + switch v := v.(*ListMessage_ProductListInfo); i { case 0: return &v.state case 1: @@ -24914,7 +25004,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InteractiveResponseMessage_NativeFlowResponseMessage); i { + switch v := v.(*ListMessage_ProductListHeaderImage); i { case 0: return &v.state case 1: @@ -24926,7 +25016,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InteractiveResponseMessage_Body); i { + switch v := v.(*InteractiveResponseMessage_NativeFlowResponseMessage); i { case 0: return &v.state case 1: @@ -24938,7 +25028,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InteractiveMessage_ShopMessage); i { + switch v := v.(*InteractiveResponseMessage_Body); i { case 0: return &v.state case 1: @@ -24950,7 +25040,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InteractiveMessage_NativeFlowMessage); i { + switch v := v.(*InteractiveMessage_ShopMessage); i { case 0: return &v.state case 1: @@ -24962,7 +25052,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InteractiveMessage_Header); i { + switch v := v.(*InteractiveMessage_NativeFlowMessage); i { case 0: return &v.state case 1: @@ -24974,7 +25064,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InteractiveMessage_Footer); i { + switch v := v.(*InteractiveMessage_Header); i { case 0: return &v.state case 1: @@ -24986,7 +25076,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InteractiveMessage_CollectionMessage); i { + switch v := v.(*InteractiveMessage_Footer); i { case 0: return &v.state case 1: @@ -24998,7 +25088,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InteractiveMessage_Body); i { + switch v := v.(*InteractiveMessage_CollectionMessage); i { case 0: return &v.state case 1: @@ -25010,7 +25100,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InteractiveMessage_NativeFlowMessage_NativeFlowButton); i { + switch v := v.(*InteractiveMessage_Body); i { case 0: return &v.state case 1: @@ -25022,7 +25112,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HighlyStructuredMessage_HSMLocalizableParameter); i { + switch v := v.(*InteractiveMessage_NativeFlowMessage_NativeFlowButton); i { case 0: return &v.state case 1: @@ -25034,7 +25124,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime); i { + switch v := v.(*HighlyStructuredMessage_HSMLocalizableParameter); i { case 0: return &v.state case 1: @@ -25046,7 +25136,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency); i { + switch v := v.(*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime); i { case 0: return &v.state case 1: @@ -25058,7 +25148,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnixEpoch); i { + switch v := v.(*HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency); i { case 0: return &v.state case 1: @@ -25070,7 +25160,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent); i { + switch v := v.(*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnixEpoch); i { case 0: return &v.state case 1: @@ -25082,7 +25172,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ButtonsMessage_Button); i { + switch v := v.(*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent); i { case 0: return &v.state case 1: @@ -25094,7 +25184,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ButtonsMessage_Button_NativeFlowInfo); i { + switch v := v.(*ButtonsMessage_Button); i { case 0: return &v.state case 1: @@ -25106,7 +25196,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ButtonsMessage_Button_ButtonText); i { + switch v := v.(*ButtonsMessage_Button_NativeFlowInfo); i { case 0: return &v.state case 1: @@ -25118,7 +25208,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HydratedTemplateButton_HydratedURLButton); i { + switch v := v.(*ButtonsMessage_Button_ButtonText); i { case 0: return &v.state case 1: @@ -25130,7 +25220,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HydratedTemplateButton_HydratedQuickReplyButton); i { + switch v := v.(*HydratedTemplateButton_HydratedURLButton); i { case 0: return &v.state case 1: @@ -25142,7 +25232,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HydratedTemplateButton_HydratedCallButton); i { + switch v := v.(*HydratedTemplateButton_HydratedQuickReplyButton); i { case 0: return &v.state case 1: @@ -25154,7 +25244,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContextInfo_ExternalAdReplyInfo); i { + switch v := v.(*HydratedTemplateButton_HydratedCallButton); i { case 0: return &v.state case 1: @@ -25166,7 +25256,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContextInfo_AdReplyInfo); i { + switch v := v.(*ContextInfo_ExternalAdReplyInfo); i { case 0: return &v.state case 1: @@ -25178,7 +25268,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TemplateButton_URLButton); i { + switch v := v.(*ContextInfo_AdReplyInfo); i { case 0: return &v.state case 1: @@ -25190,7 +25280,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[199].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TemplateButton_QuickReplyButton); i { + switch v := v.(*TemplateButton_URLButton); i { case 0: return &v.state case 1: @@ -25202,7 +25292,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[200].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TemplateButton_CallButton); i { + switch v := v.(*TemplateButton_QuickReplyButton); i { case 0: return &v.state case 1: @@ -25214,7 +25304,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[201].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PaymentBackground_MediaData); i { + switch v := v.(*TemplateButton_CallButton); i { case 0: return &v.state case 1: @@ -25226,7 +25316,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[202].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TemplateMessage_HydratedFourRowTemplate); i { + switch v := v.(*PaymentBackground_MediaData); i { case 0: return &v.state case 1: @@ -25238,7 +25328,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[203].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TemplateMessage_FourRowTemplate); i { + switch v := v.(*TemplateMessage_HydratedFourRowTemplate); i { case 0: return &v.state case 1: @@ -25250,7 +25340,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[204].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProductMessage_ProductSnapshot); i { + switch v := v.(*TemplateMessage_FourRowTemplate); i { case 0: return &v.state case 1: @@ -25262,7 +25352,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[205].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProductMessage_CatalogSnapshot); i { + switch v := v.(*ProductMessage_ProductSnapshot); i { case 0: return &v.state case 1: @@ -25274,7 +25364,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[206].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PollCreationMessage_Option); i { + switch v := v.(*ProductMessage_CatalogSnapshot); i { case 0: return &v.state case 1: @@ -25286,7 +25376,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[207].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgOpaqueData_PollOption); i { + switch v := v.(*PollCreationMessage_Option); i { case 0: return &v.state case 1: @@ -25298,7 +25388,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[208].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifiedNameCertificate_Details); i { + switch v := v.(*MsgOpaqueData_PollOption); i { case 0: return &v.state case 1: @@ -25310,7 +25400,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[209].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientPayload_WebInfo); i { + switch v := v.(*VerifiedNameCertificate_Details); i { case 0: return &v.state case 1: @@ -25322,7 +25412,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[210].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientPayload_UserAgent); i { + switch v := v.(*ClientPayload_WebInfo); i { case 0: return &v.state case 1: @@ -25334,7 +25424,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[211].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientPayload_DevicePairingRegistrationData); i { + switch v := v.(*ClientPayload_UserAgent); i { case 0: return &v.state case 1: @@ -25346,7 +25436,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[212].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientPayload_DNSSource); i { + switch v := v.(*ClientPayload_DevicePairingRegistrationData); i { case 0: return &v.state case 1: @@ -25358,7 +25448,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[213].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientPayload_WebInfo_WebdPayload); i { + switch v := v.(*ClientPayload_DNSSource); i { case 0: return &v.state case 1: @@ -25370,7 +25460,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[214].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientPayload_UserAgent_AppVersion); i { + switch v := v.(*ClientPayload_WebInfo_WebdPayload); i { case 0: return &v.state case 1: @@ -25382,7 +25472,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[215].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NoiseCertificate_Details); i { + switch v := v.(*ClientPayload_UserAgent_AppVersion); i { case 0: return &v.state case 1: @@ -25394,7 +25484,7 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[216].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CertChain_NoiseCertificate); i { + switch v := v.(*NoiseCertificate_Details); i { case 0: return &v.state case 1: @@ -25406,6 +25496,18 @@ func file_binary_proto_def_proto_init() { } } file_binary_proto_def_proto_msgTypes[217].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CertChain_NoiseCertificate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_binary_proto_def_proto_msgTypes[218].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CertChain_NoiseCertificate_Details); i { case 0: return &v.state @@ -25454,28 +25556,28 @@ func file_binary_proto_def_proto_init() { (*TemplateMessage_HydratedFourRowTemplate_)(nil), (*TemplateMessage_InteractiveMessageTemplate)(nil), } - file_binary_proto_def_proto_msgTypes[180].OneofWrappers = []interface{}{ + file_binary_proto_def_proto_msgTypes[181].OneofWrappers = []interface{}{ (*InteractiveMessage_Header_DocumentMessage)(nil), (*InteractiveMessage_Header_ImageMessage)(nil), (*InteractiveMessage_Header_JpegThumbnail)(nil), (*InteractiveMessage_Header_VideoMessage)(nil), } - file_binary_proto_def_proto_msgTypes[185].OneofWrappers = []interface{}{ + file_binary_proto_def_proto_msgTypes[186].OneofWrappers = []interface{}{ (*HighlyStructuredMessage_HSMLocalizableParameter_Currency)(nil), (*HighlyStructuredMessage_HSMLocalizableParameter_DateTime)(nil), } - file_binary_proto_def_proto_msgTypes[186].OneofWrappers = []interface{}{ + file_binary_proto_def_proto_msgTypes[187].OneofWrappers = []interface{}{ (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_Component)(nil), (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_UnixEpoch)(nil), } - file_binary_proto_def_proto_msgTypes[202].OneofWrappers = []interface{}{ + file_binary_proto_def_proto_msgTypes[203].OneofWrappers = []interface{}{ (*TemplateMessage_HydratedFourRowTemplate_DocumentMessage)(nil), (*TemplateMessage_HydratedFourRowTemplate_HydratedTitleText)(nil), (*TemplateMessage_HydratedFourRowTemplate_ImageMessage)(nil), (*TemplateMessage_HydratedFourRowTemplate_VideoMessage)(nil), (*TemplateMessage_HydratedFourRowTemplate_LocationMessage)(nil), } - file_binary_proto_def_proto_msgTypes[203].OneofWrappers = []interface{}{ + file_binary_proto_def_proto_msgTypes[204].OneofWrappers = []interface{}{ (*TemplateMessage_FourRowTemplate_DocumentMessage)(nil), (*TemplateMessage_FourRowTemplate_HighlyStructuredMessage)(nil), (*TemplateMessage_FourRowTemplate_ImageMessage)(nil), @@ -25488,7 +25590,7 @@ func file_binary_proto_def_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_binary_proto_def_proto_rawDesc, NumEnums: 54, - NumMessages: 218, + NumMessages: 219, NumExtensions: 0, NumServices: 0, }, diff --git a/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.raw b/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.raw index 46beb17f..52c96950 100644 Binary files a/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.raw and b/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.raw differ diff --git a/vendor/go.mau.fi/whatsmeow/binary/proto/def.proto b/vendor/go.mau.fi/whatsmeow/binary/proto/def.proto index 5311aefb..b72ab79c 100644 --- a/vendor/go.mau.fi/whatsmeow/binary/proto/def.proto +++ b/vendor/go.mau.fi/whatsmeow/binary/proto/def.proto @@ -807,6 +807,7 @@ message ContextInfo { optional string parentGroupJid = 35; optional string trustBannerType = 37; optional uint32 trustBannerAction = 38; + optional bool isSampled = 39; } message ActionLink { @@ -926,6 +927,7 @@ message Message { optional EncReactionMessage encReactionMessage = 56; optional FutureProofMessage editedMessage = 58; optional FutureProofMessage viewOnceMessageV2Extension = 59; + optional PollCreationMessage pollCreationMessageV2 = 60; } message MessageContextInfo { @@ -1360,6 +1362,7 @@ message MsgOpaqueData { optional int64 senderTimestampMs = 22; optional string pollUpdateParentKey = 23; optional PollEncValue encPollVote = 24; + optional bool isSentCagPollCreation = 28; optional string encReactionTargetMessageKey = 25; optional bytes encReactionEncPayload = 26; optional bytes encReactionEncIv = 27; @@ -1495,6 +1498,7 @@ message SyncActionValue { optional RemoveRecentStickerAction removeRecentStickerAction = 34; optional ChatAssignmentAction chatAssignment = 35; optional ChatAssignmentOpenedStatusAction chatAssignmentOpenedStatus = 36; + optional PnForLidChatAction pnForLidChatAction = 37; } message UserStatusMuteAction { @@ -1575,6 +1579,10 @@ message PrimaryFeature { repeated string flags = 1; } +message PnForLidChatAction { + optional string pnJid = 1; +} + message PinAction { optional bool pinned = 1; } @@ -2249,6 +2257,7 @@ message PollUpdate { optional MessageKey pollUpdateMessageKey = 1; optional PollVoteMessage vote = 2; optional int64 senderTimestampMs = 3; + optional int64 serverTimestampMs = 4; } message PollAdditionalMetadata { diff --git a/vendor/go.mau.fi/whatsmeow/broadcast.go b/vendor/go.mau.fi/whatsmeow/broadcast.go index c1260a9c..a61ccfb6 100644 --- a/vendor/go.mau.fi/whatsmeow/broadcast.go +++ b/vendor/go.mau.fi/whatsmeow/broadcast.go @@ -25,16 +25,20 @@ func (cli *Client) getBroadcastListParticipants(jid types.JID) ([]types.JID, err if err != nil { return nil, err } + ownID := cli.getOwnID().ToNonAD() + if ownID.IsEmpty() { + return nil, ErrNotLoggedIn + } var hasSelf bool for _, participant := range list { - if participant.User == cli.Store.ID.User { + if participant.User == ownID.User { hasSelf = true break } } if !hasSelf { - list = append(list, cli.Store.ID.ToNonAD()) + list = append(list, ownID) } return list, nil } diff --git a/vendor/go.mau.fi/whatsmeow/client.go b/vendor/go.mau.fi/whatsmeow/client.go index 4a862bd3..3f832c94 100644 --- a/vendor/go.mau.fi/whatsmeow/client.go +++ b/vendor/go.mau.fi/whatsmeow/client.go @@ -114,11 +114,18 @@ type Client struct { // If it returns false, the accepting will be cancelled and the retry receipt will be ignored. PreRetryCallback func(receipt *events.Receipt, id types.MessageID, retryCount int, msg *waProto.Message) bool + // PrePairCallback is called before pairing is completed. If it returns false, the pairing will be cancelled and + // the client will disconnect. + PrePairCallback func(jid types.JID, platform, businessName string) bool + // Should untrusted identity errors be handled automatically? If true, the stored identity and existing signal // sessions will be removed on untrusted identity errors, and an events.IdentityChange will be dispatched. // If false, decrypting a message from untrusted devices will fail. AutoTrustIdentity bool + // Should SubscribePresence return an error if no privacy token is stored for the user? + ErrorOnSubscribePresenceWithoutToken bool + uniqueID string idCounter uint32 @@ -250,6 +257,14 @@ func (cli *Client) closeSocketWaitChan() { cli.socketLock.Unlock() } +func (cli *Client) getOwnID() types.JID { + id := cli.Store.ID + if id == nil { + return types.EmptyJID + } + return *id +} + func (cli *Client) WaitForConnection(timeout time.Duration) bool { timeoutChan := time.After(timeout) cli.socketLock.RLock() @@ -392,7 +407,8 @@ func (cli *Client) unlockedDisconnect() { // Note that this will not emit any events. The LoggedOut event is only used for external logouts // (triggered by the user from the main device or by WhatsApp servers). func (cli *Client) Logout() error { - if cli.Store.ID == nil { + ownID := cli.getOwnID() + if ownID.IsEmpty() { return ErrNotLoggedIn } _, err := cli.sendIQ(infoQuery{ @@ -402,7 +418,7 @@ func (cli *Client) Logout() error { Content: []waBinary.Node{{ Tag: "remove-companion-device", Attrs: waBinary.Attrs{ - "jid": *cli.Store.ID, + "jid": ownID, "reason": "user_initiated", }, }}, @@ -600,7 +616,10 @@ func (cli *Client) ParseWebMessage(chatJID types.JID, webMsg *waProto.WebMessage } var err error if info.IsFromMe { - info.Sender = cli.Store.ID.ToNonAD() + info.Sender = cli.getOwnID().ToNonAD() + if info.Sender.IsEmpty() { + return nil, ErrNotLoggedIn + } } else if chatJID.Server == types.DefaultUserServer { info.Sender = chatJID } else if webMsg.GetParticipant() != "" { diff --git a/vendor/go.mau.fi/whatsmeow/connectionevents.go b/vendor/go.mau.fi/whatsmeow/connectionevents.go index 54fafccf..5d0835fa 100644 --- a/vendor/go.mau.fi/whatsmeow/connectionevents.go +++ b/vendor/go.mau.fi/whatsmeow/connectionevents.go @@ -89,10 +89,9 @@ func (cli *Client) handleConnectFailure(node *waBinary.Node) { } } else if reason == events.ConnectFailureTempBanned { cli.Log.Warnf("Temporary ban connect failure: %s", node.XMLString()) - expiryTime := ag.UnixTime("expire") go cli.dispatchEvent(&events.TemporaryBan{ Code: events.TempBanReason(ag.Int("code")), - Expire: expiryTime, + Expire: time.Duration(ag.Int("expire")) * time.Second, }) } else if reason == events.ConnectFailureClientOutdated { cli.Log.Errorf("Client outdated (405) connect failure") diff --git a/vendor/go.mau.fi/whatsmeow/download.go b/vendor/go.mau.fi/whatsmeow/download.go index 77b392a5..99fd3648 100644 --- a/vendor/go.mau.fi/whatsmeow/download.go +++ b/vendor/go.mau.fi/whatsmeow/download.go @@ -70,6 +70,7 @@ var ( _ DownloadableMessage = (*waProto.VideoMessage)(nil) _ DownloadableMessage = (*waProto.DocumentMessage)(nil) _ DownloadableMessage = (*waProto.StickerMessage)(nil) + _ DownloadableMessage = (*waProto.StickerMetadata)(nil) _ DownloadableMessage = (*waProto.HistorySyncNotification)(nil) _ DownloadableMessage = (*waProto.ExternalBlobReference)(nil) _ DownloadableThumbnail = (*waProto.ExtendedTextMessage)(nil) @@ -96,6 +97,7 @@ var classToMediaType = map[protoreflect.Name]MediaType{ "VideoMessage": MediaVideo, "DocumentMessage": MediaDocument, "StickerMessage": MediaImage, + "StickerMetadata": MediaImage, "HistorySyncNotification": MediaHistory, "ExternalBlobReference": MediaAppState, diff --git a/vendor/go.mau.fi/whatsmeow/errors.go b/vendor/go.mau.fi/whatsmeow/errors.go index 21bc67e0..62227f3b 100644 --- a/vendor/go.mau.fi/whatsmeow/errors.go +++ b/vendor/go.mau.fi/whatsmeow/errors.go @@ -27,8 +27,45 @@ var ( ErrQRStoreContainsID = errors.New("GetQRChannel can only be called when there's no user ID in the client's Store") ErrNoPushName = errors.New("can't send presence without PushName set") + + ErrNoPrivacyToken = errors.New("no privacy token stored") +) + +// Errors that happen while confirming device pairing +var ( + ErrPairInvalidDeviceIdentityHMAC = errors.New("invalid device identity HMAC in pair success message") + ErrPairInvalidDeviceSignature = errors.New("invalid device signature in pair success message") + ErrPairRejectedLocally = errors.New("local PrePairCallback rejected pairing") ) +// PairProtoError is included in an events.PairError if the pairing failed due to a protobuf error. +type PairProtoError struct { + Message string + ProtoErr error +} + +func (err *PairProtoError) Error() string { + return fmt.Sprintf("%s: %v", err.Message, err.ProtoErr) +} + +func (err *PairProtoError) Unwrap() error { + return err.ProtoErr +} + +// PairDatabaseError is included in an events.PairError if the pairing failed due to being unable to save the credentials to the device store. +type PairDatabaseError struct { + Message string + DBErr error +} + +func (err *PairDatabaseError) Error() string { + return fmt.Sprintf("%s: %v", err.Message, err.DBErr) +} + +func (err *PairDatabaseError) Unwrap() error { + return err.DBErr +} + var ( // ErrProfilePictureUnauthorized is returned by GetProfilePictureInfo when trying to get the profile picture of a user // whose privacy settings prevent you from seeing their profile picture (status code 401). @@ -65,6 +102,7 @@ var ( ErrBroadcastListUnsupported = errors.New("sending to non-status broadcast lists is not yet supported") ErrUnknownServer = errors.New("can't send message to unknown server") ErrRecipientADJID = errors.New("message recipient must be normal (non-AD) JID") + ErrServerReturnedError = errors.New("server returned error") ) // Some errors that Client.Download can return @@ -118,12 +156,18 @@ type IQError struct { // Common errors returned by info queries for use with errors.Is var ( - ErrIQBadRequest error = &IQError{Code: 400, Text: "bad-request"} - ErrIQNotAuthorized error = &IQError{Code: 401, Text: "not-authorized"} - ErrIQForbidden error = &IQError{Code: 403, Text: "forbidden"} - ErrIQNotFound error = &IQError{Code: 404, Text: "item-not-found"} - ErrIQNotAcceptable error = &IQError{Code: 406, Text: "not-acceptable"} - ErrIQGone error = &IQError{Code: 410, Text: "gone"} + ErrIQBadRequest error = &IQError{Code: 400, Text: "bad-request"} + ErrIQNotAuthorized error = &IQError{Code: 401, Text: "not-authorized"} + ErrIQForbidden error = &IQError{Code: 403, Text: "forbidden"} + ErrIQNotFound error = &IQError{Code: 404, Text: "item-not-found"} + ErrIQNotAllowed error = &IQError{Code: 405, Text: "not-allowed"} + ErrIQNotAcceptable error = &IQError{Code: 406, Text: "not-acceptable"} + ErrIQGone error = &IQError{Code: 410, Text: "gone"} + ErrIQResourceLimit error = &IQError{Code: 419, Text: "resource-limit"} + ErrIQLocked error = &IQError{Code: 423, Text: "locked"} + ErrIQInternalServerError error = &IQError{Code: 500, Text: "internal-server-error"} + ErrIQServiceUnavailable error = &IQError{Code: 503, Text: "service-unavailable"} + ErrIQPartialServerError error = &IQError{Code: 530, Text: "partial-server-error"} ) func parseIQError(node *waBinary.Node) error { diff --git a/vendor/go.mau.fi/whatsmeow/group.go b/vendor/go.mau.fi/whatsmeow/group.go index a2aa66f4..c771b5a2 100644 --- a/vendor/go.mau.fi/whatsmeow/group.go +++ b/vendor/go.mau.fi/whatsmeow/group.go @@ -29,31 +29,58 @@ func (cli *Client) sendGroupIQ(ctx context.Context, iqType infoQueryType, jid ty }) } +// ReqCreateGroup contains the request data for CreateGroup. +type ReqCreateGroup struct { + // Group names are limited to 25 characters. A longer group name will cause a 406 not acceptable error. + Name string + // You don't need to include your own JID in the participants array, the WhatsApp servers will add it implicitly. + Participants []types.JID + // A create key can be provided to deduplicate the group create notification that will be triggered + // when the group is created. If provided, the JoinedGroup event will contain the same key. + CreateKey types.MessageID + // Set IsParent to true to create a community instead of a normal group. + // When creating a community, the linked announcement group will be created automatically by the server. + types.GroupParent + // Set LinkedParentJID to create a group inside a community. + types.GroupLinkedParent +} + // CreateGroup creates a group on WhatsApp with the given name and participants. // -// You don't need to include your own JID in the participants array, the WhatsApp servers will add it implicitly. -// -// Group names are limited to 25 characters. A longer group name will cause a 406 not acceptable error. -// -// Optionally, a create key can be provided to deduplicate the group create notification that will be triggered -// when the group is created. If provided, the JoinedGroup event will contain the same key. -func (cli *Client) CreateGroup(name string, participants []types.JID, createKey types.MessageID) (*types.GroupInfo, error) { - participantNodes := make([]waBinary.Node, len(participants)) - for i, participant := range participants { +// See ReqCreateGroup for parameters. +func (cli *Client) CreateGroup(req ReqCreateGroup) (*types.GroupInfo, error) { + participantNodes := make([]waBinary.Node, len(req.Participants), len(req.Participants)+1) + for i, participant := range req.Participants { participantNodes[i] = waBinary.Node{ Tag: "participant", Attrs: waBinary.Attrs{"jid": participant}, } } - if createKey == "" { - createKey = GenerateMessageID() + if req.CreateKey == "" { + req.CreateKey = GenerateMessageID() + } + if req.IsParent { + if req.DefaultMembershipApprovalMode == "" { + req.DefaultMembershipApprovalMode = "request_required" + } + participantNodes = append(participantNodes, waBinary.Node{ + Tag: "parent", + Attrs: waBinary.Attrs{ + "default_membership_approval_mode": req.DefaultMembershipApprovalMode, + }, + }) + } else if !req.LinkedParentJID.IsEmpty() { + participantNodes = append(participantNodes, waBinary.Node{ + Tag: "linked_parent", + Attrs: waBinary.Attrs{"jid": req.LinkedParentJID}, + }) } // WhatsApp web doesn't seem to include the static prefix for these - key := strings.TrimPrefix(createKey, "3EB0") + key := strings.TrimPrefix(req.CreateKey, "3EB0") resp, err := cli.sendGroupIQ(context.TODO(), iqSet, types.GroupServerJID, waBinary.Node{ Tag: "create", Attrs: waBinary.Attrs{ - "subject": name, + "subject": req.Name, "key": key, }, Content: participantNodes, @@ -68,6 +95,37 @@ func (cli *Client) CreateGroup(name string, participants []types.JID, createKey return cli.parseGroupNode(&groupNode) } +// UnlinkGroup removes a child group from a parent community. +func (cli *Client) UnlinkGroup(parent, child types.JID) error { + _, err := cli.sendGroupIQ(context.TODO(), iqSet, parent, waBinary.Node{ + Tag: "unlink", + Attrs: waBinary.Attrs{"unlink_type": types.GroupLinkChangeTypeSub}, + Content: []waBinary.Node{{ + Tag: "group", + Attrs: waBinary.Attrs{"jid": child}, + }}, + }) + return err +} + +// LinkGroup adds an existing group as a child group in a community. +// +// To create a new group within a community, set LinkedParentJID in the CreateGroup request. +func (cli *Client) LinkGroup(parent, child types.JID) error { + _, err := cli.sendGroupIQ(context.TODO(), iqSet, parent, waBinary.Node{ + Tag: "links", + Content: []waBinary.Node{{ + Tag: "link", + Attrs: waBinary.Attrs{"link_type": types.GroupLinkChangeTypeSub}, + Content: []waBinary.Node{{ + Tag: "group", + Attrs: waBinary.Attrs{"jid": child}, + }}, + }}, + }) + return err +} + // LeaveGroup leaves the specified group on WhatsApp. func (cli *Client) LeaveGroup(jid types.JID) error { _, err := cli.sendGroupIQ(context.TODO(), iqSet, types.GroupServerJID, waBinary.Node{ @@ -357,6 +415,42 @@ func (cli *Client) GetJoinedGroups() ([]*types.GroupInfo, error) { return infos, nil } +// GetSubGroups gets the subgroups of the given community. +func (cli *Client) GetSubGroups(community types.JID) ([]*types.GroupLinkTarget, error) { + res, err := cli.sendGroupIQ(context.TODO(), iqGet, community, waBinary.Node{Tag: "sub_groups"}) + if err != nil { + return nil, err + } + groups, ok := res.GetOptionalChildByTag("sub_groups") + if !ok { + return nil, &ElementMissingError{Tag: "sub_groups", In: "response to subgroups query"} + } + var parsedGroups []*types.GroupLinkTarget + for _, child := range groups.GetChildren() { + if child.Tag == "group" { + parsedGroup, err := parseGroupLinkTargetNode(&child) + if err != nil { + return parsedGroups, fmt.Errorf("failed to parse group in subgroups list: %w", err) + } + parsedGroups = append(parsedGroups, &parsedGroup) + } + } + return parsedGroups, nil +} + +// GetLinkedGroupsParticipants gets all the participants in the groups of the given community. +func (cli *Client) GetLinkedGroupsParticipants(community types.JID) ([]types.JID, error) { + res, err := cli.sendGroupIQ(context.TODO(), iqGet, community, waBinary.Node{Tag: "linked_groups_participants"}) + if err != nil { + return nil, err + } + participants, ok := res.GetOptionalChildByTag("linked_groups_participants") + if !ok { + return nil, &ElementMissingError{Tag: "linked_groups_participants", In: "response to community participants query"} + } + return parseParticipantList(&participants), nil +} + // GetGroupInfo requests basic info about a group chat from the WhatsApp servers. func (cli *Client) GetGroupInfo(jid types.JID) (*types.GroupInfo, error) { return cli.getGroupInfo(context.TODO(), jid, true) @@ -433,6 +527,17 @@ func (cli *Client) parseGroupNode(groupNode *waBinary.Node) (*types.GroupInfo, e IsSuperAdmin: pcpType == "superadmin", JID: childAG.JID("jid"), } + if errorCode := childAG.OptionalInt("error"); errorCode != 0 { + participant.Error = errorCode + addRequest, ok := child.GetOptionalChildByTag("add_request") + if ok { + addAG := addRequest.AttrGetter() + participant.AddRequest = &types.GroupParticipantAddRequest{ + Code: addAG.String("code"), + Expiration: addAG.UnixTime("expiration"), + } + } + } group.Participants = append(group.Participants, participant) case "description": body, bodyOK := child.GetOptionalChildByTag("body") @@ -453,6 +558,13 @@ func (cli *Client) parseGroupNode(groupNode *waBinary.Node) (*types.GroupInfo, e case "member_add_mode": modeBytes, _ := child.Content.([]byte) group.MemberAddMode = types.GroupMemberAddMode(modeBytes) + case "linked_parent": + group.LinkedParentJID = childAG.JID("jid") + case "default_sub_group": + group.IsDefaultSubGroup = true + case "parent": + group.IsParent = true + group.DefaultMembershipApprovalMode = childAG.OptionalString("default_membership_approval_mode") default: cli.Log.Debugf("Unknown element in group node %s: %s", group.JID.String(), child.XMLString()) } @@ -464,6 +576,24 @@ func (cli *Client) parseGroupNode(groupNode *waBinary.Node) (*types.GroupInfo, e return &group, ag.Error() } +func parseGroupLinkTargetNode(groupNode *waBinary.Node) (types.GroupLinkTarget, error) { + ag := groupNode.AttrGetter() + jidKey := ag.OptionalJIDOrEmpty("jid") + if jidKey.IsEmpty() { + jidKey = types.NewJID(ag.String("id"), types.GroupServer) + } + return types.GroupLinkTarget{ + JID: jidKey, + GroupName: types.GroupName{ + Name: ag.String("subject"), + NameSetAt: ag.UnixTime("s_t"), + }, + GroupIsDefaultSub: types.GroupIsDefaultSub{ + IsDefaultSubGroup: groupNode.GetChildByTag("default_sub_group").Tag == "default_sub_group", + }, + }, ag.Error() +} + func parseParticipantList(node *waBinary.Node) (participants []types.JID) { children := node.GetChildren() participants = make([]types.JID, 0, len(children)) @@ -526,6 +656,8 @@ func (cli *Client) parseGroupChange(node *waBinary.Node) (*events.GroupInfo, err evt.Locked = &types.GroupLocked{IsLocked: true} case "unlocked": evt.Locked = &types.GroupLocked{IsLocked: false} + case "delete": + evt.Delete = &types.GroupDelete{Deleted: true, DeleteReason: cag.String("reason")} case "subject": evt.Name = &types.GroupName{ Name: cag.String("subject"), @@ -575,6 +707,33 @@ func (cli *Client) parseGroupChange(node *waBinary.Node) (*events.GroupInfo, err } case "not_ephemeral": evt.Ephemeral = &types.GroupEphemeral{IsEphemeral: false} + case "link": + evt.Link = &types.GroupLinkChange{ + Type: types.GroupLinkChangeType(cag.String("link_type")), + } + groupNode, ok := child.GetOptionalChildByTag("group") + if !ok { + return nil, &ElementMissingError{Tag: "group", In: "group link"} + } + var err error + evt.Link.Group, err = parseGroupLinkTargetNode(&groupNode) + if err != nil { + return nil, fmt.Errorf("failed to parse group link node in group change: %w", err) + } + case "unlink": + evt.Unlink = &types.GroupLinkChange{ + Type: types.GroupLinkChangeType(cag.String("unlink_type")), + UnlinkReason: types.GroupUnlinkReason(cag.String("unlink_reason")), + } + groupNode, ok := child.GetOptionalChildByTag("group") + if !ok { + return nil, &ElementMissingError{Tag: "group", In: "group unlink"} + } + var err error + evt.Unlink.Group, err = parseGroupLinkTargetNode(&groupNode) + if err != nil { + return nil, fmt.Errorf("failed to parse group unlink node in group change: %w", err) + } default: evt.UnknownChanges = append(evt.UnknownChanges, &child) } diff --git a/vendor/go.mau.fi/whatsmeow/mediaretry.go b/vendor/go.mau.fi/whatsmeow/mediaretry.go index e6e1fa8b..167df5f2 100644 --- a/vendor/go.mau.fi/whatsmeow/mediaretry.go +++ b/vendor/go.mau.fi/whatsmeow/mediaretry.go @@ -82,6 +82,10 @@ func (cli *Client) SendMediaRetryReceipt(message *types.MessageInfo, mediaKey [] if err != nil { return fmt.Errorf("failed to prepare encrypted retry receipt: %w", err) } + ownID := cli.getOwnID().ToNonAD() + if ownID.IsEmpty() { + return ErrNotLoggedIn + } rmrAttrs := waBinary.Attrs{ "jid": message.Chat, @@ -100,7 +104,7 @@ func (cli *Client) SendMediaRetryReceipt(message *types.MessageInfo, mediaKey [] Tag: "receipt", Attrs: waBinary.Attrs{ "id": message.ID, - "to": cli.Store.ID.ToNonAD(), + "to": ownID, "type": "server-error", }, Content: []waBinary.Node{ diff --git a/vendor/go.mau.fi/whatsmeow/message.go b/vendor/go.mau.fi/whatsmeow/message.go index 6c5ee41d..2c6c2db2 100644 --- a/vendor/go.mau.fi/whatsmeow/message.go +++ b/vendor/go.mau.fi/whatsmeow/message.go @@ -51,8 +51,8 @@ func (cli *Client) handleEncryptedMessage(node *waBinary.Node) { } func (cli *Client) parseMessageSource(node *waBinary.Node, requireParticipant bool) (source types.MessageSource, err error) { - clientID := cli.Store.ID - if clientID == nil { + clientID := cli.getOwnID() + if clientID.IsEmpty() { err = ErrNotLoggedIn return } @@ -406,18 +406,33 @@ func (cli *Client) processProtocolParts(info *types.MessageInfo, msg *waProto.Me func (cli *Client) storeHistoricalMessageSecrets(conversations []*waProto.Conversation) { var secrets []store.MessageSecretInsert - me := cli.Store.ID.ToNonAD() + var privacyTokens []store.PrivacyToken + ownID := cli.getOwnID().ToNonAD() + if ownID.IsEmpty() { + return + } for _, conv := range conversations { chatJID, _ := types.ParseJID(conv.GetId()) if chatJID.IsEmpty() { continue } + if chatJID.Server == types.DefaultUserServer && conv.GetTcToken() != nil { + ts := conv.GetTcTokenSenderTimestamp() + if ts == 0 { + ts = conv.GetTcTokenTimestamp() + } + privacyTokens = append(privacyTokens, store.PrivacyToken{ + User: chatJID, + Token: conv.GetTcToken(), + Timestamp: time.Unix(int64(ts), 0), + }) + } for _, msg := range conv.GetMessages() { if secret := msg.GetMessage().GetMessageSecret(); secret != nil { var senderJID types.JID msgKey := msg.GetMessage().GetKey() if msgKey.GetFromMe() { - senderJID = me + senderJID = ownID } else if chatJID.Server == types.DefaultUserServer { senderJID = chatJID } else if msgKey.GetParticipant() != "" { @@ -446,6 +461,15 @@ func (cli *Client) storeHistoricalMessageSecrets(conversations []*waProto.Conver cli.Log.Infof("Stored %d message secret keys from history sync", len(secrets)) } } + if len(privacyTokens) > 0 { + cli.Log.Debugf("Storing %d privacy tokens in history sync", len(privacyTokens)) + err := cli.Store.PrivacyTokens.PutPrivacyTokens(privacyTokens...) + if err != nil { + cli.Log.Errorf("Failed to store privacy tokens in history sync: %v", err) + } else { + cli.Log.Infof("Stored %d privacy tokens from history sync", len(privacyTokens)) + } + } } func (cli *Client) handleDecryptedMessage(info *types.MessageInfo, msg *waProto.Message) { diff --git a/vendor/go.mau.fi/whatsmeow/msgsecret.go b/vendor/go.mau.fi/whatsmeow/msgsecret.go index 75e9b271..a4cbb17b 100644 --- a/vendor/go.mau.fi/whatsmeow/msgsecret.go +++ b/vendor/go.mau.fi/whatsmeow/msgsecret.go @@ -94,7 +94,10 @@ func (cli *Client) decryptMsgSecret(msg *events.Message, useCase MsgSecretType, } func (cli *Client) encryptMsgSecret(chat, origSender types.JID, origMsgID types.MessageID, useCase MsgSecretType, plaintext []byte) (ciphertext, iv []byte, err error) { - ownID := *cli.Store.ID + ownID := cli.getOwnID() + if ownID.IsEmpty() { + return nil, nil, ErrNotLoggedIn + } baseEncKey, err := cli.Store.MsgSecrets.GetMessageSecret(chat, origSender, origMsgID) if err != nil { @@ -208,7 +211,7 @@ func HashPollOptions(optionNames []string) [][]byte { // fmt.Println(":(", err) // return // } -// resp, err := cli.SendMessage(context.Background(), evt.Info.Chat, "", pollVoteMsg) +// resp, err := cli.SendMessage(context.Background(), evt.Info.Chat, pollVoteMsg) // } func (cli *Client) BuildPollVote(pollInfo *types.MessageInfo, optionNames []string) (*waProto.Message, error) { pollUpdate, err := cli.EncryptPollVote(pollInfo, &waProto.PollVoteMessage{ @@ -220,7 +223,7 @@ func (cli *Client) BuildPollVote(pollInfo *types.MessageInfo, optionNames []stri // BuildPollCreation builds a poll creation message with the given poll name, options and maximum number of selections. // The built message can be sent normally using Client.SendMessage. // -// resp, err := cli.SendMessage(context.Background(), chat, "", cli.BuildPollCreation("meow?", []string{"yes", "no"}, 1)) +// resp, err := cli.SendMessage(context.Background(), chat, cli.BuildPollCreation("meow?", []string{"yes", "no"}, 1)) func (cli *Client) BuildPollCreation(name string, optionNames []string, selectableOptionCount int) *waProto.Message { msgSecret := make([]byte, 32) _, err := rand.Read(msgSecret) diff --git a/vendor/go.mau.fi/whatsmeow/notification.go b/vendor/go.mau.fi/whatsmeow/notification.go index c55764d1..567722b5 100644 --- a/vendor/go.mau.fi/whatsmeow/notification.go +++ b/vendor/go.mau.fi/whatsmeow/notification.go @@ -11,6 +11,7 @@ import ( "go.mau.fi/whatsmeow/appstate" waBinary "go.mau.fi/whatsmeow/binary" + "go.mau.fi/whatsmeow/store" "go.mau.fi/whatsmeow/types" "go.mau.fi/whatsmeow/types/events" ) @@ -135,7 +136,12 @@ func (cli *Client) handleDeviceNotification(node *waBinary.Node) { func (cli *Client) handleOwnDevicesNotification(node *waBinary.Node) { cli.userDevicesCacheLock.Lock() defer cli.userDevicesCacheLock.Unlock() - cached, ok := cli.userDevicesCache[cli.Store.ID.ToNonAD()] + ownID := cli.getOwnID().ToNonAD() + if ownID.IsEmpty() { + cli.Log.Debugf("Ignoring own device change notification, session was deleted") + return + } + cached, ok := cli.userDevicesCache[ownID] if !ok { cli.Log.Debugf("Ignoring own device change notification, device list not cached") return @@ -153,10 +159,10 @@ func (cli *Client) handleOwnDevicesNotification(node *waBinary.Node) { newHash := participantListHashV2(newDeviceList) if newHash != expectedNewHash { cli.Log.Debugf("Received own device list change notification %s -> %s, but expected hash was %s", oldHash, newHash, expectedNewHash) - delete(cli.userDevicesCache, cli.Store.ID.ToNonAD()) + delete(cli.userDevicesCache, ownID) } else { cli.Log.Debugf("Received own device list change notification %s -> %s", oldHash, newHash) - cli.userDevicesCache[cli.Store.ID.ToNonAD()] = newDeviceList + cli.userDevicesCache[ownID] = newDeviceList } } @@ -173,6 +179,52 @@ func (cli *Client) handleAccountSyncNotification(node *waBinary.Node) { } } +func (cli *Client) handlePrivacyTokenNotification(node *waBinary.Node) { + ownID := cli.getOwnID().ToNonAD() + if ownID.IsEmpty() { + cli.Log.Debugf("Ignoring privacy token notification, session was deleted") + return + } + tokens := node.GetChildByTag("tokens") + if tokens.Tag != "tokens" { + cli.Log.Warnf("privacy_token notification didn't contain tag") + return + } + parentAG := node.AttrGetter() + sender := parentAG.JID("from") + if !parentAG.OK() { + cli.Log.Warnf("privacy_token notification didn't have a sender (%v)", parentAG.Error()) + return + } + for _, child := range tokens.GetChildren() { + ag := child.AttrGetter() + if child.Tag != "token" { + cli.Log.Warnf("privacy_token notification contained unexpected <%s> tag", child.Tag) + } else if targetUser := ag.JID("jid"); targetUser != ownID { + cli.Log.Warnf("privacy_token notification contained token for different user %s", targetUser) + } else if tokenType := ag.String("type"); tokenType != "trusted_contact" { + cli.Log.Warnf("privacy_token notification contained unexpected token type %s", tokenType) + } else if token, ok := child.Content.([]byte); !ok { + cli.Log.Warnf("privacy_token notification contained non-binary token") + } else { + timestamp := ag.UnixTime("t") + if !ag.OK() { + cli.Log.Warnf("privacy_token notification is missing some fields: %v", ag.Error()) + } + err := cli.Store.PrivacyTokens.PutPrivacyTokens(store.PrivacyToken{ + User: sender, + Token: token, + Timestamp: timestamp, + }) + if err != nil { + cli.Log.Errorf("Failed to save privacy token from %s: %v", sender, err) + } else { + cli.Log.Debugf("Stored privacy token from %s (ts: %v)", sender, timestamp) + } + } + } +} + func (cli *Client) handleNotification(node *waBinary.Node) { ag := node.AttrGetter() notifType := ag.String("type") @@ -200,7 +252,9 @@ func (cli *Client) handleNotification(node *waBinary.Node) { go cli.handlePictureNotification(node) case "mediaretry": go cli.handleMediaRetryNotification(node) - // Other types: business, disappearing_mode, server, status, pay, psa, privacy_token + case "privacy_token": + go cli.handlePrivacyTokenNotification(node) + // Other types: business, disappearing_mode, server, status, pay, psa default: cli.Log.Debugf("Unhandled notification with type %s", notifType) } diff --git a/vendor/go.mau.fi/whatsmeow/pair.go b/vendor/go.mau.fi/whatsmeow/pair.go index 41dfa086..573b0387 100644 --- a/vendor/go.mau.fi/whatsmeow/pair.go +++ b/vendor/go.mau.fi/whatsmeow/pair.go @@ -13,11 +13,9 @@ import ( "encoding/base64" "fmt" "strings" - "time" - - "google.golang.org/protobuf/proto" "go.mau.fi/libsignal/ecc" + "google.golang.org/protobuf/proto" waBinary "go.mau.fi/whatsmeow/binary" waProto "go.mau.fi/whatsmeow/binary/proto" @@ -26,8 +24,6 @@ import ( "go.mau.fi/whatsmeow/util/keys" ) -const qrScanTimeout = 30 * time.Second - func (cli *Client) handleIQ(node *waBinary.Node) { children := node.GetChildren() if len(children) != 1 || node.Attrs["from"] != types.ServerJID { @@ -105,28 +101,28 @@ func (cli *Client) handlePair(deviceIdentityBytes []byte, reqID, businessName, p var deviceIdentityContainer waProto.ADVSignedDeviceIdentityHMAC err := proto.Unmarshal(deviceIdentityBytes, &deviceIdentityContainer) if err != nil { - cli.sendIQError(reqID, 500, "internal-error") - return fmt.Errorf("failed to parse device identity container in pair success message: %w", err) + cli.sendPairError(reqID, 500, "internal-error") + return &PairProtoError{"failed to parse device identity container in pair success message", err} } h := hmac.New(sha256.New, cli.Store.AdvSecretKey) h.Write(deviceIdentityContainer.Details) if !bytes.Equal(h.Sum(nil), deviceIdentityContainer.Hmac) { cli.Log.Warnf("Invalid HMAC from pair success message") - cli.sendIQError(reqID, 401, "not-authorized") - return fmt.Errorf("invalid device identity HMAC in pair success message") + cli.sendPairError(reqID, 401, "not-authorized") + return ErrPairInvalidDeviceIdentityHMAC } var deviceIdentity waProto.ADVSignedDeviceIdentity err = proto.Unmarshal(deviceIdentityContainer.Details, &deviceIdentity) if err != nil { - cli.sendIQError(reqID, 500, "internal-error") - return fmt.Errorf("failed to parse signed device identity in pair success message: %w", err) + cli.sendPairError(reqID, 500, "internal-error") + return &PairProtoError{"failed to parse signed device identity in pair success message", err} } if !verifyDeviceIdentityAccountSignature(&deviceIdentity, cli.Store.IdentityKey) { - cli.sendIQError(reqID, 401, "not-authorized") - return fmt.Errorf("invalid device signature in pair success message") + cli.sendPairError(reqID, 401, "not-authorized") + return ErrPairInvalidDeviceSignature } deviceIdentity.DeviceSignature = generateDeviceSignature(&deviceIdentity, cli.Store.IdentityKey)[:] @@ -134,8 +130,13 @@ func (cli *Client) handlePair(deviceIdentityBytes []byte, reqID, businessName, p var deviceIdentityDetails waProto.ADVDeviceIdentity err = proto.Unmarshal(deviceIdentity.Details, &deviceIdentityDetails) if err != nil { - cli.sendIQError(reqID, 500, "internal-error") - return fmt.Errorf("failed to parse device identity details in pair success message: %w", err) + cli.sendPairError(reqID, 500, "internal-error") + return &PairProtoError{"failed to parse device identity details in pair success message", err} + } + + if cli.PrePairCallback != nil && !cli.PrePairCallback(jid, platform, businessName) { + cli.sendPairError(reqID, 500, "internal-error") + return ErrPairRejectedLocally } cli.Store.Account = proto.Clone(&deviceIdentity).(*waProto.ADVSignedDeviceIdentity) @@ -147,8 +148,8 @@ func (cli *Client) handlePair(deviceIdentityBytes []byte, reqID, businessName, p selfSignedDeviceIdentity, err := proto.Marshal(&deviceIdentity) if err != nil { - cli.sendIQError(reqID, 500, "internal-error") - return fmt.Errorf("failed to marshal self-signed device identity: %w", err) + cli.sendPairError(reqID, 500, "internal-error") + return &PairProtoError{"failed to marshal self-signed device identity", err} } cli.Store.ID = &jid @@ -156,14 +157,14 @@ func (cli *Client) handlePair(deviceIdentityBytes []byte, reqID, businessName, p cli.Store.Platform = platform err = cli.Store.Save() if err != nil { - cli.sendIQError(reqID, 500, "internal-error") - return fmt.Errorf("failed to save device store: %w", err) + cli.sendPairError(reqID, 500, "internal-error") + return &PairDatabaseError{"failed to save device store", err} } err = cli.Store.Identities.PutIdentity(mainDeviceJID.SignalAddress().String(), mainDeviceIdentity) if err != nil { _ = cli.Store.Delete() - cli.sendIQError(reqID, 500, "internal-error") - return fmt.Errorf("failed to store main device identity: %w", err) + cli.sendPairError(reqID, 500, "internal-error") + return &PairDatabaseError{"failed to store main device identity", err} } // Expect a disconnect after this and don't dispatch the usual Disconnected event @@ -225,8 +226,8 @@ func generateDeviceSignature(deviceIdentity *waProto.ADVSignedDeviceIdentity, ik return &sig } -func (cli *Client) sendIQError(id string, code int, text string) waBinary.Node { - return waBinary.Node{ +func (cli *Client) sendPairError(id string, code int, text string) { + err := cli.sendNode(waBinary.Node{ Tag: "iq", Attrs: waBinary.Attrs{ "to": types.ServerJID, @@ -240,5 +241,8 @@ func (cli *Client) sendIQError(id string, code int, text string) waBinary.Node { "text": text, }, }}, + }) + if err != nil { + cli.Log.Errorf("Failed to send pair error node: %v", err) } } diff --git a/vendor/go.mau.fi/whatsmeow/presence.go b/vendor/go.mau.fi/whatsmeow/presence.go index bc26c21c..0ce94a70 100644 --- a/vendor/go.mau.fi/whatsmeow/presence.go +++ b/vendor/go.mau.fi/whatsmeow/presence.go @@ -7,6 +7,7 @@ package whatsmeow import ( + "fmt" "sync/atomic" waBinary "go.mau.fi/whatsmeow/binary" @@ -87,19 +88,40 @@ func (cli *Client) SendPresence(state types.Presence) error { // // cli.SendPresence(types.PresenceAvailable) func (cli *Client) SubscribePresence(jid types.JID) error { - return cli.sendNode(waBinary.Node{ + privacyToken, err := cli.Store.PrivacyTokens.GetPrivacyToken(jid) + if err != nil { + return fmt.Errorf("failed to get privacy token: %w", err) + } else if privacyToken == nil { + if cli.ErrorOnSubscribePresenceWithoutToken { + return fmt.Errorf("%w for %v", ErrNoPrivacyToken, jid.ToNonAD()) + } else { + cli.Log.Debugf("Trying to subscribe to presence of %s without privacy token", jid) + } + } + req := waBinary.Node{ Tag: "presence", Attrs: waBinary.Attrs{ "type": "subscribe", "to": jid, }, - }) + } + if privacyToken != nil { + req.Content = []waBinary.Node{{ + Tag: "tctoken", + Content: privacyToken.Token, + }} + } + return cli.sendNode(req) } // SendChatPresence updates the user's typing status in a specific chat. // // The media parameter can be set to indicate the user is recording media (like a voice message) rather than typing a text message. func (cli *Client) SendChatPresence(jid types.JID, state types.ChatPresence, media types.ChatPresenceMedia) error { + ownID := cli.getOwnID() + if ownID.IsEmpty() { + return ErrNotLoggedIn + } content := []waBinary.Node{{Tag: string(state)}} if state == types.ChatPresenceComposing && len(media) > 0 { content[0].Attrs = waBinary.Attrs{ @@ -109,7 +131,7 @@ func (cli *Client) SendChatPresence(jid types.JID, state types.ChatPresence, med return cli.sendNode(waBinary.Node{ Tag: "chatstate", Attrs: waBinary.Attrs{ - "from": *cli.Store.ID, + "from": ownID, "to": jid, }, Content: content, diff --git a/vendor/go.mau.fi/whatsmeow/qrchan.go b/vendor/go.mau.fi/whatsmeow/qrchan.go index 0aea93c9..5401ac0e 100644 --- a/vendor/go.mau.fi/whatsmeow/qrchan.go +++ b/vendor/go.mau.fi/whatsmeow/qrchan.go @@ -17,7 +17,7 @@ import ( ) type QRChannelItem struct { - // The type of event, "code" for new QR codes. + // The type of event, "code" for new QR codes (see Code field) and "error" for pairing errors (see Error) field. // For non-code/error events, you can just compare the whole item to the event variables (like QRChannelSuccess). Event string // If the item is a pair error, then this field contains the error message. @@ -28,6 +28,11 @@ type QRChannelItem struct { Timeout time.Duration } +const QRChannelEventCode = "code" +const QRChannelEventError = "error" + +// Possible final items in the QR channel. In addition to these, an `error` event may be emitted, +// in which case the Error field will have the error that occurred during pairing. var ( // QRChannelSuccess is emitted from GetQRChannel when the pairing is successful. QRChannelSuccess = QRChannelItem{Event: "success"} @@ -78,7 +83,7 @@ func (qrc *qrChannel) emitQRs(evt *events.QR) { nextCode, evt.Codes = evt.Codes[0], evt.Codes[1:] qrc.log.Debugf("Emitting QR code %s", nextCode) select { - case qrc.output <- QRChannelItem{Code: nextCode, Timeout: timeout, Event: "code"}: + case qrc.output <- QRChannelItem{Code: nextCode, Timeout: timeout, Event: QRChannelEventCode}: default: qrc.log.Debugf("Output channel didn't accept code, exiting QR emitter") if atomic.CompareAndSwapUint32(&qrc.closed, 0, 1) { @@ -125,7 +130,7 @@ func (qrc *qrChannel) handleEvent(rawEvt interface{}) { outputType = QRChannelSuccess case *events.PairError: outputType = QRChannelItem{ - Event: "error", + Event: QRChannelEventError, Error: evt.Error, } case *events.Disconnected: @@ -151,7 +156,7 @@ func (qrc *qrChannel) handleEvent(rawEvt interface{}) { // // This must be called *before* Connect(). It will then listen to all the relevant events from the client. // -// The last value to be emitted will be a special string, either "success", "timeout" or "err-already-have-id", +// The last value to be emitted will be a special event like "success", "timeout" or another error code // depending on the result of the pairing. The channel will be closed immediately after one of those. func (cli *Client) GetQRChannel(ctx context.Context) (<-chan QRChannelItem, error) { if cli.IsConnected() { diff --git a/vendor/go.mau.fi/whatsmeow/retry.go b/vendor/go.mau.fi/whatsmeow/retry.go index 26940b13..95104c8f 100644 --- a/vendor/go.mau.fi/whatsmeow/retry.go +++ b/vendor/go.mau.fi/whatsmeow/retry.go @@ -111,10 +111,14 @@ func (cli *Client) handleRetryReceipt(receipt *events.Receipt, node *waBinary.No if err != nil { return err } + ownID := cli.getOwnID() + if ownID.IsEmpty() { + return ErrNotLoggedIn + } if receipt.IsGroup { builder := groups.NewGroupSessionBuilder(cli.Store, pbSerializer) - senderKeyName := protocol.NewSenderKeyName(receipt.Chat.String(), cli.Store.ID.SignalAddress()) + senderKeyName := protocol.NewSenderKeyName(receipt.Chat.String(), ownID.SignalAddress()) signalSKDMessage, err := builder.Create(senderKeyName) if err != nil { cli.Log.Warnf("Failed to create sender key distribution message to include in retry of %s in %s to %s: %v", messageID, receipt.Chat, receipt.Sender, err) diff --git a/vendor/go.mau.fi/whatsmeow/send.go b/vendor/go.mau.fi/whatsmeow/send.go index ab754f8f..96d888be 100644 --- a/vendor/go.mau.fi/whatsmeow/send.go +++ b/vendor/go.mau.fi/whatsmeow/send.go @@ -35,7 +35,7 @@ import ( // GenerateMessageID generates a random string that can be used as a message ID on WhatsApp. // // msgID := whatsmeow.GenerateMessageID() -// cli.SendMessage(context.Background(), targetJID, msgID, &waProto.Message{...}) +// cli.SendMessage(context.Background(), targetJID, &waProto.Message{...}, whatsmeow.SendRequestExtra{ID: msgID}) func GenerateMessageID() types.MessageID { id := make([]byte, 8) _, err := rand.Read(id) @@ -71,17 +71,36 @@ type SendResponse struct { DebugTimings MessageDebugTimings } -// SendMessage sends the given message. +// SendRequestExtra contains the optional parameters for SendMessage. +// +// By default, optional parameters don't have to be provided at all, e.g. +// +// cli.SendMessage(ctx, to, message) +// +// When providing optional parameters, add a single instance of this struct as the last parameter: // -// If the message ID is not provided, a random message ID will be generated. +// cli.SendMessage(ctx, to, message, whatsmeow.SendRequestExtra{...}) +// +// Trying to add multiple extra parameters will return an error. +type SendRequestExtra struct { + // The message ID to use when sending. If this is not provided, a random message ID will be generated + ID types.MessageID + // Should the message be sent as a peer message (protocol messages to your own devices, e.g. app state key requests) + Peer bool +} + +// SendMessage sends the given message. // // This method will wait for the server to acknowledge the message before returning. // The return value is the timestamp of the message from the server. // +// Optional parameters like the message ID can be specified with the SendRequestExtra struct. +// Only one extra parameter is allowed, put all necessary parameters in the same struct. +// // The message itself can contain anything you want (within the protobuf schema). // e.g. for a simple text message, use the Conversation field: // -// cli.SendMessage(context.Background(), targetJID, "", &waProto.Message{ +// cli.SendMessage(context.Background(), targetJID, &waProto.Message{ // Conversation: proto.String("Hello, World!"), // }) // @@ -91,18 +110,31 @@ type SendResponse struct { // For uploading and sending media/attachments, see the Upload method. // // For other message types, you'll have to figure it out yourself. Looking at the protobuf schema -// in binary/proto/def.proto may be useful to find out all the allowed fields. -func (cli *Client) SendMessage(ctx context.Context, to types.JID, id types.MessageID, message *waProto.Message) (resp SendResponse, err error) { - isPeerMessage := to.User == cli.Store.ID.User - if to.AD && !isPeerMessage { +// in binary/proto/def.proto may be useful to find out all the allowed fields. Printing the RawMessage +// field in incoming message events to figure out what it contains is also a good way to learn how to +// send the same kind of message. +func (cli *Client) SendMessage(ctx context.Context, to types.JID, message *waProto.Message, extra ...SendRequestExtra) (resp SendResponse, err error) { + var req SendRequestExtra + if len(extra) > 1 { + err = errors.New("only one extra parameter may be provided to SendMessage") + return + } else if len(extra) == 1 { + req = extra[0] + } + if to.AD && !req.Peer { err = ErrRecipientADJID return } + ownID := cli.getOwnID() + if ownID.IsEmpty() { + err = ErrNotLoggedIn + return + } - if len(id) == 0 { - id = GenerateMessageID() + if len(req.ID) == 0 { + req.ID = GenerateMessageID() } - resp.ID = id + resp.ID = req.ID start := time.Now() // Sending multiple messages at a time can cause weird issues and makes it harder to retry safely @@ -110,36 +142,36 @@ func (cli *Client) SendMessage(ctx context.Context, to types.JID, id types.Messa resp.DebugTimings.Queue = time.Since(start) defer cli.messageSendLock.Unlock() - respChan := cli.waitResponse(id) + respChan := cli.waitResponse(req.ID) // Peer message retries aren't implemented yet - if !isPeerMessage { - cli.addRecentMessage(to, id, message) + if !req.Peer { + cli.addRecentMessage(to, req.ID, message) } if message.GetMessageContextInfo().GetMessageSecret() != nil { - err = cli.Store.MsgSecrets.PutMessageSecret(to, *cli.Store.ID, id, message.GetMessageContextInfo().GetMessageSecret()) + err = cli.Store.MsgSecrets.PutMessageSecret(to, ownID, req.ID, message.GetMessageContextInfo().GetMessageSecret()) if err != nil { - cli.Log.Warnf("Failed to store message secret key for outgoing message %s: %v", id, err) + cli.Log.Warnf("Failed to store message secret key for outgoing message %s: %v", req.ID, err) } else { - cli.Log.Debugf("Stored message secret key for outgoing message %s", id) + cli.Log.Debugf("Stored message secret key for outgoing message %s", req.ID) } } var phash string var data []byte switch to.Server { case types.GroupServer, types.BroadcastServer: - phash, data, err = cli.sendGroup(ctx, to, id, message, &resp.DebugTimings) + phash, data, err = cli.sendGroup(ctx, to, ownID, req.ID, message, &resp.DebugTimings) case types.DefaultUserServer: - if isPeerMessage { - data, err = cli.sendPeerMessage(to, id, message, &resp.DebugTimings) + if req.Peer { + data, err = cli.sendPeerMessage(to, req.ID, message, &resp.DebugTimings) } else { - data, err = cli.sendDM(ctx, to, id, message, &resp.DebugTimings) + data, err = cli.sendDM(ctx, to, ownID, req.ID, message, &resp.DebugTimings) } default: err = fmt.Errorf("%w %s", ErrUnknownServer, to.Server) } start = time.Now() if err != nil { - cli.cancelResponse(id, respChan) + cli.cancelResponse(req.ID, respChan) return } var respNode *waBinary.Node @@ -152,7 +184,7 @@ func (cli *Client) SendMessage(ctx context.Context, to types.JID, id types.Messa resp.DebugTimings.Resp = time.Since(start) if isDisconnectNode(respNode) { start = time.Now() - respNode, err = cli.retryFrame("message send", id, data, respNode, ctx, 0) + respNode, err = cli.retryFrame("message send", req.ID, data, respNode, ctx, 0) resp.DebugTimings.Retry = time.Since(start) if err != nil { return @@ -160,6 +192,9 @@ func (cli *Client) SendMessage(ctx context.Context, to types.JID, id types.Messa } ag := respNode.AttrGetter() resp.Timestamp = ag.UnixTime("t") + if errorCode := ag.Int("error"); errorCode != 0 { + err = fmt.Errorf("%w %d", ErrServerReturnedError, errorCode) + } expectedPHash := ag.OptionalString("phash") if len(expectedPHash) > 0 && phash != expectedPHash { cli.Log.Warnf("Server returned different participant list hash when sending to %s. Some devices may not have received the message.", to) @@ -178,7 +213,7 @@ func (cli *Client) SendMessage(ctx context.Context, to types.JID, id types.Messa // // Deprecated: This method is deprecated in favor of BuildRevoke func (cli *Client) RevokeMessage(chat types.JID, id types.MessageID) (SendResponse, error) { - return cli.SendMessage(context.TODO(), chat, "", cli.BuildRevoke(chat, types.EmptyJID, id)) + return cli.SendMessage(context.TODO(), chat, cli.BuildRevoke(chat, types.EmptyJID, id)) } // BuildRevoke builds a message revocation message using the given variables. @@ -186,18 +221,18 @@ func (cli *Client) RevokeMessage(chat types.JID, id types.MessageID) (SendRespon // // To revoke your own messages, pass your JID or an empty JID as the second parameter (sender). // -// resp, err := cli.SendMessage(context.Background(), chat, "", cli.BuildRevoke(chat, types.EmptyJID, originalMessageID) +// resp, err := cli.SendMessage(context.Background(), chat, cli.BuildRevoke(chat, types.EmptyJID, originalMessageID) // // To revoke someone else's messages when you are group admin, pass the message sender's JID as the second parameter. // -// resp, err := cli.SendMessage(context.Background(), chat, "", cli.BuildRevoke(chat, senderJID, originalMessageID) +// resp, err := cli.SendMessage(context.Background(), chat, cli.BuildRevoke(chat, senderJID, originalMessageID) func (cli *Client) BuildRevoke(chat, sender types.JID, id types.MessageID) *waProto.Message { key := &waProto.MessageKey{ FromMe: proto.Bool(true), Id: proto.String(id), RemoteJid: proto.String(chat.String()), } - if !sender.IsEmpty() && sender.User != cli.Store.ID.User { + if !sender.IsEmpty() && sender.User != cli.getOwnID().User { key.FromMe = proto.Bool(false) if chat.Server != types.DefaultUserServer { key.Participant = proto.String(sender.ToNonAD().String()) @@ -214,7 +249,7 @@ func (cli *Client) BuildRevoke(chat, sender types.JID, id types.MessageID) *waPr // BuildEdit builds a message edit message using the given variables. // The built message can be sent normally using Client.SendMessage. // -// resp, err := cli.SendMessage(context.Background(), chat, "", cli.BuildEdit(chat, originalMessageID, &waProto.Message{ +// resp, err := cli.SendMessage(context.Background(), chat, cli.BuildEdit(chat, originalMessageID, &waProto.Message{ // Conversation: proto.String("edited message"), // }) func (cli *Client) BuildEdit(chat types.JID, id types.MessageID, newContent *waProto.Message) *waProto.Message { @@ -270,7 +305,7 @@ func ParseDisappearingTimerString(val string) (time.Duration, bool) { func (cli *Client) SetDisappearingTimer(chat types.JID, timer time.Duration) (err error) { switch chat.Server { case types.DefaultUserServer: - _, err = cli.SendMessage(context.TODO(), chat, "", &waProto.Message{ + _, err = cli.SendMessage(context.TODO(), chat, &waProto.Message{ ProtocolMessage: &waProto.ProtocolMessage{ Type: waProto.ProtocolMessage_EPHEMERAL_SETTING.Enum(), EphemeralExpiration: proto.Uint32(uint32(timer.Seconds())), @@ -307,7 +342,7 @@ func participantListHashV2(participants []types.JID) string { return fmt.Sprintf("2:%s", base64.RawStdEncoding.EncodeToString(hash[:6])) } -func (cli *Client) sendGroup(ctx context.Context, to types.JID, id types.MessageID, message *waProto.Message, timings *MessageDebugTimings) (string, []byte, error) { +func (cli *Client) sendGroup(ctx context.Context, to, ownID types.JID, id types.MessageID, message *waProto.Message, timings *MessageDebugTimings) (string, []byte, error) { var participants []types.JID var err error start := time.Now() @@ -333,7 +368,7 @@ func (cli *Client) sendGroup(ctx context.Context, to types.JID, id types.Message start = time.Now() builder := groups.NewGroupSessionBuilder(cli.Store, pbSerializer) - senderKeyName := protocol.NewSenderKeyName(to.String(), cli.Store.ID.SignalAddress()) + senderKeyName := protocol.NewSenderKeyName(to.String(), ownID.SignalAddress()) signalSKDMessage, err := builder.Create(senderKeyName) if err != nil { return "", nil, fmt.Errorf("failed to create sender key distribution message to send %s to %s: %w", id, to, err) @@ -357,7 +392,7 @@ func (cli *Client) sendGroup(ctx context.Context, to types.JID, id types.Message ciphertext := encrypted.SignedSerialize() timings.GroupEncrypt = time.Since(start) - node, allDevices, err := cli.prepareMessageNode(ctx, to, id, message, participants, skdPlaintext, nil, timings) + node, allDevices, err := cli.prepareMessageNode(ctx, to, ownID, id, message, participants, skdPlaintext, nil, timings) if err != nil { return "", nil, err } @@ -393,7 +428,7 @@ func (cli *Client) sendPeerMessage(to types.JID, id types.MessageID, message *wa return data, nil } -func (cli *Client) sendDM(ctx context.Context, to types.JID, id types.MessageID, message *waProto.Message, timings *MessageDebugTimings) ([]byte, error) { +func (cli *Client) sendDM(ctx context.Context, to, ownID types.JID, id types.MessageID, message *waProto.Message, timings *MessageDebugTimings) ([]byte, error) { start := time.Now() messagePlaintext, deviceSentMessagePlaintext, err := marshalMessage(to, message) timings.Marshal = time.Since(start) @@ -401,7 +436,7 @@ func (cli *Client) sendDM(ctx context.Context, to types.JID, id types.MessageID, return nil, err } - node, _, err := cli.prepareMessageNode(ctx, to, id, message, []types.JID{to, cli.Store.ID.ToNonAD()}, messagePlaintext, deviceSentMessagePlaintext, timings) + node, _, err := cli.prepareMessageNode(ctx, to, ownID, id, message, []types.JID{to, ownID.ToNonAD()}, messagePlaintext, deviceSentMessagePlaintext, timings) if err != nil { return nil, err } @@ -504,7 +539,7 @@ func (cli *Client) preparePeerMessageNode(to types.JID, id types.MessageID, mess }, nil } -func (cli *Client) prepareMessageNode(ctx context.Context, to types.JID, id types.MessageID, message *waProto.Message, participants []types.JID, plaintext, dsmPlaintext []byte, timings *MessageDebugTimings) (*waBinary.Node, []types.JID, error) { +func (cli *Client) prepareMessageNode(ctx context.Context, to, ownID types.JID, id types.MessageID, message *waProto.Message, participants []types.JID, plaintext, dsmPlaintext []byte, timings *MessageDebugTimings) (*waBinary.Node, []types.JID, error) { start := time.Now() allDevices, err := cli.GetUserDevicesContext(ctx, participants) timings.GetDevices = time.Since(start) @@ -522,7 +557,7 @@ func (cli *Client) prepareMessageNode(ctx context.Context, to types.JID, id type } start = time.Now() - participantNodes, includeIdentity := cli.encryptMessageForDevices(ctx, allDevices, id, plaintext, dsmPlaintext) + participantNodes, includeIdentity := cli.encryptMessageForDevices(ctx, allDevices, ownID, id, plaintext, dsmPlaintext) timings.PeerEncrypt = time.Since(start) content := []waBinary.Node{{ Tag: "participants", @@ -584,14 +619,14 @@ func (cli *Client) makeDeviceIdentityNode() waBinary.Node { } } -func (cli *Client) encryptMessageForDevices(ctx context.Context, allDevices []types.JID, id string, msgPlaintext, dsmPlaintext []byte) ([]waBinary.Node, bool) { +func (cli *Client) encryptMessageForDevices(ctx context.Context, allDevices []types.JID, ownID types.JID, id string, msgPlaintext, dsmPlaintext []byte) ([]waBinary.Node, bool) { includeIdentity := false participantNodes := make([]waBinary.Node, 0, len(allDevices)) var retryDevices []types.JID for _, jid := range allDevices { plaintext := msgPlaintext - if jid.User == cli.Store.ID.User && dsmPlaintext != nil { - if jid == *cli.Store.ID { + if jid.User == ownID.User && dsmPlaintext != nil { + if jid == ownID { continue } plaintext = dsmPlaintext @@ -621,7 +656,7 @@ func (cli *Client) encryptMessageForDevices(ctx context.Context, allDevices []ty continue } plaintext := msgPlaintext - if jid.User == cli.Store.ID.User && dsmPlaintext != nil { + if jid.User == ownID.User && dsmPlaintext != nil { plaintext = dsmPlaintext } encrypted, isPreKey, err := cli.encryptMessageForDeviceAndWrap(plaintext, jid, resp.bundle) diff --git a/vendor/go.mau.fi/whatsmeow/store/clientpayload.go b/vendor/go.mau.fi/whatsmeow/store/clientpayload.go index 6c683eed..08a3d280 100644 --- a/vendor/go.mau.fi/whatsmeow/store/clientpayload.go +++ b/vendor/go.mau.fi/whatsmeow/store/clientpayload.go @@ -74,7 +74,7 @@ func (vc WAVersionContainer) ProtoAppVersion() *waProto.ClientPayload_UserAgent_ } // waVersion is the WhatsApp web client version -var waVersion = WAVersionContainer{2, 2245, 9} +var waVersion = WAVersionContainer{2, 2301, 6} // waVersionHash is the md5 hash of a dot-separated waVersion var waVersionHash [16]byte diff --git a/vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go b/vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go index 136eda35..7f8c6c8f 100644 --- a/vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go +++ b/vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go @@ -126,6 +126,7 @@ func (c *Container) scanDevice(row scannable) (*store.Device, error) { device.Contacts = innerStore device.ChatSettings = innerStore device.MsgSecrets = innerStore + device.PrivacyTokens = innerStore device.Container = c device.Initialized = true @@ -240,6 +241,7 @@ func (c *Container) PutDevice(device *store.Device) error { device.Contacts = innerStore device.ChatSettings = innerStore device.MsgSecrets = innerStore + device.PrivacyTokens = innerStore device.Initialized = true } return err diff --git a/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go b/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go index 1261bec0..8221a4ad 100644 --- a/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go +++ b/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go @@ -706,7 +706,7 @@ func (s *SQLStore) PutMessageSecrets(inserts []store.MessageSecretInsert) (err e return fmt.Errorf("failed to begin transaction: %w", err) } for _, insert := range inserts { - _, err = s.db.Exec(putMsgSecret, s.JID, insert.Chat.ToNonAD(), insert.Sender.ToNonAD(), insert.ID, insert.Secret) + _, err = tx.Exec(putMsgSecret, s.JID, insert.Chat.ToNonAD(), insert.Sender.ToNonAD(), insert.ID, insert.Secret) } err = tx.Commit() if err != nil { @@ -727,3 +727,42 @@ func (s *SQLStore) GetMessageSecret(chat, sender types.JID, id types.MessageID) } return } + +const ( + putPrivacyTokens = ` + INSERT INTO whatsmeow_privacy_tokens (our_jid, their_jid, token, timestamp) + VALUES ($1, $2, $3, $4) + ON CONFLICT (our_jid, their_jid) DO UPDATE SET token=EXCLUDED.token, timestamp=EXCLUDED.timestamp + ` + getPrivacyToken = `SELECT token, timestamp FROM whatsmeow_privacy_tokens WHERE our_jid=$1 AND their_jid=$2` +) + +func (s *SQLStore) PutPrivacyTokens(tokens ...store.PrivacyToken) error { + args := make([]any, 1+len(tokens)*3) + placeholders := make([]string, len(tokens)) + args[0] = s.JID + for i, token := range tokens { + args[i*3+1] = token.User.ToNonAD().String() + args[i*3+2] = token.Token + args[i*3+3] = token.Timestamp.Unix() + placeholders[i] = fmt.Sprintf("($1, $%d, $%d, $%d)", i*3+2, i*3+3, i*3+4) + } + query := strings.ReplaceAll(putPrivacyTokens, "($1, $2, $3, $4)", strings.Join(placeholders, ",")) + _, err := s.db.Exec(query, args...) + return err +} + +func (s *SQLStore) GetPrivacyToken(user types.JID) (*store.PrivacyToken, error) { + var token store.PrivacyToken + token.User = user.ToNonAD() + var ts int64 + err := s.db.QueryRow(getPrivacyToken, s.JID, token.User).Scan(&token.Token, &ts) + if errors.Is(err, sql.ErrNoRows) { + return nil, nil + } else if err != nil { + return nil, err + } else { + token.Timestamp = time.Unix(ts, 0) + return &token, nil + } +} diff --git a/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrade.go b/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrade.go index 70556ec3..0919ca89 100644 --- a/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrade.go +++ b/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrade.go @@ -16,7 +16,7 @@ type upgradeFunc func(*sql.Tx, *Container) error // // This may be of use if you want to manage the database fully manually, but in most cases you // should just call Container.Upgrade to let the library handle everything. -var Upgrades = [...]upgradeFunc{upgradeV1, upgradeV2, upgradeV3} +var Upgrades = [...]upgradeFunc{upgradeV1, upgradeV2, upgradeV3, upgradeV4} func (c *Container) getVersion() (int, error) { _, err := c.db.Exec("CREATE TABLE IF NOT EXISTS whatsmeow_version (version INTEGER)") @@ -260,3 +260,14 @@ func upgradeV3(tx *sql.Tx, container *Container) error { )`) return err } + +func upgradeV4(tx *sql.Tx, container *Container) error { + _, err := tx.Exec(`CREATE TABLE whatsmeow_privacy_tokens ( + our_jid TEXT, + their_jid TEXT, + token bytea NOT NULL, + timestamp BIGINT NOT NULL, + PRIMARY KEY (our_jid, their_jid) + )`) + return err +} diff --git a/vendor/go.mau.fi/whatsmeow/store/store.go b/vendor/go.mau.fi/whatsmeow/store/store.go index b26a28b8..36a6dce9 100644 --- a/vendor/go.mau.fi/whatsmeow/store/store.go +++ b/vendor/go.mau.fi/whatsmeow/store/store.go @@ -112,6 +112,17 @@ type MsgSecretStore interface { GetMessageSecret(chat, sender types.JID, id types.MessageID) ([]byte, error) } +type PrivacyToken struct { + User types.JID + Token []byte + Timestamp time.Time +} + +type PrivacyTokenStore interface { + PutPrivacyTokens(tokens ...PrivacyToken) error + GetPrivacyToken(user types.JID) (*PrivacyToken, error) +} + type Device struct { Log waLog.Logger @@ -127,17 +138,18 @@ type Device struct { BusinessName string PushName string - Initialized bool - Identities IdentityStore - Sessions SessionStore - PreKeys PreKeyStore - SenderKeys SenderKeyStore - AppStateKeys AppStateSyncKeyStore - AppState AppStateStore - Contacts ContactStore - ChatSettings ChatSettingsStore - MsgSecrets MsgSecretStore - Container DeviceContainer + Initialized bool + Identities IdentityStore + Sessions SessionStore + PreKeys PreKeyStore + SenderKeys SenderKeyStore + AppStateKeys AppStateSyncKeyStore + AppState AppStateStore + Contacts ContactStore + ChatSettings ChatSettingsStore + MsgSecrets MsgSecretStore + PrivacyTokens PrivacyTokenStore + Container DeviceContainer DatabaseErrorHandler func(device *Device, action string, attemptIndex int, err error) (retry bool) } diff --git a/vendor/go.mau.fi/whatsmeow/types/events/events.go b/vendor/go.mau.fi/whatsmeow/types/events/events.go index 48766575..dc8e0ada 100644 --- a/vendor/go.mau.fi/whatsmeow/types/events/events.go +++ b/vendor/go.mau.fi/whatsmeow/types/events/events.go @@ -92,16 +92,16 @@ type StreamReplaced struct{} type TempBanReason int const ( - TempBanBlockedByUsers TempBanReason = 101 - TempBanSentToTooManyPeople TempBanReason = 102 + TempBanSentToTooManyPeople TempBanReason = 101 + TempBanBlockedByUsers TempBanReason = 102 TempBanCreatedTooManyGroups TempBanReason = 103 TempBanSentTooManySameMessage TempBanReason = 104 TempBanBroadcastList TempBanReason = 106 ) var tempBanReasonMessage = map[TempBanReason]string{ - TempBanBlockedByUsers: "too many people blocked you", TempBanSentToTooManyPeople: "you sent too many messages to people who don't have you in their address books", + TempBanBlockedByUsers: "too many people blocked you", TempBanCreatedTooManyGroups: "you created too many groups with people who don't have you in their address books", TempBanSentTooManySameMessage: "you sent the same message to too many people", TempBanBroadcastList: "you sent too many messages to a broadcast list", @@ -119,14 +119,14 @@ func (tbr TempBanReason) String() string { // TemporaryBan is emitted when there's a connection failure with the ConnectFailureTempBanned reason code. type TemporaryBan struct { Code TempBanReason - Expire time.Time + Expire time.Duration } func (tb *TemporaryBan) String() string { - if tb.Expire.IsZero() { + if tb.Expire == 0 { return fmt.Sprintf("You've been temporarily banned: %v", tb.Code) } - return fmt.Sprintf("You've been temporarily banned: %v. The ban expires at %v", tb.Code, tb.Expire) + return fmt.Sprintf("You've been temporarily banned: %v. The ban expires in %v", tb.Code, tb.Expire) } // ConnectFailureReason is an error code included in connection failure events. @@ -352,6 +352,11 @@ type GroupInfo struct { Announce *types.GroupAnnounce // Group announce status change (can only admins send messages?) Ephemeral *types.GroupEphemeral // Disappearing messages change + Delete *types.GroupDelete + + Link *types.GroupLinkChange + Unlink *types.GroupLinkChange + NewInviteLink *string // Group invite link change PrevParticipantVersionID string diff --git a/vendor/go.mau.fi/whatsmeow/types/group.go b/vendor/go.mau.fi/whatsmeow/types/group.go index 5c635f8e..eaf21ce0 100644 --- a/vendor/go.mau.fi/whatsmeow/types/group.go +++ b/vendor/go.mau.fi/whatsmeow/types/group.go @@ -27,6 +27,10 @@ type GroupInfo struct { GroupAnnounce GroupEphemeral + GroupParent + GroupLinkedParent + GroupIsDefaultSub + GroupCreated time.Time ParticipantVersionID string @@ -35,6 +39,19 @@ type GroupInfo struct { MemberAddMode GroupMemberAddMode } +type GroupParent struct { + IsParent bool + DefaultMembershipApprovalMode string // request_required +} + +type GroupLinkedParent struct { + LinkedParentJID JID +} + +type GroupIsDefaultSub struct { + IsDefaultSubGroup bool +} + // GroupName contains the name of a group along with metadata of who set it and when. type GroupName struct { Name string @@ -67,6 +84,16 @@ type GroupParticipant struct { JID JID IsAdmin bool IsSuperAdmin bool + + // When creating groups, adding some participants may fail. + // In such cases, the error code will be here. + Error int + AddRequest *GroupParticipantAddRequest +} + +type GroupParticipantAddRequest struct { + Code string + Expiration time.Time } // GroupEphemeral contains the group's disappearing messages settings. @@ -74,3 +101,35 @@ type GroupEphemeral struct { IsEphemeral bool DisappearingTimer uint32 } + +type GroupDelete struct { + Deleted bool + DeleteReason string +} + +type GroupLinkChangeType string + +const ( + GroupLinkChangeTypeParent GroupLinkChangeType = "parent_group" + GroupLinkChangeTypeSub GroupLinkChangeType = "sub_group" + GroupLinkChangeTypeSibling GroupLinkChangeType = "sibling_group" +) + +type GroupUnlinkReason string + +const ( + GroupUnlinkReasonDefault GroupUnlinkReason = "unlink_group" + GroupUnlinkReasonDelete GroupUnlinkReason = "delete_parent" +) + +type GroupLinkTarget struct { + JID JID + GroupName + GroupIsDefaultSub +} + +type GroupLinkChange struct { + Type GroupLinkChangeType + UnlinkReason GroupUnlinkReason + Group GroupLinkTarget +} diff --git a/vendor/go.mau.fi/whatsmeow/upload.go b/vendor/go.mau.fi/whatsmeow/upload.go index 4556077e..c72025f0 100644 --- a/vendor/go.mau.fi/whatsmeow/upload.go +++ b/vendor/go.mau.fi/whatsmeow/upload.go @@ -54,7 +54,7 @@ type UploadResponse struct { // FileSha256: resp.FileSha256, // FileLength: &resp.FileLength, // } -// _, err = cli.SendMessage(context.Background(), targetJID, "", &waProto.Message{ +// _, err = cli.SendMessage(context.Background(), targetJID, &waProto.Message{ // ImageMessage: imageMsg, // }) // // handle error again diff --git a/vendor/go.mau.fi/whatsmeow/user.go b/vendor/go.mau.fi/whatsmeow/user.go index fe7b0971..dae86406 100644 --- a/vendor/go.mau.fi/whatsmeow/user.go +++ b/vendor/go.mau.fi/whatsmeow/user.go @@ -270,29 +270,53 @@ func (cli *Client) GetUserDevicesContext(ctx context.Context, jids []types.JID) return devices, nil } +type GetProfilePictureParams struct { + Preview bool + ExistingID string + IsCommunity bool +} + // GetProfilePictureInfo gets the URL where you can download a WhatsApp user's profile picture or group's photo. // // Optionally, you can pass the last known profile picture ID. // If the profile picture hasn't changed, this will return nil with no error. -func (cli *Client) GetProfilePictureInfo(jid types.JID, preview bool, existingID string) (*types.ProfilePictureInfo, error) { +// +// To get a community photo, you should pass `IsCommunity: true`, as otherwise you may get a 401 error. +func (cli *Client) GetProfilePictureInfo(jid types.JID, params *GetProfilePictureParams) (*types.ProfilePictureInfo, error) { attrs := waBinary.Attrs{ "query": "url", } - if preview { + if params == nil { + params = &GetProfilePictureParams{} + } + if params.Preview { attrs["type"] = "preview" } else { attrs["type"] = "image" } - if existingID != "" { - attrs["id"] = existingID + if params.ExistingID != "" { + attrs["id"] = params.ExistingID + } + var pictureContent []waBinary.Node + namespace := "w:profile:picture" + if params.IsCommunity { + namespace = "w:g2" + pictureContent = []waBinary.Node{{ + Tag: "query_linked", + Attrs: waBinary.Attrs{ + "type": "parent_group", + "jid": jid, + }, + }} } resp, err := cli.sendIQ(infoQuery{ - Namespace: "w:profile:picture", + Namespace: namespace, Type: "get", To: jid, Content: []waBinary.Node{{ - Tag: "picture", - Attrs: attrs, + Tag: "picture", + Attrs: attrs, + Content: pictureContent, }}, }) if errors.Is(err, ErrIQNotAuthorized) { @@ -304,7 +328,7 @@ func (cli *Client) GetProfilePictureInfo(jid types.JID, preview bool, existingID } picture, ok := resp.GetOptionalChildByTag("picture") if !ok { - if existingID != "" { + if params.ExistingID != "" { return nil, nil } return nil, &ElementMissingError{Tag: "picture", In: "response to profile picture query"} -- cgit v1.2.3