// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 // protoc v3.21.12 // source: conversations.proto package binary import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type MessageType int32 const ( MessageType_UNKNOWN MessageType = 0 MessageType_TEXT MessageType = 1 MessageType_IMAGE MessageType = 2 MessageType_VIDEO MessageType = 3 MessageType_AUDIO MessageType = 4 MessageType_ATTACHMENT MessageType = 5 MessageType_LOCATION MessageType = 6 MessageType_RICH_CARD MessageType = 7 MessageType_VCARD MessageType = 8 MessageType_MMS_NEEDS_DOWNLOAD MessageType = 9 MessageType_REPLY MessageType = 10 ) // Enum value maps for MessageType. var ( MessageType_name = map[int32]string{ 0: "UNKNOWN", 1: "TEXT", 2: "IMAGE", 3: "VIDEO", 4: "AUDIO", 5: "ATTACHMENT", 6: "LOCATION", 7: "RICH_CARD", 8: "VCARD", 9: "MMS_NEEDS_DOWNLOAD", 10: "REPLY", } MessageType_value = map[string]int32{ "UNKNOWN": 0, "TEXT": 1, "IMAGE": 2, "VIDEO": 3, "AUDIO": 4, "ATTACHMENT": 5, "LOCATION": 6, "RICH_CARD": 7, "VCARD": 8, "MMS_NEEDS_DOWNLOAD": 9, "REPLY": 10, } ) func (x MessageType) Enum() *MessageType { p := new(MessageType) *p = x return p } func (x MessageType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MessageType) Descriptor() protoreflect.EnumDescriptor { return file_conversations_proto_enumTypes[0].Descriptor() } func (MessageType) Type() protoreflect.EnumType { return &file_conversations_proto_enumTypes[0] } func (x MessageType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use MessageType.Descriptor instead. func (MessageType) EnumDescriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{0} } type MsgStatusCode int32 const ( MsgStatusCode_UNKNOWN_STATUS MsgStatusCode = 0 MsgStatusCode_SENDING MsgStatusCode = 5 MsgStatusCode_SENT MsgStatusCode = 1 ) // Enum value maps for MsgStatusCode. var ( MsgStatusCode_name = map[int32]string{ 0: "UNKNOWN_STATUS", 5: "SENDING", 1: "SENT", } MsgStatusCode_value = map[string]int32{ "UNKNOWN_STATUS": 0, "SENDING": 5, "SENT": 1, } ) func (x MsgStatusCode) Enum() *MsgStatusCode { p := new(MsgStatusCode) *p = x return p } func (x MsgStatusCode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MsgStatusCode) Descriptor() protoreflect.EnumDescriptor { return file_conversations_proto_enumTypes[1].Descriptor() } func (MsgStatusCode) Type() protoreflect.EnumType { return &file_conversations_proto_enumTypes[1] } func (x MsgStatusCode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use MsgStatusCode.Descriptor instead. func (MsgStatusCode) EnumDescriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{1} } type SendMessagePayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ConversationID string `protobuf:"bytes,2,opt,name=conversationID,proto3" json:"conversationID,omitempty"` MessagePayload *MessagePayload `protobuf:"bytes,3,opt,name=messagePayload,proto3" json:"messagePayload,omitempty"` TmpID string `protobuf:"bytes,5,opt,name=tmpID,proto3" json:"tmpID,omitempty"` } func (x *SendMessagePayload) Reset() { *x = SendMessagePayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendMessagePayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendMessagePayload) ProtoMessage() {} func (x *SendMessagePayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[0] 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 SendMessagePayload.ProtoReflect.Descriptor instead. func (*SendMessagePayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{0} } func (x *SendMessagePayload) GetConversationID() string { if x != nil { return x.ConversationID } return "" } func (x *SendMessagePayload) GetMessagePayload() *MessagePayload { if x != nil { return x.MessagePayload } return nil } func (x *SendMessagePayload) GetTmpID() string { if x != nil { return x.TmpID } return "" } type MessagePayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TmpID string `protobuf:"bytes,1,opt,name=tmpID,proto3" json:"tmpID,omitempty"` MessagePayloadContent *MessagePayloadContent `protobuf:"bytes,6,opt,name=messagePayloadContent,proto3" json:"messagePayloadContent,omitempty"` ConversationID string `protobuf:"bytes,7,opt,name=conversationID,proto3" json:"conversationID,omitempty"` SelfParticipantID string `protobuf:"bytes,9,opt,name=selfParticipantID,proto3" json:"selfParticipantID,omitempty"` // might be participantId MessageInfo []*MessageInfo `protobuf:"bytes,10,rep,name=messageInfo,proto3" json:"messageInfo,omitempty"` TmpID2 string `protobuf:"bytes,12,opt,name=tmpID2,proto3" json:"tmpID2,omitempty"` } func (x *MessagePayload) Reset() { *x = MessagePayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessagePayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessagePayload) ProtoMessage() {} func (x *MessagePayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[1] 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 MessagePayload.ProtoReflect.Descriptor instead. func (*MessagePayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{1} } func (x *MessagePayload) GetTmpID() string { if x != nil { return x.TmpID } return "" } func (x *MessagePayload) GetMessagePayloadContent() *MessagePayloadContent { if x != nil { return x.MessagePayloadContent } return nil } func (x *MessagePayload) GetConversationID() string { if x != nil { return x.ConversationID } return "" } func (x *MessagePayload) GetSelfParticipantID() string { if x != nil { return x.SelfParticipantID } return "" } func (x *MessagePayload) GetMessageInfo() []*MessageInfo { if x != nil { return x.MessageInfo } return nil } func (x *MessagePayload) GetTmpID2() string { if x != nil { return x.TmpID2 } return "" } type MessagePayloadContent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MessageContent *MessageContent `protobuf:"bytes,1,opt,name=messageContent,proto3" json:"messageContent,omitempty"` } func (x *MessagePayloadContent) Reset() { *x = MessagePayloadContent{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessagePayloadContent) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessagePayloadContent) ProtoMessage() {} func (x *MessagePayloadContent) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[2] 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 MessagePayloadContent.ProtoReflect.Descriptor instead. func (*MessagePayloadContent) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{2} } func (x *MessagePayloadContent) GetMessageContent() *MessageContent { if x != nil { return x.MessageContent } return nil } type OpenConversationPayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ConversationID string `protobuf:"bytes,2,opt,name=conversationID,proto3" json:"conversationID,omitempty"` } func (x *OpenConversationPayload) Reset() { *x = OpenConversationPayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OpenConversationPayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*OpenConversationPayload) ProtoMessage() {} func (x *OpenConversationPayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[3] 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 OpenConversationPayload.ProtoReflect.Descriptor instead. func (*OpenConversationPayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{3} } func (x *OpenConversationPayload) GetConversationID() string { if x != nil { return x.ConversationID } return "" } type PrepareOpenConversationPayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field2 int64 `protobuf:"varint,2,opt,name=field2,proto3" json:"field2,omitempty"` // only seen value 1 } func (x *PrepareOpenConversationPayload) Reset() { *x = PrepareOpenConversationPayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PrepareOpenConversationPayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*PrepareOpenConversationPayload) ProtoMessage() {} func (x *PrepareOpenConversationPayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[4] 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 PrepareOpenConversationPayload.ProtoReflect.Descriptor instead. func (*PrepareOpenConversationPayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{4} } func (x *PrepareOpenConversationPayload) GetField2() int64 { if x != nil { return x.Field2 } return 0 } type FetchConversationMessagesPayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ConversationID string `protobuf:"bytes,2,opt,name=conversationID,proto3" json:"conversationID,omitempty"` Count int64 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"` Cursor *Cursor `protobuf:"bytes,5,opt,name=cursor,proto3" json:"cursor,omitempty"` } func (x *FetchConversationMessagesPayload) Reset() { *x = FetchConversationMessagesPayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FetchConversationMessagesPayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*FetchConversationMessagesPayload) ProtoMessage() {} func (x *FetchConversationMessagesPayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[5] 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 FetchConversationMessagesPayload.ProtoReflect.Descriptor instead. func (*FetchConversationMessagesPayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{5} } func (x *FetchConversationMessagesPayload) GetConversationID() string { if x != nil { return x.ConversationID } return "" } func (x *FetchConversationMessagesPayload) GetCount() int64 { if x != nil { return x.Count } return 0 } func (x *FetchConversationMessagesPayload) GetCursor() *Cursor { if x != nil { return x.Cursor } return nil } type ListCoversationsPayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` // no idea if this is actually amount to list Field4 int64 `protobuf:"varint,4,opt,name=field4,proto3" json:"field4,omitempty"` // no idea what this is , but only value ive seen is 1 } func (x *ListCoversationsPayload) Reset() { *x = ListCoversationsPayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListCoversationsPayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListCoversationsPayload) ProtoMessage() {} func (x *ListCoversationsPayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[6] 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 ListCoversationsPayload.ProtoReflect.Descriptor instead. func (*ListCoversationsPayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{6} } func (x *ListCoversationsPayload) GetCount() int64 { if x != nil { return x.Count } return 0 } func (x *ListCoversationsPayload) GetField4() int64 { if x != nil { return x.Field4 } return 0 } type FetchMessagesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Messages []*Message `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages,omitempty"` SomeBytes []byte `protobuf:"bytes,3,opt,name=someBytes,proto3" json:"someBytes,omitempty"` TotalMessages int64 `protobuf:"varint,4,opt,name=totalMessages,proto3" json:"totalMessages,omitempty"` Cursor *Cursor `protobuf:"bytes,5,opt,name=cursor,proto3" json:"cursor,omitempty"` } func (x *FetchMessagesResponse) Reset() { *x = FetchMessagesResponse{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FetchMessagesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FetchMessagesResponse) ProtoMessage() {} func (x *FetchMessagesResponse) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[7] 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 FetchMessagesResponse.ProtoReflect.Descriptor instead. func (*FetchMessagesResponse) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{7} } func (x *FetchMessagesResponse) GetMessages() []*Message { if x != nil { return x.Messages } return nil } func (x *FetchMessagesResponse) GetSomeBytes() []byte { if x != nil { return x.SomeBytes } return nil } func (x *FetchMessagesResponse) GetTotalMessages() int64 { if x != nil { return x.TotalMessages } return 0 } func (x *FetchMessagesResponse) GetCursor() *Cursor { if x != nil { return x.Cursor } return nil } type Cursor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SomeStr string `protobuf:"bytes,1,opt,name=someStr,proto3" json:"someStr,omitempty"` NextCursor int64 `protobuf:"varint,2,opt,name=nextCursor,proto3" json:"nextCursor,omitempty"` } func (x *Cursor) Reset() { *x = Cursor{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Cursor) String() string { return protoimpl.X.MessageStringOf(x) } func (*Cursor) ProtoMessage() {} func (x *Cursor) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[8] 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 Cursor.ProtoReflect.Descriptor instead. func (*Cursor) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{8} } func (x *Cursor) GetSomeStr() string { if x != nil { return x.SomeStr } return "" } func (x *Cursor) GetNextCursor() int64 { if x != nil { return x.NextCursor } return 0 } type Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MessageID string `protobuf:"bytes,1,opt,name=messageID,proto3" json:"messageID,omitempty"` From *IsFromMe `protobuf:"bytes,3,opt,name=from,proto3" json:"from,omitempty"` MessageStatus *MessageStatus `protobuf:"bytes,4,opt,name=messageStatus,proto3" json:"messageStatus,omitempty"` Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"` ConversationID string `protobuf:"bytes,7,opt,name=conversationID,proto3" json:"conversationID,omitempty"` ParticipantID string `protobuf:"bytes,9,opt,name=participantID,proto3" json:"participantID,omitempty"` MessageInfo []*MessageInfo `protobuf:"bytes,10,rep,name=messageInfo,proto3" json:"messageInfo,omitempty"` Type MessageType `protobuf:"varint,11,opt,name=type,proto3,enum=conversations.MessageType" json:"type,omitempty"` TmpId string `protobuf:"bytes,12,opt,name=tmpId,proto3" json:"tmpId,omitempty"` } func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[9] 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 Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{9} } func (x *Message) GetMessageID() string { if x != nil { return x.MessageID } return "" } func (x *Message) GetFrom() *IsFromMe { if x != nil { return x.From } return nil } func (x *Message) GetMessageStatus() *MessageStatus { if x != nil { return x.MessageStatus } return nil } func (x *Message) GetTimestamp() int64 { if x != nil { return x.Timestamp } return 0 } func (x *Message) GetConversationID() string { if x != nil { return x.ConversationID } return "" } func (x *Message) GetParticipantID() string { if x != nil { return x.ParticipantID } return "" } func (x *Message) GetMessageInfo() []*MessageInfo { if x != nil { return x.MessageInfo } return nil } func (x *Message) GetType() MessageType { if x != nil { return x.Type } return MessageType_UNKNOWN } func (x *Message) GetTmpId() string { if x != nil { return x.TmpId } return "" } type MessageInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OrderInternal string `protobuf:"bytes,1,opt,name=orderInternal,proto3" json:"orderInternal,omitempty"` // Types that are assignable to Data: // // *MessageInfo_MessageContent // *MessageInfo_ImageContent Data isMessageInfo_Data `protobuf_oneof:"data"` } func (x *MessageInfo) Reset() { *x = MessageInfo{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageInfo) ProtoMessage() {} func (x *MessageInfo) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[10] 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 MessageInfo.ProtoReflect.Descriptor instead. func (*MessageInfo) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{10} } func (x *MessageInfo) GetOrderInternal() string { if x != nil { return x.OrderInternal } return "" } func (m *MessageInfo) GetData() isMessageInfo_Data { if m != nil { return m.Data } return nil } func (x *MessageInfo) GetMessageContent() *MessageContent { if x, ok := x.GetData().(*MessageInfo_MessageContent); ok { return x.MessageContent } return nil } func (x *MessageInfo) GetImageContent() *ImageContent { if x, ok := x.GetData().(*MessageInfo_ImageContent); ok { return x.ImageContent } return nil } type isMessageInfo_Data interface { isMessageInfo_Data() } type MessageInfo_MessageContent struct { MessageContent *MessageContent `protobuf:"bytes,2,opt,name=messageContent,proto3,oneof"` } type MessageInfo_ImageContent struct { ImageContent *ImageContent `protobuf:"bytes,3,opt,name=imageContent,proto3,oneof"` } func (*MessageInfo_MessageContent) isMessageInfo_Data() {} func (*MessageInfo_ImageContent) isMessageInfo_Data() {} type ImageContent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SomeNumber int64 `protobuf:"varint,1,opt,name=someNumber,proto3" json:"someNumber,omitempty"` ImageID string `protobuf:"bytes,2,opt,name=imageID,proto3" json:"imageID,omitempty"` ImageName string `protobuf:"bytes,4,opt,name=imageName,proto3" json:"imageName,omitempty"` Size int64 `protobuf:"varint,5,opt,name=size,proto3" json:"size,omitempty"` Pixels *ImagePixels `protobuf:"bytes,6,opt,name=pixels,proto3" json:"pixels,omitempty"` ImageData []byte `protobuf:"bytes,7,opt,name=imageData,proto3" json:"imageData,omitempty"` ImageID2 string `protobuf:"bytes,9,opt,name=imageID2,proto3" json:"imageID2,omitempty"` DecryptionKey []byte `protobuf:"bytes,11,opt,name=decryptionKey,proto3" json:"decryptionKey,omitempty"` DecryptionKey2 []byte `protobuf:"bytes,12,opt,name=decryptionKey2,proto3" json:"decryptionKey2,omitempty"` // same value as decryptionkey? } func (x *ImageContent) Reset() { *x = ImageContent{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ImageContent) String() string { return protoimpl.X.MessageStringOf(x) } func (*ImageContent) ProtoMessage() {} func (x *ImageContent) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[11] 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 ImageContent.ProtoReflect.Descriptor instead. func (*ImageContent) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{11} } func (x *ImageContent) GetSomeNumber() int64 { if x != nil { return x.SomeNumber } return 0 } func (x *ImageContent) GetImageID() string { if x != nil { return x.ImageID } return "" } func (x *ImageContent) GetImageName() string { if x != nil { return x.ImageName } return "" } func (x *ImageContent) GetSize() int64 { if x != nil { return x.Size } return 0 } func (x *ImageContent) GetPixels() *ImagePixels { if x != nil { return x.Pixels } return nil } func (x *ImageContent) GetImageData() []byte { if x != nil { return x.ImageData } return nil } func (x *ImageContent) GetImageID2() string { if x != nil { return x.ImageID2 } return "" } func (x *ImageContent) GetDecryptionKey() []byte { if x != nil { return x.DecryptionKey } return nil } func (x *ImageContent) GetDecryptionKey2() []byte { if x != nil { return x.DecryptionKey2 } return nil } type ImagePixels struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Width int64 `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"` Height int64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` } func (x *ImagePixels) Reset() { *x = ImagePixels{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ImagePixels) String() string { return protoimpl.X.MessageStringOf(x) } func (*ImagePixels) ProtoMessage() {} func (x *ImagePixels) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[12] 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 ImagePixels.ProtoReflect.Descriptor instead. func (*ImagePixels) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{12} } func (x *ImagePixels) GetWidth() int64 { if x != nil { return x.Width } return 0 } func (x *ImagePixels) GetHeight() int64 { if x != nil { return x.Height } return 0 } type MessageContent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` } func (x *MessageContent) Reset() { *x = MessageContent{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageContent) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageContent) ProtoMessage() {} func (x *MessageContent) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[13] 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 MessageContent.ProtoReflect.Descriptor instead. func (*MessageContent) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{13} } func (x *MessageContent) GetContent() string { if x != nil { return x.Content } return "" } type IsFromMe struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FromMe bool `protobuf:"varint,1,opt,name=fromMe,proto3" json:"fromMe,omitempty"` } func (x *IsFromMe) Reset() { *x = IsFromMe{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IsFromMe) String() string { return protoimpl.X.MessageStringOf(x) } func (*IsFromMe) ProtoMessage() {} func (x *IsFromMe) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[14] 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 IsFromMe.ProtoReflect.Descriptor instead. func (*IsFromMe) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{14} } func (x *IsFromMe) GetFromMe() bool { if x != nil { return x.FromMe } return false } type MessageStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // // MMS / SMS // UNKNOWN_STATUS = 0; // SENDING = 5; // SENT = 1; // // // RCS // READ|SEEN = 11; Code int64 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` ErrMsg string `protobuf:"bytes,4,opt,name=errMsg,proto3" json:"errMsg,omitempty"` MsgStatus string `protobuf:"bytes,5,opt,name=msgStatus,proto3" json:"msgStatus,omitempty"` } func (x *MessageStatus) Reset() { *x = MessageStatus{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageStatus) ProtoMessage() {} func (x *MessageStatus) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[15] 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 MessageStatus.ProtoReflect.Descriptor instead. func (*MessageStatus) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{15} } func (x *MessageStatus) GetCode() int64 { if x != nil { return x.Code } return 0 } func (x *MessageStatus) GetErrMsg() string { if x != nil { return x.ErrMsg } return "" } func (x *MessageStatus) GetMsgStatus() string { if x != nil { return x.MsgStatus } return "" } type Conversations struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Conversations []*Conversation `protobuf:"bytes,2,rep,name=conversations,proto3" json:"conversations,omitempty"` } func (x *Conversations) Reset() { *x = Conversations{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Conversations) String() string { return protoimpl.X.MessageStringOf(x) } func (*Conversations) ProtoMessage() {} func (x *Conversations) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[16] 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 Conversations.ProtoReflect.Descriptor instead. func (*Conversations) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{16} } func (x *Conversations) GetConversations() []*Conversation { if x != nil { return x.Conversations } return nil } type Conversation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ConversationID string `protobuf:"bytes,1,opt,name=conversationID,proto3" json:"conversationID,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` LatestMessage *LatestMessage `protobuf:"bytes,4,opt,name=latestMessage,proto3" json:"latestMessage,omitempty"` TimestampMS int64 `protobuf:"varint,5,opt,name=timestampMS,proto3" json:"timestampMS,omitempty"` IsGroupChat bool `protobuf:"varint,10,opt,name=isGroupChat,proto3" json:"isGroupChat,omitempty"` // not certain SelfParticipantID string `protobuf:"bytes,11,opt,name=selfParticipantID,proto3" json:"selfParticipantID,omitempty"` // bool bool1 = 13; Status int64 `protobuf:"varint,12,opt,name=status,proto3" json:"status,omitempty"` HashHex string `protobuf:"bytes,15,opt,name=hashHex,proto3" json:"hashHex,omitempty"` MessageID string `protobuf:"bytes,17,opt,name=messageID,proto3" json:"messageID,omitempty"` Participants []*Participant `protobuf:"bytes,20,rep,name=participants,proto3" json:"participants,omitempty"` OtherParticipants []string `protobuf:"bytes,21,rep,name=otherParticipants,proto3" json:"otherParticipants,omitempty"` // participant ids excluding me Type int64 `protobuf:"varint,22,opt,name=type,proto3" json:"type,omitempty"` } func (x *Conversation) Reset() { *x = Conversation{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Conversation) String() string { return protoimpl.X.MessageStringOf(x) } func (*Conversation) ProtoMessage() {} func (x *Conversation) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[17] 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 Conversation.ProtoReflect.Descriptor instead. func (*Conversation) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{17} } func (x *Conversation) GetConversationID() string { if x != nil { return x.ConversationID } return "" } func (x *Conversation) GetName() string { if x != nil { return x.Name } return "" } func (x *Conversation) GetLatestMessage() *LatestMessage { if x != nil { return x.LatestMessage } return nil } func (x *Conversation) GetTimestampMS() int64 { if x != nil { return x.TimestampMS } return 0 } func (x *Conversation) GetIsGroupChat() bool { if x != nil { return x.IsGroupChat } return false } func (x *Conversation) GetSelfParticipantID() string { if x != nil { return x.SelfParticipantID } return "" } func (x *Conversation) GetStatus() int64 { if x != nil { return x.Status } return 0 } func (x *Conversation) GetHashHex() string { if x != nil { return x.HashHex } return "" } func (x *Conversation) GetMessageID() string { if x != nil { return x.MessageID } return "" } func (x *Conversation) GetParticipants() []*Participant { if x != nil { return x.Participants } return nil } func (x *Conversation) GetOtherParticipants() []string { if x != nil { return x.OtherParticipants } return nil } func (x *Conversation) GetType() int64 { if x != nil { return x.Type } return 0 } type Participant struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SmallInfo *SmallInfo `protobuf:"bytes,1,opt,name=smallInfo,proto3" json:"smallInfo,omitempty"` HashHex string `protobuf:"bytes,5,opt,name=hashHex,proto3" json:"hashHex,omitempty"` IsMe bool `protobuf:"varint,6,opt,name=isMe,proto3" json:"isMe,omitempty"` Muted *Muted `protobuf:"bytes,7,opt,name=muted,proto3" json:"muted,omitempty"` // bool bool2 = 8; Bs int64 `protobuf:"varint,14,opt,name=bs,proto3" json:"bs,omitempty"` DisplayName string `protobuf:"bytes,15,opt,name=displayName,proto3" json:"displayName,omitempty"` } func (x *Participant) Reset() { *x = Participant{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Participant) String() string { return protoimpl.X.MessageStringOf(x) } func (*Participant) ProtoMessage() {} func (x *Participant) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[18] 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 Participant.ProtoReflect.Descriptor instead. func (*Participant) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{18} } func (x *Participant) GetSmallInfo() *SmallInfo { if x != nil { return x.SmallInfo } return nil } func (x *Participant) GetHashHex() string { if x != nil { return x.HashHex } return "" } func (x *Participant) GetIsMe() bool { if x != nil { return x.IsMe } return false } func (x *Participant) GetMuted() *Muted { if x != nil { return x.Muted } return nil } func (x *Participant) GetBs() int64 { if x != nil { return x.Bs } return 0 } func (x *Participant) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } type SmallInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type int64 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` Number string `protobuf:"bytes,2,opt,name=number,proto3" json:"number,omitempty"` ParticipantID string `protobuf:"bytes,3,opt,name=participantID,proto3" json:"participantID,omitempty"` } func (x *SmallInfo) Reset() { *x = SmallInfo{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SmallInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SmallInfo) ProtoMessage() {} func (x *SmallInfo) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[19] 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 SmallInfo.ProtoReflect.Descriptor instead. func (*SmallInfo) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{19} } func (x *SmallInfo) GetType() int64 { if x != nil { return x.Type } return 0 } func (x *SmallInfo) GetNumber() string { if x != nil { return x.Number } return "" } func (x *SmallInfo) GetParticipantID() string { if x != nil { return x.ParticipantID } return "" } type LatestMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` FromMe bool `protobuf:"varint,2,opt,name=fromMe,proto3" json:"fromMe,omitempty"` // isMe? DisplayName string `protobuf:"bytes,4,opt,name=displayName,proto3" json:"displayName,omitempty"` //Unknown unknown = 5; } func (x *LatestMessage) Reset() { *x = LatestMessage{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LatestMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*LatestMessage) ProtoMessage() {} func (x *LatestMessage) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[20] 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 LatestMessage.ProtoReflect.Descriptor instead. func (*LatestMessage) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{20} } func (x *LatestMessage) GetContent() string { if x != nil { return x.Content } return "" } func (x *LatestMessage) GetFromMe() bool { if x != nil { return x.FromMe } return false } func (x *LatestMessage) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } type Unknown struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field1 int64 `protobuf:"varint,1,opt,name=field1,proto3" json:"field1,omitempty"` Field2 int64 `protobuf:"varint,2,opt,name=field2,proto3" json:"field2,omitempty"` } func (x *Unknown) Reset() { *x = Unknown{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Unknown) String() string { return protoimpl.X.MessageStringOf(x) } func (*Unknown) ProtoMessage() {} func (x *Unknown) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[21] 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 Unknown.ProtoReflect.Descriptor instead. func (*Unknown) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{21} } func (x *Unknown) GetField1() int64 { if x != nil { return x.Field1 } return 0 } func (x *Unknown) GetField2() int64 { if x != nil { return x.Field2 } return 0 } type Muted struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsMuted bool `protobuf:"varint,1,opt,name=isMuted,proto3" json:"isMuted,omitempty"` } func (x *Muted) Reset() { *x = Muted{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Muted) String() string { return protoimpl.X.MessageStringOf(x) } func (*Muted) ProtoMessage() {} func (x *Muted) ProtoReflect() protoreflect.Message { mi := &file_conversations_proto_msgTypes[22] 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 Muted.ProtoReflect.Descriptor instead. func (*Muted) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{22} } func (x *Muted) GetIsMuted() bool { if x != nil { return x.IsMuted } return false } var File_conversations_proto protoreflect.FileDescriptor var file_conversations_proto_rawDesc = []byte{ 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x99, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x22, 0xae, 0x02, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x12, 0x5a, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x32, 0x22, 0x5e, 0x0a, 0x15, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x41, 0x0a, 0x17, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x38, 0x0a, 0x1e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x22, 0x8f, 0x01, 0x0a, 0x20, 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x47, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x22, 0xbe, 0x01, 0x0a, 0x15, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6f, 0x6d, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x6f, 0x6d, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x42, 0x0a, 0x06, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x53, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x53, 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x88, 0x03, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x12, 0x2b, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x42, 0x0a, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x47, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb6, 0x02, 0x0a, 0x0c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x6f, 0x6d, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x6f, 0x6d, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x06, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x44, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x44, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x32, 0x22, 0x3b, 0x0a, 0x0b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x2a, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x22, 0x0a, 0x08, 0x49, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x22, 0x59, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x52, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xd2, 0x03, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x53, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x53, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x68, 0x48, 0x65, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, 0x68, 0x48, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x12, 0x3e, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xd1, 0x01, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x68, 0x48, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, 0x68, 0x48, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x62, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x62, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x5d, 0x0a, 0x09, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x63, 0x0a, 0x0d, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x39, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x22, 0x21, 0x0a, 0x05, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x2a, 0xa0, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x45, 0x58, 0x54, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x49, 0x43, 0x48, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x43, 0x41, 0x52, 0x44, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x4d, 0x53, 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x09, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x10, 0x0a, 0x2a, 0x3a, 0x0a, 0x0d, 0x4d, 0x73, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x42, 0x0e, 0x5a, 0x0c, 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_conversations_proto_rawDescOnce sync.Once file_conversations_proto_rawDescData = file_conversations_proto_rawDesc ) func file_conversations_proto_rawDescGZIP() []byte { file_conversations_proto_rawDescOnce.Do(func() { file_conversations_proto_rawDescData = protoimpl.X.CompressGZIP(file_conversations_proto_rawDescData) }) return file_conversations_proto_rawDescData } var file_conversations_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_conversations_proto_msgTypes = make([]protoimpl.MessageInfo, 23) var file_conversations_proto_goTypes = []interface{}{ (MessageType)(0), // 0: conversations.MessageType (MsgStatusCode)(0), // 1: conversations.MsgStatusCode (*SendMessagePayload)(nil), // 2: conversations.SendMessagePayload (*MessagePayload)(nil), // 3: conversations.MessagePayload (*MessagePayloadContent)(nil), // 4: conversations.MessagePayloadContent (*OpenConversationPayload)(nil), // 5: conversations.OpenConversationPayload (*PrepareOpenConversationPayload)(nil), // 6: conversations.PrepareOpenConversationPayload (*FetchConversationMessagesPayload)(nil), // 7: conversations.FetchConversationMessagesPayload (*ListCoversationsPayload)(nil), // 8: conversations.ListCoversationsPayload (*FetchMessagesResponse)(nil), // 9: conversations.FetchMessagesResponse (*Cursor)(nil), // 10: conversations.Cursor (*Message)(nil), // 11: conversations.Message (*MessageInfo)(nil), // 12: conversations.MessageInfo (*ImageContent)(nil), // 13: conversations.ImageContent (*ImagePixels)(nil), // 14: conversations.ImagePixels (*MessageContent)(nil), // 15: conversations.MessageContent (*IsFromMe)(nil), // 16: conversations.IsFromMe (*MessageStatus)(nil), // 17: conversations.MessageStatus (*Conversations)(nil), // 18: conversations.Conversations (*Conversation)(nil), // 19: conversations.Conversation (*Participant)(nil), // 20: conversations.Participant (*SmallInfo)(nil), // 21: conversations.SmallInfo (*LatestMessage)(nil), // 22: conversations.LatestMessage (*Unknown)(nil), // 23: conversations.Unknown (*Muted)(nil), // 24: conversations.Muted } var file_conversations_proto_depIdxs = []int32{ 3, // 0: conversations.SendMessagePayload.messagePayload:type_name -> conversations.MessagePayload 4, // 1: conversations.MessagePayload.messagePayloadContent:type_name -> conversations.MessagePayloadContent 12, // 2: conversations.MessagePayload.messageInfo:type_name -> conversations.MessageInfo 15, // 3: conversations.MessagePayloadContent.messageContent:type_name -> conversations.MessageContent 10, // 4: conversations.FetchConversationMessagesPayload.cursor:type_name -> conversations.Cursor 11, // 5: conversations.FetchMessagesResponse.messages:type_name -> conversations.Message 10, // 6: conversations.FetchMessagesResponse.cursor:type_name -> conversations.Cursor 16, // 7: conversations.Message.from:type_name -> conversations.IsFromMe 17, // 8: conversations.Message.messageStatus:type_name -> conversations.MessageStatus 12, // 9: conversations.Message.messageInfo:type_name -> conversations.MessageInfo 0, // 10: conversations.Message.type:type_name -> conversations.MessageType 15, // 11: conversations.MessageInfo.messageContent:type_name -> conversations.MessageContent 13, // 12: conversations.MessageInfo.imageContent:type_name -> conversations.ImageContent 14, // 13: conversations.ImageContent.pixels:type_name -> conversations.ImagePixels 19, // 14: conversations.Conversations.conversations:type_name -> conversations.Conversation 22, // 15: conversations.Conversation.latestMessage:type_name -> conversations.LatestMessage 20, // 16: conversations.Conversation.participants:type_name -> conversations.Participant 21, // 17: conversations.Participant.smallInfo:type_name -> conversations.SmallInfo 24, // 18: conversations.Participant.muted:type_name -> conversations.Muted 19, // [19:19] is the sub-list for method output_type 19, // [19:19] is the sub-list for method input_type 19, // [19:19] is the sub-list for extension type_name 19, // [19:19] is the sub-list for extension extendee 0, // [0:19] is the sub-list for field type_name } func init() { file_conversations_proto_init() } func file_conversations_proto_init() { if File_conversations_proto != nil { return } if !protoimpl.UnsafeEnabled { file_conversations_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMessagePayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessagePayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessagePayloadContent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OpenConversationPayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrepareOpenConversationPayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FetchConversationMessagesPayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListCoversationsPayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FetchMessagesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Cursor); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImageContent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImagePixels); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageContent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsFromMe); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageStatus); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Conversations); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Conversation); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Participant); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SmallInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LatestMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Unknown); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Muted); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_conversations_proto_msgTypes[10].OneofWrappers = []interface{}{ (*MessageInfo_MessageContent)(nil), (*MessageInfo_ImageContent)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_conversations_proto_rawDesc, NumEnums: 2, NumMessages: 23, NumExtensions: 0, NumServices: 0, }, GoTypes: file_conversations_proto_goTypes, DependencyIndexes: file_conversations_proto_depIdxs, EnumInfos: file_conversations_proto_enumTypes, MessageInfos: file_conversations_proto_msgTypes, }.Build() File_conversations_proto = out.File file_conversations_proto_rawDesc = nil file_conversations_proto_goTypes = nil file_conversations_proto_depIdxs = nil }