From 5648912288cf325289492582cbcd472907b437ba Mon Sep 17 00:00:00 2001 From: Mrs4s Date: Tue, 9 Mar 2021 22:48:45 +0800 Subject: [PATCH] feat group name updated event. --- client/entities.go | 7 + client/events.go | 16 + client/online_push.go | 20 +- client/pb/data.pb.go | 697 +-- client/pb/data.proto | 12 - client/pb/msgtype0x210/subMsgType0x27.pb.go | 4614 +++++++++++++++++++ client/pb/msgtype0x210/subMsgType0x27.proto | 341 ++ 7 files changed, 5249 insertions(+), 458 deletions(-) create mode 100644 client/pb/msgtype0x210/subMsgType0x27.pb.go create mode 100644 client/pb/msgtype0x210/subMsgType0x27.proto diff --git a/client/entities.go b/client/entities.go index deb163b7..5d0e1abd 100644 --- a/client/entities.go +++ b/client/entities.go @@ -105,6 +105,13 @@ type ( Member *GroupMemberInfo } + GroupNameUpdatedEvent struct { + Group *GroupInfo + OldName string + NewName string + OperatorUin int64 + } + MemberCardUpdatedEvent struct { Group *GroupInfo OldCard string diff --git a/client/events.go b/client/events.go index 1e9b60ce..1d78cf35 100644 --- a/client/events.go +++ b/client/events.go @@ -21,6 +21,7 @@ type eventHandlers struct { memberJoinedHandlers []func(*QQClient, *MemberJoinGroupEvent) memberLeavedHandlers []func(*QQClient, *MemberLeaveGroupEvent) memberCardUpdatedHandlers []func(*QQClient, *MemberCardUpdatedEvent) + groupNameUpdatedHandlers []func(*QQClient, *GroupNameUpdatedEvent) permissionChangedHandlers []func(*QQClient, *MemberPermissionChangedEvent) groupInvitedHandlers []func(*QQClient, *GroupInvitedRequest) joinRequestHandlers []func(*QQClient, *UserJoinGroupRequest) @@ -85,6 +86,10 @@ func (c *QQClient) OnGroupMemberCardUpdated(f func(*QQClient, *MemberCardUpdated c.eventHandlers.memberCardUpdatedHandlers = append(c.eventHandlers.memberCardUpdatedHandlers, f) } +func (c *QQClient) OnGroupNameUpdated(f func(*QQClient, *GroupNameUpdatedEvent)) { + c.eventHandlers.groupNameUpdatedHandlers = append(c.eventHandlers.groupNameUpdatedHandlers, f) +} + func (c *QQClient) OnGroupMemberPermissionChanged(f func(*QQClient, *MemberPermissionChangedEvent)) { c.eventHandlers.permissionChangedHandlers = append(c.eventHandlers.permissionChangedHandlers, f) } @@ -292,6 +297,17 @@ func (c *QQClient) dispatchMemberCardUpdatedEvent(e *MemberCardUpdatedEvent) { } } +func (c *QQClient) dispatchGroupNameUpdatedEvent(e *GroupNameUpdatedEvent) { + if e == nil { + return + } + for _, f := range c.eventHandlers.groupNameUpdatedHandlers { + cover(func() { + f(c, e) + }) + } +} + func (c *QQClient) dispatchPermissionChanged(e *MemberPermissionChangedEvent) { if e == nil { return diff --git a/client/online_push.go b/client/online_push.go index 42ef4ed7..85aeaf12 100644 --- a/client/online_push.go +++ b/client/online_push.go @@ -2,6 +2,7 @@ package client import ( "fmt" + "github.com/Mrs4s/MiraiGo/client/pb/msgtype0x210" "strconv" "time" @@ -169,11 +170,28 @@ func msgType0x210SubD4Decoder(c *QQClient, protobuf []byte) error { } func msgType0x210Sub27Decoder(c *QQClient, protobuf []byte) error { - s27 := pb.Sub27{} + s27 := msgtype0x210.SubMsg0X27Body{} if err := proto.Unmarshal(protobuf, &s27); err != nil { return errors.Wrap(err, "failed to unmarshal protobuf message") } for _, m := range s27.ModInfos { + if m.ModGroupProfile != nil { + for _, info := range m.ModGroupProfile.GroupProfileInfos { + switch info.GetField() { + case 1: + if g := c.FindGroup(int64(m.ModGroupProfile.GetGroupCode())); g != nil { + old := g.Name + g.Name = string(info.GetValue()) + c.dispatchGroupNameUpdatedEvent(&GroupNameUpdatedEvent{ + Group: g, + OldName: old, + NewName: g.Name, + OperatorUin: int64(m.ModGroupProfile.GetCmdUin()), + }) + } + } + } + } if m.DelFriend != nil { frdUin := m.DelFriend.Uins[0] if frd := c.FindFriend(int64(frdUin)); frd != nil { diff --git a/client/pb/data.pb.go b/client/pb/data.pb.go index 17e11ed2..b5d61da4 100644 --- a/client/pb/data.pb.go +++ b/client/pb/data.pb.go @@ -1,18 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.25.0 -// protoc v3.15.3 +// protoc v3.11.4 // source: data.proto package pb import ( - reflect "reflect" - sync "sync" - proto "github.com/golang/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) const ( @@ -2106,147 +2105,6 @@ func (x *MessageItem) GetSig() []byte { return nil } -type Sub27DelFriend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Uins []uint64 `protobuf:"varint,1,rep,packed,name=uins,proto3" json:"uins,omitempty"` -} - -func (x *Sub27DelFriend) Reset() { - *x = Sub27DelFriend{} - if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Sub27DelFriend) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Sub27DelFriend) ProtoMessage() {} - -func (x *Sub27DelFriend) ProtoReflect() protoreflect.Message { - mi := &file_data_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 Sub27DelFriend.ProtoReflect.Descriptor instead. -func (*Sub27DelFriend) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{19} -} - -func (x *Sub27DelFriend) GetUins() []uint64 { - if x != nil { - return x.Uins - } - return nil -} - -type Sub27ForwardBody struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DelFriend *Sub27DelFriend `protobuf:"bytes,14,opt,name=delFriend,proto3" json:"delFriend,omitempty"` -} - -func (x *Sub27ForwardBody) Reset() { - *x = Sub27ForwardBody{} - if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Sub27ForwardBody) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Sub27ForwardBody) ProtoMessage() {} - -func (x *Sub27ForwardBody) ProtoReflect() protoreflect.Message { - mi := &file_data_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 Sub27ForwardBody.ProtoReflect.Descriptor instead. -func (*Sub27ForwardBody) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{20} -} - -func (x *Sub27ForwardBody) GetDelFriend() *Sub27DelFriend { - if x != nil { - return x.DelFriend - } - return nil -} - -type Sub27 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ModInfos []*Sub27ForwardBody `protobuf:"bytes,1,rep,name=modInfos,proto3" json:"modInfos,omitempty"` -} - -func (x *Sub27) Reset() { - *x = Sub27{} - if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Sub27) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Sub27) ProtoMessage() {} - -func (x *Sub27) ProtoReflect() protoreflect.Message { - mi := &file_data_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 Sub27.ProtoReflect.Descriptor instead. -func (*Sub27) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{21} -} - -func (x *Sub27) GetModInfos() []*Sub27ForwardBody { - if x != nil { - return x.ModInfos - } - return nil -} - type SubD4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2258,7 +2116,7 @@ type SubD4 struct { func (x *SubD4) Reset() { *x = SubD4{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[22] + mi := &file_data_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2271,7 +2129,7 @@ func (x *SubD4) String() string { func (*SubD4) ProtoMessage() {} func (x *SubD4) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[22] + mi := &file_data_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2284,7 +2142,7 @@ func (x *SubD4) ProtoReflect() protoreflect.Message { // Deprecated: Use SubD4.ProtoReflect.Descriptor instead. func (*SubD4) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{22} + return file_data_proto_rawDescGZIP(), []int{19} } func (x *SubD4) GetUin() int64 { @@ -2309,7 +2167,7 @@ type Sub8A struct { func (x *Sub8A) Reset() { *x = Sub8A{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[23] + mi := &file_data_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2322,7 +2180,7 @@ func (x *Sub8A) String() string { func (*Sub8A) ProtoMessage() {} func (x *Sub8A) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[23] + mi := &file_data_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2335,7 +2193,7 @@ func (x *Sub8A) ProtoReflect() protoreflect.Message { // Deprecated: Use Sub8A.ProtoReflect.Descriptor instead. func (*Sub8A) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{23} + return file_data_proto_rawDescGZIP(), []int{20} } func (x *Sub8A) GetMsgInfo() []*Sub8AMsgInfo { @@ -2392,7 +2250,7 @@ type Sub8AMsgInfo struct { func (x *Sub8AMsgInfo) Reset() { *x = Sub8AMsgInfo{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[24] + mi := &file_data_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2405,7 +2263,7 @@ func (x *Sub8AMsgInfo) String() string { func (*Sub8AMsgInfo) ProtoMessage() {} func (x *Sub8AMsgInfo) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[24] + mi := &file_data_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2418,7 +2276,7 @@ func (x *Sub8AMsgInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use Sub8AMsgInfo.ProtoReflect.Descriptor instead. func (*Sub8AMsgInfo) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{24} + return file_data_proto_rawDescGZIP(), []int{21} } func (x *Sub8AMsgInfo) GetFromUin() int64 { @@ -2496,7 +2354,7 @@ type SubB3 struct { func (x *SubB3) Reset() { *x = SubB3{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[25] + mi := &file_data_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2509,7 +2367,7 @@ func (x *SubB3) String() string { func (*SubB3) ProtoMessage() {} func (x *SubB3) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[25] + mi := &file_data_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2522,7 +2380,7 @@ func (x *SubB3) ProtoReflect() protoreflect.Message { // Deprecated: Use SubB3.ProtoReflect.Descriptor instead. func (*SubB3) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{25} + return file_data_proto_rawDescGZIP(), []int{22} } func (x *SubB3) GetType() int32 { @@ -2551,7 +2409,7 @@ type SubB3AddFrdNotify struct { func (x *SubB3AddFrdNotify) Reset() { *x = SubB3AddFrdNotify{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[26] + mi := &file_data_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2564,7 +2422,7 @@ func (x *SubB3AddFrdNotify) String() string { func (*SubB3AddFrdNotify) ProtoMessage() {} func (x *SubB3AddFrdNotify) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[26] + mi := &file_data_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2577,7 +2435,7 @@ func (x *SubB3AddFrdNotify) ProtoReflect() protoreflect.Message { // Deprecated: Use SubB3AddFrdNotify.ProtoReflect.Descriptor instead. func (*SubB3AddFrdNotify) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{26} + return file_data_proto_rawDescGZIP(), []int{23} } func (x *SubB3AddFrdNotify) GetUin() int64 { @@ -2606,7 +2464,7 @@ type Sub44 struct { func (x *Sub44) Reset() { *x = Sub44{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[27] + mi := &file_data_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2619,7 +2477,7 @@ func (x *Sub44) String() string { func (*Sub44) ProtoMessage() {} func (x *Sub44) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[27] + mi := &file_data_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2632,7 +2490,7 @@ func (x *Sub44) ProtoReflect() protoreflect.Message { // Deprecated: Use Sub44.ProtoReflect.Descriptor instead. func (*Sub44) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{27} + return file_data_proto_rawDescGZIP(), []int{24} } func (x *Sub44) GetFriendSyncMsg() *Sub44FriendSyncMsg { @@ -2667,7 +2525,7 @@ type Sub44FriendSyncMsg struct { func (x *Sub44FriendSyncMsg) Reset() { *x = Sub44FriendSyncMsg{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[28] + mi := &file_data_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2680,7 +2538,7 @@ func (x *Sub44FriendSyncMsg) String() string { func (*Sub44FriendSyncMsg) ProtoMessage() {} func (x *Sub44FriendSyncMsg) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[28] + mi := &file_data_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2693,7 +2551,7 @@ func (x *Sub44FriendSyncMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use Sub44FriendSyncMsg.ProtoReflect.Descriptor instead. func (*Sub44FriendSyncMsg) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{28} + return file_data_proto_rawDescGZIP(), []int{25} } func (x *Sub44FriendSyncMsg) GetUin() int64 { @@ -2781,7 +2639,7 @@ type Sub44GroupSyncMsg struct { func (x *Sub44GroupSyncMsg) Reset() { *x = Sub44GroupSyncMsg{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[29] + mi := &file_data_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2794,7 +2652,7 @@ func (x *Sub44GroupSyncMsg) String() string { func (*Sub44GroupSyncMsg) ProtoMessage() {} func (x *Sub44GroupSyncMsg) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[29] + mi := &file_data_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2807,7 +2665,7 @@ func (x *Sub44GroupSyncMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use Sub44GroupSyncMsg.ProtoReflect.Descriptor instead. func (*Sub44GroupSyncMsg) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{29} + return file_data_proto_rawDescGZIP(), []int{26} } func (x *Sub44GroupSyncMsg) GetMsgType() int32 { @@ -2958,7 +2816,7 @@ type GroupMemberReqBody struct { func (x *GroupMemberReqBody) Reset() { *x = GroupMemberReqBody{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[30] + mi := &file_data_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2971,7 +2829,7 @@ func (x *GroupMemberReqBody) String() string { func (*GroupMemberReqBody) ProtoMessage() {} func (x *GroupMemberReqBody) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[30] + mi := &file_data_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2984,7 +2842,7 @@ func (x *GroupMemberReqBody) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupMemberReqBody.ProtoReflect.Descriptor instead. func (*GroupMemberReqBody) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{30} + return file_data_proto_rawDescGZIP(), []int{27} } func (x *GroupMemberReqBody) GetGroupCode() int64 { @@ -3037,7 +2895,7 @@ type GroupMemberRspBody struct { func (x *GroupMemberRspBody) Reset() { *x = GroupMemberRspBody{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[31] + mi := &file_data_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3050,7 +2908,7 @@ func (x *GroupMemberRspBody) String() string { func (*GroupMemberRspBody) ProtoMessage() {} func (x *GroupMemberRspBody) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[31] + mi := &file_data_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3063,7 +2921,7 @@ func (x *GroupMemberRspBody) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupMemberRspBody.ProtoReflect.Descriptor instead. func (*GroupMemberRspBody) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{31} + return file_data_proto_rawDescGZIP(), []int{28} } func (x *GroupMemberRspBody) GetGroupCode() int64 { @@ -3150,7 +3008,7 @@ type GroupMemberInfo struct { func (x *GroupMemberInfo) Reset() { *x = GroupMemberInfo{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[32] + mi := &file_data_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3163,7 +3021,7 @@ func (x *GroupMemberInfo) String() string { func (*GroupMemberInfo) ProtoMessage() {} func (x *GroupMemberInfo) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[32] + mi := &file_data_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3176,7 +3034,7 @@ func (x *GroupMemberInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupMemberInfo.ProtoReflect.Descriptor instead. func (*GroupMemberInfo) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{32} + return file_data_proto_rawDescGZIP(), []int{29} } func (x *GroupMemberInfo) GetUin() int64 { @@ -3766,200 +3624,190 @@ var file_data_proto_rawDesc = []byte{ 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x22, 0x24, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x32, - 0x37, 0x44, 0x65, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x69, - 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x04, 0x75, 0x69, 0x6e, 0x73, 0x22, 0x41, - 0x0a, 0x10, 0x53, 0x75, 0x62, 0x32, 0x37, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x42, 0x6f, - 0x64, 0x79, 0x12, 0x2d, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x53, 0x75, 0x62, 0x32, 0x37, 0x44, 0x65, 0x6c, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x22, 0x36, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x32, 0x37, 0x12, 0x2d, 0x0a, 0x08, 0x6d, 0x6f, - 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x53, - 0x75, 0x62, 0x32, 0x37, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x52, - 0x08, 0x6d, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x19, 0x0a, 0x05, 0x53, 0x75, 0x62, - 0x44, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x75, 0x69, 0x6e, 0x22, 0xa5, 0x01, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x38, 0x41, 0x12, 0x28, - 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x53, 0x75, 0x62, 0x38, 0x41, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x07, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x69, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, - 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xf2, 0x01, 0x0a, - 0x0c, 0x53, 0x75, 0x62, 0x38, 0x41, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, - 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, - 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, - 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, - 0x53, 0x65, 0x71, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x65, 0x76, 0x53, 0x65, - 0x71, 0x22, 0x59, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x42, 0x33, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3c, - 0x0a, 0x0f, 0x6d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x53, 0x75, 0x62, 0x42, 0x33, 0x41, - 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x0f, 0x6d, 0x73, 0x67, - 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x22, 0x39, 0x0a, 0x11, - 0x53, 0x75, 0x62, 0x42, 0x33, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, - 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x22, 0x7a, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x34, 0x34, - 0x12, 0x39, 0x0a, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x53, 0x75, 0x62, 0x34, 0x34, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x52, 0x0d, 0x66, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x0c, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x53, 0x75, 0x62, 0x34, 0x34, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, - 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, - 0x4d, 0x73, 0x67, 0x22, 0xf0, 0x01, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x34, 0x34, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, - 0x66, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x66, 0x55, 0x69, 0x6e, - 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, - 0x62, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x57, 0x6f, 0x72, - 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x57, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xd1, 0x04, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x34, 0x34, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, - 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, - 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x18, - 0x0a, 0x07, 0x67, 0x72, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x07, 0x67, 0x72, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x67, 0x61, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, - 0x74, 0x55, 0x69, 0x6e, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x70, 0x74, - 0x55, 0x69, 0x6e, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x42, 0x75, 0x66, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x42, 0x75, 0x66, 0x12, 0x18, 0x0a, 0x07, - 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, - 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x69, - 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, - 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x4d, - 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x65, - 0x78, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x4d, 0x65, 0x6d, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x4d, 0x65, - 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63, - 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63, - 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63, 0x53, 0x75, 0x62, 0x49, - 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63, 0x53, - 0x75, 0x62, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x52, - 0x6f, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x78, 0x74, - 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, - 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xac, 0x01, 0x0a, 0x12, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, - 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, - 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, - 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x28, 0x0a, 0x0f, 0x72, 0x69, 0x63, 0x68, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x56, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x69, 0x63, 0x68, 0x43, 0x61, - 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x22, 0xd0, 0x01, 0x0a, 0x12, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, - 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x66, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x73, 0x65, 0x6c, 0x66, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x6d, 0x65, - 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, - 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x65, - 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x6c, 0x66, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0xc5, 0x07, 0x0a, - 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x22, 0x19, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x44, + 0x34, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, + 0x75, 0x69, 0x6e, 0x22, 0xa5, 0x01, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x38, 0x41, 0x12, 0x28, 0x0a, + 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x53, 0x75, 0x62, 0x38, 0x41, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, + 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x69, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, + 0x6e, 0x73, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, + 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, + 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xf2, 0x01, 0x0a, 0x0c, + 0x53, 0x75, 0x62, 0x38, 0x41, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, + 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, + 0x67, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, + 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, + 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x53, + 0x65, 0x71, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x65, 0x76, 0x53, 0x65, 0x71, + 0x22, 0x59, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x42, 0x33, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, + 0x0f, 0x6d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x53, 0x75, 0x62, 0x42, 0x33, 0x41, 0x64, + 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x0f, 0x6d, 0x73, 0x67, 0x41, + 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x22, 0x39, 0x0a, 0x11, 0x53, + 0x75, 0x62, 0x42, 0x33, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, - 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, - 0x72, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, - 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, - 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x43, 0x6f, 0x6e, 0x63, - 0x65, 0x72, 0x6e, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x43, - 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x6e, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, - 0x63, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x76, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6c, 0x65, 0x76, 0x12, 0x12, 0x0a, 0x04, 0x6a, 0x6f, - 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6a, 0x6f, 0x69, 0x6e, 0x12, 0x1c, - 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x12, 0x1c, 0x0a, 0x09, - 0x67, 0x62, 0x61, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x09, 0x67, 0x62, 0x61, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x62, - 0x61, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x62, 0x61, - 0x72, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x62, 0x61, 0x72, 0x43, 0x6e, 0x74, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x67, 0x62, 0x61, 0x72, 0x43, 0x6e, 0x74, 0x12, 0x26, - 0x0a, 0x0e, 0x69, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x43, 0x61, 0x72, 0x64, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, - 0x6f, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x56, 0x69, 0x70, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x56, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, - 0x69, 0x73, 0x59, 0x65, 0x61, 0x72, 0x56, 0x69, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x09, 0x69, 0x73, 0x59, 0x65, 0x61, 0x72, 0x56, 0x69, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, - 0x53, 0x75, 0x70, 0x65, 0x72, 0x56, 0x69, 0x70, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, - 0x69, 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x56, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, - 0x53, 0x75, 0x70, 0x65, 0x72, 0x51, 0x71, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, - 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x51, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x69, 0x70, 0x4c, - 0x65, 0x76, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x76, 0x69, 0x70, 0x4c, 0x65, 0x76, - 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x1d, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x54, - 0x69, 0x74, 0x6c, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x61, 0x6c, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x61, 0x6c, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, - 0x6c, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x23, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, - 0x6a, 0x6f, 0x62, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x18, - 0x0a, 0x07, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x27, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, - 0x0a, 0x05, 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, - 0x6f, 0x6e, 0x6f, 0x72, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x22, 0x7a, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x34, 0x34, 0x12, + 0x39, 0x0a, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x53, 0x75, 0x62, 0x34, 0x34, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x52, 0x0d, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x0c, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x53, 0x75, 0x62, 0x34, 0x34, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, + 0x63, 0x4d, 0x73, 0x67, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, + 0x73, 0x67, 0x22, 0xf0, 0x01, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x34, 0x34, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x66, + 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x66, 0x55, 0x69, 0x6e, 0x12, + 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x46, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x62, + 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x57, 0x6f, 0x72, 0x64, + 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x57, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xd1, 0x04, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x34, 0x34, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, + 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, + 0x07, 0x67, 0x72, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x67, 0x72, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x67, 0x61, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, + 0x55, 0x69, 0x6e, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x55, + 0x69, 0x6e, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x42, 0x75, 0x66, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x42, 0x75, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x61, + 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x75, + 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x69, + 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x4d, 0x61, + 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x65, 0x78, + 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x4d, 0x65, 0x6d, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63, 0x49, + 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63, 0x49, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63, 0x53, 0x75, 0x62, 0x49, 0x64, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63, 0x53, 0x75, + 0x62, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x52, 0x6f, + 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x78, 0x74, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xac, 0x01, 0x0a, 0x12, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, + 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, + 0x0a, 0x0f, 0x72, 0x69, 0x63, 0x68, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x65, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x69, 0x63, 0x68, 0x43, 0x61, 0x72, + 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x22, 0xd0, 0x01, 0x0a, 0x12, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x12, + 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x65, 0x6c, 0x66, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x73, 0x65, 0x6c, 0x66, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x6d, 0x65, 0x6d, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x65, + 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x6c, + 0x66, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x6c, 0x66, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0xc5, 0x07, 0x0a, 0x0f, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, + 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, + 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, + 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x72, + 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x43, 0x6f, 0x6e, 0x63, 0x65, + 0x72, 0x6e, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x43, 0x6f, + 0x6e, 0x63, 0x65, 0x72, 0x6e, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x63, + 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x76, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6c, 0x65, 0x76, 0x12, 0x12, 0x0a, 0x04, 0x6a, 0x6f, 0x69, + 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6a, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a, + 0x09, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x67, + 0x62, 0x61, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x67, 0x62, 0x61, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x62, 0x61, + 0x72, 0x55, 0x72, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x62, 0x61, 0x72, + 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x62, 0x61, 0x72, 0x43, 0x6e, 0x74, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x67, 0x62, 0x61, 0x72, 0x43, 0x6e, 0x74, 0x12, 0x26, 0x0a, + 0x0e, 0x69, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x43, 0x61, 0x72, 0x64, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, + 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x56, 0x69, 0x70, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x56, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x69, + 0x73, 0x59, 0x65, 0x61, 0x72, 0x56, 0x69, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x69, 0x73, 0x59, 0x65, 0x61, 0x72, 0x56, 0x69, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x53, + 0x75, 0x70, 0x65, 0x72, 0x56, 0x69, 0x70, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, + 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x56, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x53, + 0x75, 0x70, 0x65, 0x72, 0x51, 0x71, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, + 0x53, 0x75, 0x70, 0x65, 0x72, 0x51, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x69, 0x70, 0x4c, 0x65, + 0x76, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x76, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x12, + 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, + 0x6f, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x1d, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x54, 0x69, + 0x74, 0x6c, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x61, 0x6c, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x61, 0x6c, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, + 0x54, 0x69, 0x74, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x23, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x6a, + 0x6f, 0x62, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x27, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, + 0x05, 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x6f, + 0x6e, 0x6f, 0x72, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -3974,7 +3822,7 @@ func file_data_proto_rawDescGZIP() []byte { return file_data_proto_rawDescData } -var file_data_proto_msgTypes = make([]protoimpl.MessageInfo, 33) +var file_data_proto_msgTypes = make([]protoimpl.MessageInfo, 30) var file_data_proto_goTypes = []interface{}{ (*DeviceInfo)(nil), // 0: DeviceInfo (*RequestBody)(nil), // 1: RequestBody @@ -3995,20 +3843,17 @@ var file_data_proto_goTypes = []interface{}{ (*ImgInfo)(nil), // 16: ImgInfo (*DeleteMessageRequest)(nil), // 17: DeleteMessageRequest (*MessageItem)(nil), // 18: MessageItem - (*Sub27DelFriend)(nil), // 19: Sub27DelFriend - (*Sub27ForwardBody)(nil), // 20: Sub27ForwardBody - (*Sub27)(nil), // 21: Sub27 - (*SubD4)(nil), // 22: SubD4 - (*Sub8A)(nil), // 23: Sub8A - (*Sub8AMsgInfo)(nil), // 24: Sub8AMsgInfo - (*SubB3)(nil), // 25: SubB3 - (*SubB3AddFrdNotify)(nil), // 26: SubB3AddFrdNotify - (*Sub44)(nil), // 27: Sub44 - (*Sub44FriendSyncMsg)(nil), // 28: Sub44FriendSyncMsg - (*Sub44GroupSyncMsg)(nil), // 29: Sub44GroupSyncMsg - (*GroupMemberReqBody)(nil), // 30: GroupMemberReqBody - (*GroupMemberRspBody)(nil), // 31: GroupMemberRspBody - (*GroupMemberInfo)(nil), // 32: GroupMemberInfo + (*SubD4)(nil), // 19: SubD4 + (*Sub8A)(nil), // 20: Sub8A + (*Sub8AMsgInfo)(nil), // 21: Sub8AMsgInfo + (*SubB3)(nil), // 22: SubB3 + (*SubB3AddFrdNotify)(nil), // 23: SubB3AddFrdNotify + (*Sub44)(nil), // 24: Sub44 + (*Sub44FriendSyncMsg)(nil), // 25: Sub44FriendSyncMsg + (*Sub44GroupSyncMsg)(nil), // 26: Sub44GroupSyncMsg + (*GroupMemberReqBody)(nil), // 27: GroupMemberReqBody + (*GroupMemberRspBody)(nil), // 28: GroupMemberRspBody + (*GroupMemberInfo)(nil), // 29: GroupMemberInfo } var file_data_proto_depIdxs = []int32{ 2, // 0: RequestBody.rpt_config_list:type_name -> ConfigSeq @@ -4024,18 +3869,16 @@ var file_data_proto_depIdxs = []int32{ 11, // 10: RspDataHighwayHead.msgSeghead:type_name -> SegHead 16, // 11: TryUpImgResp.msgImgInfo:type_name -> ImgInfo 18, // 12: DeleteMessageRequest.items:type_name -> MessageItem - 19, // 13: Sub27ForwardBody.delFriend:type_name -> Sub27DelFriend - 20, // 14: Sub27.modInfos:type_name -> Sub27ForwardBody - 24, // 15: Sub8A.msg_info:type_name -> Sub8AMsgInfo - 26, // 16: SubB3.msgAddFrdNotify:type_name -> SubB3AddFrdNotify - 28, // 17: Sub44.friendSyncMsg:type_name -> Sub44FriendSyncMsg - 29, // 18: Sub44.groupSyncMsg:type_name -> Sub44GroupSyncMsg - 32, // 19: GroupMemberRspBody.memInfo:type_name -> GroupMemberInfo - 20, // [20:20] is the sub-list for method output_type - 20, // [20:20] is the sub-list for method input_type - 20, // [20:20] is the sub-list for extension type_name - 20, // [20:20] is the sub-list for extension extendee - 0, // [0:20] is the sub-list for field type_name + 21, // 13: Sub8A.msg_info:type_name -> Sub8AMsgInfo + 23, // 14: SubB3.msgAddFrdNotify:type_name -> SubB3AddFrdNotify + 25, // 15: Sub44.friendSyncMsg:type_name -> Sub44FriendSyncMsg + 26, // 16: Sub44.groupSyncMsg:type_name -> Sub44GroupSyncMsg + 29, // 17: GroupMemberRspBody.memInfo:type_name -> GroupMemberInfo + 18, // [18:18] is the sub-list for method output_type + 18, // [18:18] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name } func init() { file_data_proto_init() } @@ -4273,42 +4116,6 @@ func file_data_proto_init() { } } file_data_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Sub27DelFriend); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_data_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Sub27ForwardBody); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_data_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Sub27); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_data_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubD4); i { case 0: return &v.state @@ -4320,7 +4127,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Sub8A); i { case 0: return &v.state @@ -4332,7 +4139,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Sub8AMsgInfo); i { case 0: return &v.state @@ -4344,7 +4151,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubB3); i { case 0: return &v.state @@ -4356,7 +4163,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubB3AddFrdNotify); i { case 0: return &v.state @@ -4368,7 +4175,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Sub44); i { case 0: return &v.state @@ -4380,7 +4187,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Sub44FriendSyncMsg); i { case 0: return &v.state @@ -4392,7 +4199,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Sub44GroupSyncMsg); i { case 0: return &v.state @@ -4404,7 +4211,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupMemberReqBody); i { case 0: return &v.state @@ -4416,7 +4223,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupMemberRspBody); i { case 0: return &v.state @@ -4428,7 +4235,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupMemberInfo); i { case 0: return &v.state @@ -4447,7 +4254,7 @@ func file_data_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_data_proto_rawDesc, NumEnums: 0, - NumMessages: 33, + NumMessages: 30, NumExtensions: 0, NumServices: 0, }, diff --git a/client/pb/data.proto b/client/pb/data.proto index 1fda8ec5..3098f0ca 100644 --- a/client/pb/data.proto +++ b/client/pb/data.proto @@ -235,18 +235,6 @@ message MessageItem { bytes sig = 7; } -message Sub27DelFriend { - repeated uint64 uins = 1; -} - -message Sub27ForwardBody { - Sub27DelFriend delFriend = 14; -} - -message Sub27 { - repeated Sub27ForwardBody modInfos = 1; -} - message SubD4 { int64 uin = 1; } diff --git a/client/pb/msgtype0x210/subMsgType0x27.pb.go b/client/pb/msgtype0x210/subMsgType0x27.pb.go new file mode 100644 index 00000000..f3166265 --- /dev/null +++ b/client/pb/msgtype0x210/subMsgType0x27.pb.go @@ -0,0 +1,4614 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.11.4 +// source: subMsgType0x27.proto + +package msgtype0x210 + +import ( + proto "github.com/golang/protobuf/proto" + 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) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type AddGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Groupid *uint32 `protobuf:"varint,1,opt,name=groupid" json:"groupid,omitempty"` + Sortid *uint32 `protobuf:"varint,2,opt,name=sortid" json:"sortid,omitempty"` + Groupname []byte `protobuf:"bytes,3,opt,name=groupname" json:"groupname,omitempty"` +} + +func (x *AddGroup) Reset() { + *x = AddGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddGroup) ProtoMessage() {} + +func (x *AddGroup) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 AddGroup.ProtoReflect.Descriptor instead. +func (*AddGroup) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{0} +} + +func (x *AddGroup) GetGroupid() uint32 { + if x != nil && x.Groupid != nil { + return *x.Groupid + } + return 0 +} + +func (x *AddGroup) GetSortid() uint32 { + if x != nil && x.Sortid != nil { + return *x.Sortid + } + return 0 +} + +func (x *AddGroup) GetGroupname() []byte { + if x != nil { + return x.Groupname + } + return nil +} + +type AppointmentNotify struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromUin *uint64 `protobuf:"varint,1,opt,name=fromUin" json:"fromUin,omitempty"` + AppointId *string `protobuf:"bytes,2,opt,name=appointId" json:"appointId,omitempty"` + Notifytype *uint32 `protobuf:"varint,3,opt,name=notifytype" json:"notifytype,omitempty"` + TipsContent *string `protobuf:"bytes,4,opt,name=tipsContent" json:"tipsContent,omitempty"` + UnreadCount *uint32 `protobuf:"varint,5,opt,name=unreadCount" json:"unreadCount,omitempty"` + JoinWording *string `protobuf:"bytes,6,opt,name=joinWording" json:"joinWording,omitempty"` + ViewWording *string `protobuf:"bytes,7,opt,name=viewWording" json:"viewWording,omitempty"` + Sig []byte `protobuf:"bytes,8,opt,name=sig" json:"sig,omitempty"` + EventInfo []byte `protobuf:"bytes,9,opt,name=eventInfo" json:"eventInfo,omitempty"` + NearbyEventInfo []byte `protobuf:"bytes,10,opt,name=nearbyEventInfo" json:"nearbyEventInfo,omitempty"` + FeedEventInfo []byte `protobuf:"bytes,11,opt,name=feedEventInfo" json:"feedEventInfo,omitempty"` +} + +func (x *AppointmentNotify) Reset() { + *x = AppointmentNotify{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppointmentNotify) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppointmentNotify) ProtoMessage() {} + +func (x *AppointmentNotify) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 AppointmentNotify.ProtoReflect.Descriptor instead. +func (*AppointmentNotify) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{1} +} + +func (x *AppointmentNotify) GetFromUin() uint64 { + if x != nil && x.FromUin != nil { + return *x.FromUin + } + return 0 +} + +func (x *AppointmentNotify) GetAppointId() string { + if x != nil && x.AppointId != nil { + return *x.AppointId + } + return "" +} + +func (x *AppointmentNotify) GetNotifytype() uint32 { + if x != nil && x.Notifytype != nil { + return *x.Notifytype + } + return 0 +} + +func (x *AppointmentNotify) GetTipsContent() string { + if x != nil && x.TipsContent != nil { + return *x.TipsContent + } + return "" +} + +func (x *AppointmentNotify) GetUnreadCount() uint32 { + if x != nil && x.UnreadCount != nil { + return *x.UnreadCount + } + return 0 +} + +func (x *AppointmentNotify) GetJoinWording() string { + if x != nil && x.JoinWording != nil { + return *x.JoinWording + } + return "" +} + +func (x *AppointmentNotify) GetViewWording() string { + if x != nil && x.ViewWording != nil { + return *x.ViewWording + } + return "" +} + +func (x *AppointmentNotify) GetSig() []byte { + if x != nil { + return x.Sig + } + return nil +} + +func (x *AppointmentNotify) GetEventInfo() []byte { + if x != nil { + return x.EventInfo + } + return nil +} + +func (x *AppointmentNotify) GetNearbyEventInfo() []byte { + if x != nil { + return x.NearbyEventInfo + } + return nil +} + +func (x *AppointmentNotify) GetFeedEventInfo() []byte { + if x != nil { + return x.FeedEventInfo + } + return nil +} + +type BinaryMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpType *uint32 `protobuf:"varint,1,opt,name=opType" json:"opType,omitempty"` + OpValue []byte `protobuf:"bytes,2,opt,name=opValue" json:"opValue,omitempty"` +} + +func (x *BinaryMsg) Reset() { + *x = BinaryMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BinaryMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BinaryMsg) ProtoMessage() {} + +func (x *BinaryMsg) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 BinaryMsg.ProtoReflect.Descriptor instead. +func (*BinaryMsg) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{2} +} + +func (x *BinaryMsg) GetOpType() uint32 { + if x != nil && x.OpType != nil { + return *x.OpType + } + return 0 +} + +func (x *BinaryMsg) GetOpValue() []byte { + if x != nil { + return x.OpValue + } + return nil +} + +type ChatMatchInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sig []byte `protobuf:"bytes,1,opt,name=sig" json:"sig,omitempty"` + Uin *uint64 `protobuf:"varint,2,opt,name=uin" json:"uin,omitempty"` + MatchUin *uint64 `protobuf:"varint,3,opt,name=matchUin" json:"matchUin,omitempty"` + TipsWording []byte `protobuf:"bytes,4,opt,name=tipsWording" json:"tipsWording,omitempty"` + LeftChatTime *uint32 `protobuf:"varint,5,opt,name=leftChatTime" json:"leftChatTime,omitempty"` + TimeStamp *uint64 `protobuf:"varint,6,opt,name=timeStamp" json:"timeStamp,omitempty"` + MatchExpiredTime *uint32 `protobuf:"varint,7,opt,name=matchExpiredTime" json:"matchExpiredTime,omitempty"` + C2CExpiredTime *uint32 `protobuf:"varint,8,opt,name=c2CExpiredTime" json:"c2CExpiredTime,omitempty"` + MatchCount *uint32 `protobuf:"varint,9,opt,name=matchCount" json:"matchCount,omitempty"` + Nick []byte `protobuf:"bytes,10,opt,name=nick" json:"nick,omitempty"` +} + +func (x *ChatMatchInfo) Reset() { + *x = ChatMatchInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChatMatchInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChatMatchInfo) ProtoMessage() {} + +func (x *ChatMatchInfo) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 ChatMatchInfo.ProtoReflect.Descriptor instead. +func (*ChatMatchInfo) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{3} +} + +func (x *ChatMatchInfo) GetSig() []byte { + if x != nil { + return x.Sig + } + return nil +} + +func (x *ChatMatchInfo) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *ChatMatchInfo) GetMatchUin() uint64 { + if x != nil && x.MatchUin != nil { + return *x.MatchUin + } + return 0 +} + +func (x *ChatMatchInfo) GetTipsWording() []byte { + if x != nil { + return x.TipsWording + } + return nil +} + +func (x *ChatMatchInfo) GetLeftChatTime() uint32 { + if x != nil && x.LeftChatTime != nil { + return *x.LeftChatTime + } + return 0 +} + +func (x *ChatMatchInfo) GetTimeStamp() uint64 { + if x != nil && x.TimeStamp != nil { + return *x.TimeStamp + } + return 0 +} + +func (x *ChatMatchInfo) GetMatchExpiredTime() uint32 { + if x != nil && x.MatchExpiredTime != nil { + return *x.MatchExpiredTime + } + return 0 +} + +func (x *ChatMatchInfo) GetC2CExpiredTime() uint32 { + if x != nil && x.C2CExpiredTime != nil { + return *x.C2CExpiredTime + } + return 0 +} + +func (x *ChatMatchInfo) GetMatchCount() uint32 { + if x != nil && x.MatchCount != nil { + return *x.MatchCount + } + return 0 +} + +func (x *ChatMatchInfo) GetNick() []byte { + if x != nil { + return x.Nick + } + return nil +} + +type ConfMsgRoamFlag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Confid *uint64 `protobuf:"varint,1,opt,name=confid" json:"confid,omitempty"` + Flag *uint32 `protobuf:"varint,2,opt,name=flag" json:"flag,omitempty"` + Timestamp *uint64 `protobuf:"varint,3,opt,name=timestamp" json:"timestamp,omitempty"` +} + +func (x *ConfMsgRoamFlag) Reset() { + *x = ConfMsgRoamFlag{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfMsgRoamFlag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfMsgRoamFlag) ProtoMessage() {} + +func (x *ConfMsgRoamFlag) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 ConfMsgRoamFlag.ProtoReflect.Descriptor instead. +func (*ConfMsgRoamFlag) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{4} +} + +func (x *ConfMsgRoamFlag) GetConfid() uint64 { + if x != nil && x.Confid != nil { + return *x.Confid + } + return 0 +} + +func (x *ConfMsgRoamFlag) GetFlag() uint32 { + if x != nil && x.Flag != nil { + return *x.Flag + } + return 0 +} + +func (x *ConfMsgRoamFlag) GetTimestamp() uint64 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp + } + return 0 +} + +type DaRenNotify struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uin *uint64 `protobuf:"varint,1,opt,name=uin" json:"uin,omitempty"` + LoginDays *uint32 `protobuf:"varint,2,opt,name=loginDays" json:"loginDays,omitempty"` + Days *uint32 `protobuf:"varint,3,opt,name=days" json:"days,omitempty"` + IsYestodayLogin *uint32 `protobuf:"varint,4,opt,name=isYestodayLogin" json:"isYestodayLogin,omitempty"` + IsTodayLogin *uint32 `protobuf:"varint,5,opt,name=isTodayLogin" json:"isTodayLogin,omitempty"` +} + +func (x *DaRenNotify) Reset() { + *x = DaRenNotify{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DaRenNotify) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DaRenNotify) ProtoMessage() {} + +func (x *DaRenNotify) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 DaRenNotify.ProtoReflect.Descriptor instead. +func (*DaRenNotify) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{5} +} + +func (x *DaRenNotify) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *DaRenNotify) GetLoginDays() uint32 { + if x != nil && x.LoginDays != nil { + return *x.LoginDays + } + return 0 +} + +func (x *DaRenNotify) GetDays() uint32 { + if x != nil && x.Days != nil { + return *x.Days + } + return 0 +} + +func (x *DaRenNotify) GetIsYestodayLogin() uint32 { + if x != nil && x.IsYestodayLogin != nil { + return *x.IsYestodayLogin + } + return 0 +} + +func (x *DaRenNotify) GetIsTodayLogin() uint32 { + if x != nil && x.IsTodayLogin != nil { + return *x.IsTodayLogin + } + return 0 +} + +type DelFriend struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uins []uint64 `protobuf:"varint,1,rep,name=uins" json:"uins,omitempty"` +} + +func (x *DelFriend) Reset() { + *x = DelFriend{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelFriend) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelFriend) ProtoMessage() {} + +func (x *DelFriend) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 DelFriend.ProtoReflect.Descriptor instead. +func (*DelFriend) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{6} +} + +func (x *DelFriend) GetUins() []uint64 { + if x != nil { + return x.Uins + } + return nil +} + +type DelGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Groupid *uint32 `protobuf:"varint,1,opt,name=groupid" json:"groupid,omitempty"` +} + +func (x *DelGroup) Reset() { + *x = DelGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelGroup) ProtoMessage() {} + +func (x *DelGroup) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 DelGroup.ProtoReflect.Descriptor instead. +func (*DelGroup) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{7} +} + +func (x *DelGroup) GetGroupid() uint32 { + if x != nil && x.Groupid != nil { + return *x.Groupid + } + return 0 +} + +type FanpaiziNotify struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromUin *uint64 `protobuf:"varint,1,opt,name=fromUin" json:"fromUin,omitempty"` + FromNick *string `protobuf:"bytes,2,opt,name=fromNick" json:"fromNick,omitempty"` + TipsContent []byte `protobuf:"bytes,3,opt,name=tipsContent" json:"tipsContent,omitempty"` + Sig []byte `protobuf:"bytes,4,opt,name=sig" json:"sig,omitempty"` +} + +func (x *FanpaiziNotify) Reset() { + *x = FanpaiziNotify{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FanpaiziNotify) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FanpaiziNotify) ProtoMessage() {} + +func (x *FanpaiziNotify) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 FanpaiziNotify.ProtoReflect.Descriptor instead. +func (*FanpaiziNotify) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{8} +} + +func (x *FanpaiziNotify) GetFromUin() uint64 { + if x != nil && x.FromUin != nil { + return *x.FromUin + } + return 0 +} + +func (x *FanpaiziNotify) GetFromNick() string { + if x != nil && x.FromNick != nil { + return *x.FromNick + } + return "" +} + +func (x *FanpaiziNotify) GetTipsContent() []byte { + if x != nil { + return x.TipsContent + } + return nil +} + +func (x *FanpaiziNotify) GetSig() []byte { + if x != nil { + return x.Sig + } + return nil +} + +type ForwardBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NotifyType *uint32 `protobuf:"varint,1,opt,name=notifyType" json:"notifyType,omitempty"` + OpType *uint32 `protobuf:"varint,2,opt,name=opType" json:"opType,omitempty"` + AddGroup *AddGroup `protobuf:"bytes,3,opt,name=addGroup" json:"addGroup,omitempty"` + DelGroup *DelGroup `protobuf:"bytes,4,opt,name=delGroup" json:"delGroup,omitempty"` + ModGroupName *ModGroupName `protobuf:"bytes,5,opt,name=modGroupName" json:"modGroupName,omitempty"` + ModGroupSort *ModGroupSort `protobuf:"bytes,6,opt,name=modGroupSort" json:"modGroupSort,omitempty"` + ModFriendGroup *ModFriendGroup `protobuf:"bytes,7,opt,name=modFriendGroup" json:"modFriendGroup,omitempty"` + ModProfile *ModProfile `protobuf:"bytes,8,opt,name=modProfile" json:"modProfile,omitempty"` + ModFriendRemark *ModFriendRemark `protobuf:"bytes,9,opt,name=modFriendRemark" json:"modFriendRemark,omitempty"` + ModLongNick *ModLongNick `protobuf:"bytes,10,opt,name=modLongNick" json:"modLongNick,omitempty"` + ModCustomFace *ModCustomFace `protobuf:"bytes,11,opt,name=modCustomFace" json:"modCustomFace,omitempty"` + ModGroupProfile *ModGroupProfile `protobuf:"bytes,12,opt,name=modGroupProfile" json:"modGroupProfile,omitempty"` + ModGroupMemberProfile *ModGroupMemberProfile `protobuf:"bytes,13,opt,name=modGroupMemberProfile" json:"modGroupMemberProfile,omitempty"` + DelFriend *DelFriend `protobuf:"bytes,14,opt,name=delFriend" json:"delFriend,omitempty"` + RoamPriv *ModFrdRoamPriv `protobuf:"bytes,15,opt,name=roamPriv" json:"roamPriv,omitempty"` + GrpMsgRoamFlag *GrpMsgRoamFlag `protobuf:"bytes,16,opt,name=grpMsgRoamFlag" json:"grpMsgRoamFlag,omitempty"` + ConfMsgRoamFlag *ConfMsgRoamFlag `protobuf:"bytes,17,opt,name=confMsgRoamFlag" json:"confMsgRoamFlag,omitempty"` + ModRichLongNick *ModLongNick `protobuf:"bytes,18,opt,name=modRichLongNick" json:"modRichLongNick,omitempty"` + BinPkg *BinaryMsg `protobuf:"bytes,19,opt,name=binPkg" json:"binPkg,omitempty"` + ModFriendRings *ModSnsGeneralInfo `protobuf:"bytes,20,opt,name=modFriendRings" json:"modFriendRings,omitempty"` + ModConfProfile *ModConfProfile `protobuf:"bytes,21,opt,name=modConfProfile" json:"modConfProfile,omitempty"` + ModFriendFlag *SnsUpdateFlag `protobuf:"bytes,22,opt,name=modFriendFlag" json:"modFriendFlag,omitempty"` + AppointmentNotify *AppointmentNotify `protobuf:"bytes,23,opt,name=appointmentNotify" json:"appointmentNotify,omitempty"` + DarenNotify *DaRenNotify `protobuf:"bytes,25,opt,name=darenNotify" json:"darenNotify,omitempty"` + NewComeinUserNotify *NewComeinUserNotify `protobuf:"bytes,26,opt,name=newComeinUserNotify" json:"newComeinUserNotify,omitempty"` + PushSearchDev *PushSearchDev `protobuf:"bytes,200,opt,name=pushSearchDev" json:"pushSearchDev,omitempty"` + PushReportDev *PushReportDev `protobuf:"bytes,201,opt,name=pushReportDev" json:"pushReportDev,omitempty"` + QqPayPush *QQPayPush `protobuf:"bytes,202,opt,name=qqPayPush" json:"qqPayPush,omitempty"` + RedpointInfo []byte `protobuf:"bytes,203,opt,name=redpointInfo" json:"redpointInfo,omitempty"` + HotFriendNotify *HotFriendNotify `protobuf:"bytes,204,opt,name=hotFriendNotify" json:"hotFriendNotify,omitempty"` + PraiseRankNotify *PraiseRankNotify `protobuf:"bytes,205,opt,name=praiseRankNotify" json:"praiseRankNotify,omitempty"` + CampusNotify *MQQCampusNotify `protobuf:"bytes,210,opt,name=campusNotify" json:"campusNotify,omitempty"` + ModRichLongNickEx *ModLongNick `protobuf:"bytes,211,opt,name=modRichLongNickEx" json:"modRichLongNickEx,omitempty"` + ChatMatchInfo *ChatMatchInfo `protobuf:"bytes,212,opt,name=chatMatchInfo" json:"chatMatchInfo,omitempty"` + FrdCustomOnlineStatusChange *FrdCustomOnlineStatusChange `protobuf:"bytes,214,opt,name=frdCustomOnlineStatusChange" json:"frdCustomOnlineStatusChange,omitempty"` + FanpanziNotify *FanpaiziNotify `protobuf:"bytes,2000,opt,name=fanpanziNotify" json:"fanpanziNotify,omitempty"` +} + +func (x *ForwardBody) Reset() { + *x = ForwardBody{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ForwardBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ForwardBody) ProtoMessage() {} + +func (x *ForwardBody) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 ForwardBody.ProtoReflect.Descriptor instead. +func (*ForwardBody) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{9} +} + +func (x *ForwardBody) GetNotifyType() uint32 { + if x != nil && x.NotifyType != nil { + return *x.NotifyType + } + return 0 +} + +func (x *ForwardBody) GetOpType() uint32 { + if x != nil && x.OpType != nil { + return *x.OpType + } + return 0 +} + +func (x *ForwardBody) GetAddGroup() *AddGroup { + if x != nil { + return x.AddGroup + } + return nil +} + +func (x *ForwardBody) GetDelGroup() *DelGroup { + if x != nil { + return x.DelGroup + } + return nil +} + +func (x *ForwardBody) GetModGroupName() *ModGroupName { + if x != nil { + return x.ModGroupName + } + return nil +} + +func (x *ForwardBody) GetModGroupSort() *ModGroupSort { + if x != nil { + return x.ModGroupSort + } + return nil +} + +func (x *ForwardBody) GetModFriendGroup() *ModFriendGroup { + if x != nil { + return x.ModFriendGroup + } + return nil +} + +func (x *ForwardBody) GetModProfile() *ModProfile { + if x != nil { + return x.ModProfile + } + return nil +} + +func (x *ForwardBody) GetModFriendRemark() *ModFriendRemark { + if x != nil { + return x.ModFriendRemark + } + return nil +} + +func (x *ForwardBody) GetModLongNick() *ModLongNick { + if x != nil { + return x.ModLongNick + } + return nil +} + +func (x *ForwardBody) GetModCustomFace() *ModCustomFace { + if x != nil { + return x.ModCustomFace + } + return nil +} + +func (x *ForwardBody) GetModGroupProfile() *ModGroupProfile { + if x != nil { + return x.ModGroupProfile + } + return nil +} + +func (x *ForwardBody) GetModGroupMemberProfile() *ModGroupMemberProfile { + if x != nil { + return x.ModGroupMemberProfile + } + return nil +} + +func (x *ForwardBody) GetDelFriend() *DelFriend { + if x != nil { + return x.DelFriend + } + return nil +} + +func (x *ForwardBody) GetRoamPriv() *ModFrdRoamPriv { + if x != nil { + return x.RoamPriv + } + return nil +} + +func (x *ForwardBody) GetGrpMsgRoamFlag() *GrpMsgRoamFlag { + if x != nil { + return x.GrpMsgRoamFlag + } + return nil +} + +func (x *ForwardBody) GetConfMsgRoamFlag() *ConfMsgRoamFlag { + if x != nil { + return x.ConfMsgRoamFlag + } + return nil +} + +func (x *ForwardBody) GetModRichLongNick() *ModLongNick { + if x != nil { + return x.ModRichLongNick + } + return nil +} + +func (x *ForwardBody) GetBinPkg() *BinaryMsg { + if x != nil { + return x.BinPkg + } + return nil +} + +func (x *ForwardBody) GetModFriendRings() *ModSnsGeneralInfo { + if x != nil { + return x.ModFriendRings + } + return nil +} + +func (x *ForwardBody) GetModConfProfile() *ModConfProfile { + if x != nil { + return x.ModConfProfile + } + return nil +} + +func (x *ForwardBody) GetModFriendFlag() *SnsUpdateFlag { + if x != nil { + return x.ModFriendFlag + } + return nil +} + +func (x *ForwardBody) GetAppointmentNotify() *AppointmentNotify { + if x != nil { + return x.AppointmentNotify + } + return nil +} + +func (x *ForwardBody) GetDarenNotify() *DaRenNotify { + if x != nil { + return x.DarenNotify + } + return nil +} + +func (x *ForwardBody) GetNewComeinUserNotify() *NewComeinUserNotify { + if x != nil { + return x.NewComeinUserNotify + } + return nil +} + +func (x *ForwardBody) GetPushSearchDev() *PushSearchDev { + if x != nil { + return x.PushSearchDev + } + return nil +} + +func (x *ForwardBody) GetPushReportDev() *PushReportDev { + if x != nil { + return x.PushReportDev + } + return nil +} + +func (x *ForwardBody) GetQqPayPush() *QQPayPush { + if x != nil { + return x.QqPayPush + } + return nil +} + +func (x *ForwardBody) GetRedpointInfo() []byte { + if x != nil { + return x.RedpointInfo + } + return nil +} + +func (x *ForwardBody) GetHotFriendNotify() *HotFriendNotify { + if x != nil { + return x.HotFriendNotify + } + return nil +} + +func (x *ForwardBody) GetPraiseRankNotify() *PraiseRankNotify { + if x != nil { + return x.PraiseRankNotify + } + return nil +} + +func (x *ForwardBody) GetCampusNotify() *MQQCampusNotify { + if x != nil { + return x.CampusNotify + } + return nil +} + +func (x *ForwardBody) GetModRichLongNickEx() *ModLongNick { + if x != nil { + return x.ModRichLongNickEx + } + return nil +} + +func (x *ForwardBody) GetChatMatchInfo() *ChatMatchInfo { + if x != nil { + return x.ChatMatchInfo + } + return nil +} + +func (x *ForwardBody) GetFrdCustomOnlineStatusChange() *FrdCustomOnlineStatusChange { + if x != nil { + return x.FrdCustomOnlineStatusChange + } + return nil +} + +func (x *ForwardBody) GetFanpanziNotify() *FanpaiziNotify { + if x != nil { + return x.FanpanziNotify + } + return nil +} + +type FrdCustomOnlineStatusChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uin *uint64 `protobuf:"varint,1,opt,name=uin" json:"uin,omitempty"` +} + +func (x *FrdCustomOnlineStatusChange) Reset() { + *x = FrdCustomOnlineStatusChange{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FrdCustomOnlineStatusChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FrdCustomOnlineStatusChange) ProtoMessage() {} + +func (x *FrdCustomOnlineStatusChange) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 FrdCustomOnlineStatusChange.ProtoReflect.Descriptor instead. +func (*FrdCustomOnlineStatusChange) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{10} +} + +func (x *FrdCustomOnlineStatusChange) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +type FriendGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Fuin *uint64 `protobuf:"varint,1,opt,name=fuin" json:"fuin,omitempty"` + OldGroupId []uint32 `protobuf:"varint,2,rep,name=oldGroupId" json:"oldGroupId,omitempty"` + NewGroupId []uint32 `protobuf:"varint,3,rep,name=newGroupId" json:"newGroupId,omitempty"` +} + +func (x *FriendGroup) Reset() { + *x = FriendGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FriendGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FriendGroup) ProtoMessage() {} + +func (x *FriendGroup) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 FriendGroup.ProtoReflect.Descriptor instead. +func (*FriendGroup) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{11} +} + +func (x *FriendGroup) GetFuin() uint64 { + if x != nil && x.Fuin != nil { + return *x.Fuin + } + return 0 +} + +func (x *FriendGroup) GetOldGroupId() []uint32 { + if x != nil { + return x.OldGroupId + } + return nil +} + +func (x *FriendGroup) GetNewGroupId() []uint32 { + if x != nil { + return x.NewGroupId + } + return nil +} + +type FriendRemark struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + Fuin *uint64 `protobuf:"varint,2,opt,name=fuin" json:"fuin,omitempty"` + RmkName []byte `protobuf:"bytes,3,opt,name=rmkName" json:"rmkName,omitempty"` + GroupCode *uint64 `protobuf:"varint,4,opt,name=groupCode" json:"groupCode,omitempty"` +} + +func (x *FriendRemark) Reset() { + *x = FriendRemark{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FriendRemark) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FriendRemark) ProtoMessage() {} + +func (x *FriendRemark) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 FriendRemark.ProtoReflect.Descriptor instead. +func (*FriendRemark) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{12} +} + +func (x *FriendRemark) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *FriendRemark) GetFuin() uint64 { + if x != nil && x.Fuin != nil { + return *x.Fuin + } + return 0 +} + +func (x *FriendRemark) GetRmkName() []byte { + if x != nil { + return x.RmkName + } + return nil +} + +func (x *FriendRemark) GetGroupCode() uint64 { + if x != nil && x.GroupCode != nil { + return *x.GroupCode + } + return 0 +} + +type GPS struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Lat *int32 `protobuf:"varint,1,opt,name=lat" json:"lat,omitempty"` + Lon *int32 `protobuf:"varint,2,opt,name=lon" json:"lon,omitempty"` + Alt *int32 `protobuf:"varint,3,opt,name=alt" json:"alt,omitempty"` + Type *int32 `protobuf:"varint,4,opt,name=type" json:"type,omitempty"` +} + +func (x *GPS) Reset() { + *x = GPS{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GPS) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GPS) ProtoMessage() {} + +func (x *GPS) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 GPS.ProtoReflect.Descriptor instead. +func (*GPS) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{13} +} + +func (x *GPS) GetLat() int32 { + if x != nil && x.Lat != nil { + return *x.Lat + } + return 0 +} + +func (x *GPS) GetLon() int32 { + if x != nil && x.Lon != nil { + return *x.Lon + } + return 0 +} + +func (x *GPS) GetAlt() int32 { + if x != nil && x.Alt != nil { + return *x.Alt + } + return 0 +} + +func (x *GPS) GetType() int32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +type GroupMemberProfileInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Field *uint32 `protobuf:"varint,1,opt,name=field" json:"field,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *GroupMemberProfileInfo) Reset() { + *x = GroupMemberProfileInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupMemberProfileInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupMemberProfileInfo) ProtoMessage() {} + +func (x *GroupMemberProfileInfo) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 GroupMemberProfileInfo.ProtoReflect.Descriptor instead. +func (*GroupMemberProfileInfo) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{14} +} + +func (x *GroupMemberProfileInfo) GetField() uint32 { + if x != nil && x.Field != nil { + return *x.Field + } + return 0 +} + +func (x *GroupMemberProfileInfo) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +type GroupProfileInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Field *uint32 `protobuf:"varint,1,opt,name=field" json:"field,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *GroupProfileInfo) Reset() { + *x = GroupProfileInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupProfileInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupProfileInfo) ProtoMessage() {} + +func (x *GroupProfileInfo) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 GroupProfileInfo.ProtoReflect.Descriptor instead. +func (*GroupProfileInfo) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{15} +} + +func (x *GroupProfileInfo) GetField() uint32 { + if x != nil && x.Field != nil { + return *x.Field + } + return 0 +} + +func (x *GroupProfileInfo) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +type GroupSort struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Groupid *uint32 `protobuf:"varint,1,opt,name=groupid" json:"groupid,omitempty"` + Sortid *uint32 `protobuf:"varint,2,opt,name=sortid" json:"sortid,omitempty"` +} + +func (x *GroupSort) Reset() { + *x = GroupSort{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupSort) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupSort) ProtoMessage() {} + +func (x *GroupSort) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 GroupSort.ProtoReflect.Descriptor instead. +func (*GroupSort) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{16} +} + +func (x *GroupSort) GetGroupid() uint32 { + if x != nil && x.Groupid != nil { + return *x.Groupid + } + return 0 +} + +func (x *GroupSort) GetSortid() uint32 { + if x != nil && x.Sortid != nil { + return *x.Sortid + } + return 0 +} + +type GrpMsgRoamFlag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Groupcode *uint64 `protobuf:"varint,1,opt,name=groupcode" json:"groupcode,omitempty"` + Flag *uint32 `protobuf:"varint,2,opt,name=flag" json:"flag,omitempty"` + Timestamp *uint64 `protobuf:"varint,3,opt,name=timestamp" json:"timestamp,omitempty"` +} + +func (x *GrpMsgRoamFlag) Reset() { + *x = GrpMsgRoamFlag{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GrpMsgRoamFlag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GrpMsgRoamFlag) ProtoMessage() {} + +func (x *GrpMsgRoamFlag) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 GrpMsgRoamFlag.ProtoReflect.Descriptor instead. +func (*GrpMsgRoamFlag) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{17} +} + +func (x *GrpMsgRoamFlag) GetGroupcode() uint64 { + if x != nil && x.Groupcode != nil { + return *x.Groupcode + } + return 0 +} + +func (x *GrpMsgRoamFlag) GetFlag() uint32 { + if x != nil && x.Flag != nil { + return *x.Flag + } + return 0 +} + +func (x *GrpMsgRoamFlag) GetTimestamp() uint64 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp + } + return 0 +} + +type HotFriendNotify struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DstUin *uint64 `protobuf:"varint,1,opt,name=dstUin" json:"dstUin,omitempty"` + PraiseHotLevel *uint32 `protobuf:"varint,2,opt,name=praiseHotLevel" json:"praiseHotLevel,omitempty"` + ChatHotLevel *uint32 `protobuf:"varint,3,opt,name=chatHotLevel" json:"chatHotLevel,omitempty"` + PraiseHotDays *uint32 `protobuf:"varint,4,opt,name=praiseHotDays" json:"praiseHotDays,omitempty"` + ChatHotDays *uint32 `protobuf:"varint,5,opt,name=chatHotDays" json:"chatHotDays,omitempty"` + CloseLevel *uint32 `protobuf:"varint,6,opt,name=closeLevel" json:"closeLevel,omitempty"` + CloseDays *uint32 `protobuf:"varint,7,opt,name=closeDays" json:"closeDays,omitempty"` + PraiseFlag *uint32 `protobuf:"varint,8,opt,name=praiseFlag" json:"praiseFlag,omitempty"` + ChatFlag *uint32 `protobuf:"varint,9,opt,name=chatFlag" json:"chatFlag,omitempty"` + CloseFlag *uint32 `protobuf:"varint,10,opt,name=closeFlag" json:"closeFlag,omitempty"` + NotifyTime *uint64 `protobuf:"varint,11,opt,name=notifyTime" json:"notifyTime,omitempty"` + LastPraiseTime *uint64 `protobuf:"varint,12,opt,name=lastPraiseTime" json:"lastPraiseTime,omitempty"` + LastChatTime *uint64 `protobuf:"varint,13,opt,name=lastChatTime" json:"lastChatTime,omitempty"` + QzoneHotLevel *uint32 `protobuf:"varint,14,opt,name=qzoneHotLevel" json:"qzoneHotLevel,omitempty"` + QzoneHotDays *uint32 `protobuf:"varint,15,opt,name=qzoneHotDays" json:"qzoneHotDays,omitempty"` + QzoneFlag *uint32 `protobuf:"varint,16,opt,name=qzoneFlag" json:"qzoneFlag,omitempty"` + LastQzoneTime *uint64 `protobuf:"varint,17,opt,name=lastQzoneTime" json:"lastQzoneTime,omitempty"` +} + +func (x *HotFriendNotify) Reset() { + *x = HotFriendNotify{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HotFriendNotify) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HotFriendNotify) ProtoMessage() {} + +func (x *HotFriendNotify) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 HotFriendNotify.ProtoReflect.Descriptor instead. +func (*HotFriendNotify) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{18} +} + +func (x *HotFriendNotify) GetDstUin() uint64 { + if x != nil && x.DstUin != nil { + return *x.DstUin + } + return 0 +} + +func (x *HotFriendNotify) GetPraiseHotLevel() uint32 { + if x != nil && x.PraiseHotLevel != nil { + return *x.PraiseHotLevel + } + return 0 +} + +func (x *HotFriendNotify) GetChatHotLevel() uint32 { + if x != nil && x.ChatHotLevel != nil { + return *x.ChatHotLevel + } + return 0 +} + +func (x *HotFriendNotify) GetPraiseHotDays() uint32 { + if x != nil && x.PraiseHotDays != nil { + return *x.PraiseHotDays + } + return 0 +} + +func (x *HotFriendNotify) GetChatHotDays() uint32 { + if x != nil && x.ChatHotDays != nil { + return *x.ChatHotDays + } + return 0 +} + +func (x *HotFriendNotify) GetCloseLevel() uint32 { + if x != nil && x.CloseLevel != nil { + return *x.CloseLevel + } + return 0 +} + +func (x *HotFriendNotify) GetCloseDays() uint32 { + if x != nil && x.CloseDays != nil { + return *x.CloseDays + } + return 0 +} + +func (x *HotFriendNotify) GetPraiseFlag() uint32 { + if x != nil && x.PraiseFlag != nil { + return *x.PraiseFlag + } + return 0 +} + +func (x *HotFriendNotify) GetChatFlag() uint32 { + if x != nil && x.ChatFlag != nil { + return *x.ChatFlag + } + return 0 +} + +func (x *HotFriendNotify) GetCloseFlag() uint32 { + if x != nil && x.CloseFlag != nil { + return *x.CloseFlag + } + return 0 +} + +func (x *HotFriendNotify) GetNotifyTime() uint64 { + if x != nil && x.NotifyTime != nil { + return *x.NotifyTime + } + return 0 +} + +func (x *HotFriendNotify) GetLastPraiseTime() uint64 { + if x != nil && x.LastPraiseTime != nil { + return *x.LastPraiseTime + } + return 0 +} + +func (x *HotFriendNotify) GetLastChatTime() uint64 { + if x != nil && x.LastChatTime != nil { + return *x.LastChatTime + } + return 0 +} + +func (x *HotFriendNotify) GetQzoneHotLevel() uint32 { + if x != nil && x.QzoneHotLevel != nil { + return *x.QzoneHotLevel + } + return 0 +} + +func (x *HotFriendNotify) GetQzoneHotDays() uint32 { + if x != nil && x.QzoneHotDays != nil { + return *x.QzoneHotDays + } + return 0 +} + +func (x *HotFriendNotify) GetQzoneFlag() uint32 { + if x != nil && x.QzoneFlag != nil { + return *x.QzoneFlag + } + return 0 +} + +func (x *HotFriendNotify) GetLastQzoneTime() uint64 { + if x != nil && x.LastQzoneTime != nil { + return *x.LastQzoneTime + } + return 0 +} + +type MQQCampusNotify struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromUin *uint64 `protobuf:"varint,1,opt,name=fromUin" json:"fromUin,omitempty"` + Wording *string `protobuf:"bytes,2,opt,name=wording" json:"wording,omitempty"` + Target *string `protobuf:"bytes,3,opt,name=target" json:"target,omitempty"` + Type *uint32 `protobuf:"varint,4,opt,name=type" json:"type,omitempty"` + Source *string `protobuf:"bytes,5,opt,name=source" json:"source,omitempty"` +} + +func (x *MQQCampusNotify) Reset() { + *x = MQQCampusNotify{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MQQCampusNotify) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MQQCampusNotify) ProtoMessage() {} + +func (x *MQQCampusNotify) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 MQQCampusNotify.ProtoReflect.Descriptor instead. +func (*MQQCampusNotify) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{19} +} + +func (x *MQQCampusNotify) GetFromUin() uint64 { + if x != nil && x.FromUin != nil { + return *x.FromUin + } + return 0 +} + +func (x *MQQCampusNotify) GetWording() string { + if x != nil && x.Wording != nil { + return *x.Wording + } + return "" +} + +func (x *MQQCampusNotify) GetTarget() string { + if x != nil && x.Target != nil { + return *x.Target + } + return "" +} + +func (x *MQQCampusNotify) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *MQQCampusNotify) GetSource() string { + if x != nil && x.Source != nil { + return *x.Source + } + return "" +} + +type ModConfProfile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uin *uint64 `protobuf:"varint,1,opt,name=uin" json:"uin,omitempty"` + ConfUin *uint32 `protobuf:"varint,2,opt,name=confUin" json:"confUin,omitempty"` + ProfileInfos []*ProfileInfo `protobuf:"bytes,3,rep,name=profileInfos" json:"profileInfos,omitempty"` +} + +func (x *ModConfProfile) Reset() { + *x = ModConfProfile{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModConfProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModConfProfile) ProtoMessage() {} + +func (x *ModConfProfile) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 ModConfProfile.ProtoReflect.Descriptor instead. +func (*ModConfProfile) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{20} +} + +func (x *ModConfProfile) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *ModConfProfile) GetConfUin() uint32 { + if x != nil && x.ConfUin != nil { + return *x.ConfUin + } + return 0 +} + +func (x *ModConfProfile) GetProfileInfos() []*ProfileInfo { + if x != nil { + return x.ProfileInfos + } + return nil +} + +type ModCustomFace struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + Uin *uint64 `protobuf:"varint,2,opt,name=uin" json:"uin,omitempty"` + GroupCode *uint64 `protobuf:"varint,3,opt,name=groupCode" json:"groupCode,omitempty"` + CmdUin *uint64 `protobuf:"varint,4,opt,name=cmdUin" json:"cmdUin,omitempty"` +} + +func (x *ModCustomFace) Reset() { + *x = ModCustomFace{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModCustomFace) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModCustomFace) ProtoMessage() {} + +func (x *ModCustomFace) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 ModCustomFace.ProtoReflect.Descriptor instead. +func (*ModCustomFace) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{21} +} + +func (x *ModCustomFace) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *ModCustomFace) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *ModCustomFace) GetGroupCode() uint64 { + if x != nil && x.GroupCode != nil { + return *x.GroupCode + } + return 0 +} + +func (x *ModCustomFace) GetCmdUin() uint64 { + if x != nil && x.CmdUin != nil { + return *x.CmdUin + } + return 0 +} + +type ModFrdRoamPriv struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoamPriv []*OneRoamPriv `protobuf:"bytes,1,rep,name=roamPriv" json:"roamPriv,omitempty"` +} + +func (x *ModFrdRoamPriv) Reset() { + *x = ModFrdRoamPriv{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModFrdRoamPriv) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModFrdRoamPriv) ProtoMessage() {} + +func (x *ModFrdRoamPriv) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_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 ModFrdRoamPriv.ProtoReflect.Descriptor instead. +func (*ModFrdRoamPriv) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{22} +} + +func (x *ModFrdRoamPriv) GetRoamPriv() []*OneRoamPriv { + if x != nil { + return x.RoamPriv + } + return nil +} + +type ModFriendGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FrdGroup []*FriendGroup `protobuf:"bytes,1,rep,name=frdGroup" json:"frdGroup,omitempty"` +} + +func (x *ModFriendGroup) Reset() { + *x = ModFriendGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModFriendGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModFriendGroup) ProtoMessage() {} + +func (x *ModFriendGroup) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[23] + 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 ModFriendGroup.ProtoReflect.Descriptor instead. +func (*ModFriendGroup) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{23} +} + +func (x *ModFriendGroup) GetFrdGroup() []*FriendGroup { + if x != nil { + return x.FrdGroup + } + return nil +} + +type ModFriendRemark struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FrdRmk []*FriendRemark `protobuf:"bytes,1,rep,name=frdRmk" json:"frdRmk,omitempty"` +} + +func (x *ModFriendRemark) Reset() { + *x = ModFriendRemark{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModFriendRemark) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModFriendRemark) ProtoMessage() {} + +func (x *ModFriendRemark) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[24] + 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 ModFriendRemark.ProtoReflect.Descriptor instead. +func (*ModFriendRemark) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{24} +} + +func (x *ModFriendRemark) GetFrdRmk() []*FriendRemark { + if x != nil { + return x.FrdRmk + } + return nil +} + +type ModGroupMemberProfile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupUin *uint64 `protobuf:"varint,1,opt,name=groupUin" json:"groupUin,omitempty"` + Uin *uint64 `protobuf:"varint,2,opt,name=uin" json:"uin,omitempty"` + GroupMemberProfileInfos []*GroupMemberProfileInfo `protobuf:"bytes,3,rep,name=groupMemberProfileInfos" json:"groupMemberProfileInfos,omitempty"` + GroupCode *uint64 `protobuf:"varint,4,opt,name=groupCode" json:"groupCode,omitempty"` +} + +func (x *ModGroupMemberProfile) Reset() { + *x = ModGroupMemberProfile{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModGroupMemberProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModGroupMemberProfile) ProtoMessage() {} + +func (x *ModGroupMemberProfile) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[25] + 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 ModGroupMemberProfile.ProtoReflect.Descriptor instead. +func (*ModGroupMemberProfile) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{25} +} + +func (x *ModGroupMemberProfile) GetGroupUin() uint64 { + if x != nil && x.GroupUin != nil { + return *x.GroupUin + } + return 0 +} + +func (x *ModGroupMemberProfile) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *ModGroupMemberProfile) GetGroupMemberProfileInfos() []*GroupMemberProfileInfo { + if x != nil { + return x.GroupMemberProfileInfos + } + return nil +} + +func (x *ModGroupMemberProfile) GetGroupCode() uint64 { + if x != nil && x.GroupCode != nil { + return *x.GroupCode + } + return 0 +} + +type ModGroupName struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Groupid *uint32 `protobuf:"varint,1,opt,name=groupid" json:"groupid,omitempty"` + Groupname []byte `protobuf:"bytes,2,opt,name=groupname" json:"groupname,omitempty"` +} + +func (x *ModGroupName) Reset() { + *x = ModGroupName{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModGroupName) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModGroupName) ProtoMessage() {} + +func (x *ModGroupName) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[26] + 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 ModGroupName.ProtoReflect.Descriptor instead. +func (*ModGroupName) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{26} +} + +func (x *ModGroupName) GetGroupid() uint32 { + if x != nil && x.Groupid != nil { + return *x.Groupid + } + return 0 +} + +func (x *ModGroupName) GetGroupname() []byte { + if x != nil { + return x.Groupname + } + return nil +} + +type ModGroupProfile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupUin *uint64 `protobuf:"varint,1,opt,name=groupUin" json:"groupUin,omitempty"` + GroupProfileInfos []*GroupProfileInfo `protobuf:"bytes,2,rep,name=groupProfileInfos" json:"groupProfileInfos,omitempty"` + GroupCode *uint64 `protobuf:"varint,3,opt,name=groupCode" json:"groupCode,omitempty"` + CmdUin *uint64 `protobuf:"varint,4,opt,name=cmdUin" json:"cmdUin,omitempty"` +} + +func (x *ModGroupProfile) Reset() { + *x = ModGroupProfile{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModGroupProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModGroupProfile) ProtoMessage() {} + +func (x *ModGroupProfile) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[27] + 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 ModGroupProfile.ProtoReflect.Descriptor instead. +func (*ModGroupProfile) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{27} +} + +func (x *ModGroupProfile) GetGroupUin() uint64 { + if x != nil && x.GroupUin != nil { + return *x.GroupUin + } + return 0 +} + +func (x *ModGroupProfile) GetGroupProfileInfos() []*GroupProfileInfo { + if x != nil { + return x.GroupProfileInfos + } + return nil +} + +func (x *ModGroupProfile) GetGroupCode() uint64 { + if x != nil && x.GroupCode != nil { + return *x.GroupCode + } + return 0 +} + +func (x *ModGroupProfile) GetCmdUin() uint64 { + if x != nil && x.CmdUin != nil { + return *x.CmdUin + } + return 0 +} + +type ModGroupSort struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Groupsort []*GroupSort `protobuf:"bytes,1,rep,name=groupsort" json:"groupsort,omitempty"` +} + +func (x *ModGroupSort) Reset() { + *x = ModGroupSort{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModGroupSort) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModGroupSort) ProtoMessage() {} + +func (x *ModGroupSort) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[28] + 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 ModGroupSort.ProtoReflect.Descriptor instead. +func (*ModGroupSort) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{28} +} + +func (x *ModGroupSort) GetGroupsort() []*GroupSort { + if x != nil { + return x.Groupsort + } + return nil +} + +type ModLongNick struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uin *uint64 `protobuf:"varint,1,opt,name=uin" json:"uin,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *ModLongNick) Reset() { + *x = ModLongNick{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModLongNick) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModLongNick) ProtoMessage() {} + +func (x *ModLongNick) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[29] + 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 ModLongNick.ProtoReflect.Descriptor instead. +func (*ModLongNick) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{29} +} + +func (x *ModLongNick) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *ModLongNick) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +type ModProfile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uin *uint64 `protobuf:"varint,1,opt,name=uin" json:"uin,omitempty"` + ProfileInfos []*ProfileInfo `protobuf:"bytes,2,rep,name=profileInfos" json:"profileInfos,omitempty"` +} + +func (x *ModProfile) Reset() { + *x = ModProfile{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModProfile) ProtoMessage() {} + +func (x *ModProfile) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[30] + 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 ModProfile.ProtoReflect.Descriptor instead. +func (*ModProfile) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{30} +} + +func (x *ModProfile) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *ModProfile) GetProfileInfos() []*ProfileInfo { + if x != nil { + return x.ProfileInfos + } + return nil +} + +type ModSnsGeneralInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SnsGeneralInfos []*SnsUpateBuffer `protobuf:"bytes,1,rep,name=snsGeneralInfos" json:"snsGeneralInfos,omitempty"` +} + +func (x *ModSnsGeneralInfo) Reset() { + *x = ModSnsGeneralInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModSnsGeneralInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModSnsGeneralInfo) ProtoMessage() {} + +func (x *ModSnsGeneralInfo) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[31] + 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 ModSnsGeneralInfo.ProtoReflect.Descriptor instead. +func (*ModSnsGeneralInfo) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{31} +} + +func (x *ModSnsGeneralInfo) GetSnsGeneralInfos() []*SnsUpateBuffer { + if x != nil { + return x.SnsGeneralInfos + } + return nil +} + +type SubMsg0X27Body struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ModInfos []*ForwardBody `protobuf:"bytes,1,rep,name=modInfos" json:"modInfos,omitempty"` +} + +func (x *SubMsg0X27Body) Reset() { + *x = SubMsg0X27Body{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubMsg0X27Body) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubMsg0X27Body) ProtoMessage() {} + +func (x *SubMsg0X27Body) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[32] + 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 SubMsg0X27Body.ProtoReflect.Descriptor instead. +func (*SubMsg0X27Body) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{32} +} + +func (x *SubMsg0X27Body) GetModInfos() []*ForwardBody { + if x != nil { + return x.ModInfos + } + return nil +} + +type NewComeinUser struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uin *uint64 `protobuf:"varint,1,opt,name=uin" json:"uin,omitempty"` + IsFrd *uint32 `protobuf:"varint,2,opt,name=isFrd" json:"isFrd,omitempty"` + Remark []byte `protobuf:"bytes,3,opt,name=remark" json:"remark,omitempty"` + Nick []byte `protobuf:"bytes,4,opt,name=nick" json:"nick,omitempty"` +} + +func (x *NewComeinUser) Reset() { + *x = NewComeinUser{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NewComeinUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewComeinUser) ProtoMessage() {} + +func (x *NewComeinUser) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[33] + 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 NewComeinUser.ProtoReflect.Descriptor instead. +func (*NewComeinUser) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{33} +} + +func (x *NewComeinUser) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *NewComeinUser) GetIsFrd() uint32 { + if x != nil && x.IsFrd != nil { + return *x.IsFrd + } + return 0 +} + +func (x *NewComeinUser) GetRemark() []byte { + if x != nil { + return x.Remark + } + return nil +} + +func (x *NewComeinUser) GetNick() []byte { + if x != nil { + return x.Nick + } + return nil +} + +type NewComeinUserNotify struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MsgType *uint32 `protobuf:"varint,1,opt,name=msgType" json:"msgType,omitempty"` + OngNotify *bool `protobuf:"varint,2,opt,name=ongNotify" json:"ongNotify,omitempty"` + PushTime *uint32 `protobuf:"varint,3,opt,name=pushTime" json:"pushTime,omitempty"` + NewComeinUser *NewComeinUser `protobuf:"bytes,4,opt,name=newComeinUser" json:"newComeinUser,omitempty"` + NewGroup *NewGroup `protobuf:"bytes,5,opt,name=newGroup" json:"newGroup,omitempty"` + NewGroupUser *NewGroupUser `protobuf:"bytes,6,opt,name=newGroupUser" json:"newGroupUser,omitempty"` +} + +func (x *NewComeinUserNotify) Reset() { + *x = NewComeinUserNotify{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NewComeinUserNotify) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewComeinUserNotify) ProtoMessage() {} + +func (x *NewComeinUserNotify) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[34] + 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 NewComeinUserNotify.ProtoReflect.Descriptor instead. +func (*NewComeinUserNotify) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{34} +} + +func (x *NewComeinUserNotify) GetMsgType() uint32 { + if x != nil && x.MsgType != nil { + return *x.MsgType + } + return 0 +} + +func (x *NewComeinUserNotify) GetOngNotify() bool { + if x != nil && x.OngNotify != nil { + return *x.OngNotify + } + return false +} + +func (x *NewComeinUserNotify) GetPushTime() uint32 { + if x != nil && x.PushTime != nil { + return *x.PushTime + } + return 0 +} + +func (x *NewComeinUserNotify) GetNewComeinUser() *NewComeinUser { + if x != nil { + return x.NewComeinUser + } + return nil +} + +func (x *NewComeinUserNotify) GetNewGroup() *NewGroup { + if x != nil { + return x.NewGroup + } + return nil +} + +func (x *NewComeinUserNotify) GetNewGroupUser() *NewGroupUser { + if x != nil { + return x.NewGroupUser + } + return nil +} + +type NewGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupCode *uint64 `protobuf:"varint,1,opt,name=groupCode" json:"groupCode,omitempty"` + GroupName []byte `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` + OwnerUin *uint64 `protobuf:"varint,3,opt,name=ownerUin" json:"ownerUin,omitempty"` + OwnerNick []byte `protobuf:"bytes,4,opt,name=ownerNick" json:"ownerNick,omitempty"` + Distance []byte `protobuf:"bytes,5,opt,name=distance" json:"distance,omitempty"` +} + +func (x *NewGroup) Reset() { + *x = NewGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NewGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewGroup) ProtoMessage() {} + +func (x *NewGroup) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[35] + 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 NewGroup.ProtoReflect.Descriptor instead. +func (*NewGroup) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{35} +} + +func (x *NewGroup) GetGroupCode() uint64 { + if x != nil && x.GroupCode != nil { + return *x.GroupCode + } + return 0 +} + +func (x *NewGroup) GetGroupName() []byte { + if x != nil { + return x.GroupName + } + return nil +} + +func (x *NewGroup) GetOwnerUin() uint64 { + if x != nil && x.OwnerUin != nil { + return *x.OwnerUin + } + return 0 +} + +func (x *NewGroup) GetOwnerNick() []byte { + if x != nil { + return x.OwnerNick + } + return nil +} + +func (x *NewGroup) GetDistance() []byte { + if x != nil { + return x.Distance + } + return nil +} + +type NewGroupUser struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uin *uint64 `protobuf:"varint,1,opt,name=uin" json:"uin,omitempty"` + Sex *int32 `protobuf:"varint,2,opt,name=sex" json:"sex,omitempty"` + Age *int32 `protobuf:"varint,3,opt,name=age" json:"age,omitempty"` + Nick *string `protobuf:"bytes,4,opt,name=nick" json:"nick,omitempty"` + Distance []byte `protobuf:"bytes,5,opt,name=distance" json:"distance,omitempty"` +} + +func (x *NewGroupUser) Reset() { + *x = NewGroupUser{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NewGroupUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewGroupUser) ProtoMessage() {} + +func (x *NewGroupUser) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[36] + 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 NewGroupUser.ProtoReflect.Descriptor instead. +func (*NewGroupUser) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{36} +} + +func (x *NewGroupUser) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *NewGroupUser) GetSex() int32 { + if x != nil && x.Sex != nil { + return *x.Sex + } + return 0 +} + +func (x *NewGroupUser) GetAge() int32 { + if x != nil && x.Age != nil { + return *x.Age + } + return 0 +} + +func (x *NewGroupUser) GetNick() string { + if x != nil && x.Nick != nil { + return *x.Nick + } + return "" +} + +func (x *NewGroupUser) GetDistance() []byte { + if x != nil { + return x.Distance + } + return nil +} + +type OneRoamPriv struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Fuin *uint64 `protobuf:"varint,1,opt,name=fuin" json:"fuin,omitempty"` + PrivTag *uint32 `protobuf:"varint,2,opt,name=privTag" json:"privTag,omitempty"` + PrivValue *uint32 `protobuf:"varint,3,opt,name=privValue" json:"privValue,omitempty"` +} + +func (x *OneRoamPriv) Reset() { + *x = OneRoamPriv{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OneRoamPriv) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OneRoamPriv) ProtoMessage() {} + +func (x *OneRoamPriv) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[37] + 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 OneRoamPriv.ProtoReflect.Descriptor instead. +func (*OneRoamPriv) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{37} +} + +func (x *OneRoamPriv) GetFuin() uint64 { + if x != nil && x.Fuin != nil { + return *x.Fuin + } + return 0 +} + +func (x *OneRoamPriv) GetPrivTag() uint32 { + if x != nil && x.PrivTag != nil { + return *x.PrivTag + } + return 0 +} + +func (x *OneRoamPriv) GetPrivValue() uint32 { + if x != nil && x.PrivValue != nil { + return *x.PrivValue + } + return 0 +} + +type PraiseRankNotify struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsChampion *uint32 `protobuf:"varint,11,opt,name=isChampion" json:"isChampion,omitempty"` + RankNum *uint32 `protobuf:"varint,12,opt,name=rankNum" json:"rankNum,omitempty"` + Msg *string `protobuf:"bytes,13,opt,name=msg" json:"msg,omitempty"` +} + +func (x *PraiseRankNotify) Reset() { + *x = PraiseRankNotify{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PraiseRankNotify) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PraiseRankNotify) ProtoMessage() {} + +func (x *PraiseRankNotify) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[38] + 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 PraiseRankNotify.ProtoReflect.Descriptor instead. +func (*PraiseRankNotify) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{38} +} + +func (x *PraiseRankNotify) GetIsChampion() uint32 { + if x != nil && x.IsChampion != nil { + return *x.IsChampion + } + return 0 +} + +func (x *PraiseRankNotify) GetRankNum() uint32 { + if x != nil && x.RankNum != nil { + return *x.RankNum + } + return 0 +} + +func (x *PraiseRankNotify) GetMsg() string { + if x != nil && x.Msg != nil { + return *x.Msg + } + return "" +} + +type ProfileInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Field *uint32 `protobuf:"varint,1,opt,name=field" json:"field,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *ProfileInfo) Reset() { + *x = ProfileInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProfileInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProfileInfo) ProtoMessage() {} + +func (x *ProfileInfo) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[39] + 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 ProfileInfo.ProtoReflect.Descriptor instead. +func (*ProfileInfo) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{39} +} + +func (x *ProfileInfo) GetField() uint32 { + if x != nil && x.Field != nil { + return *x.Field + } + return 0 +} + +func (x *ProfileInfo) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +type PushReportDev struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MsgType *uint32 `protobuf:"varint,1,opt,name=msgType" json:"msgType,omitempty"` + Cookie []byte `protobuf:"bytes,4,opt,name=cookie" json:"cookie,omitempty"` + ReportMaxNum *uint32 `protobuf:"varint,5,opt,name=reportMaxNum" json:"reportMaxNum,omitempty"` + Sn []byte `protobuf:"bytes,6,opt,name=sn" json:"sn,omitempty"` +} + +func (x *PushReportDev) Reset() { + *x = PushReportDev{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PushReportDev) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PushReportDev) ProtoMessage() {} + +func (x *PushReportDev) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[40] + 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 PushReportDev.ProtoReflect.Descriptor instead. +func (*PushReportDev) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{40} +} + +func (x *PushReportDev) GetMsgType() uint32 { + if x != nil && x.MsgType != nil { + return *x.MsgType + } + return 0 +} + +func (x *PushReportDev) GetCookie() []byte { + if x != nil { + return x.Cookie + } + return nil +} + +func (x *PushReportDev) GetReportMaxNum() uint32 { + if x != nil && x.ReportMaxNum != nil { + return *x.ReportMaxNum + } + return 0 +} + +func (x *PushReportDev) GetSn() []byte { + if x != nil { + return x.Sn + } + return nil +} + +type PushSearchDev struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MsgType *uint32 `protobuf:"varint,1,opt,name=msgType" json:"msgType,omitempty"` + GpsInfo *GPS `protobuf:"bytes,2,opt,name=gpsInfo" json:"gpsInfo,omitempty"` + DevTime *uint32 `protobuf:"varint,3,opt,name=devTime" json:"devTime,omitempty"` + PushTime *uint32 `protobuf:"varint,4,opt,name=pushTime" json:"pushTime,omitempty"` + Din *uint64 `protobuf:"varint,5,opt,name=din" json:"din,omitempty"` + Data *string `protobuf:"bytes,6,opt,name=data" json:"data,omitempty"` +} + +func (x *PushSearchDev) Reset() { + *x = PushSearchDev{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PushSearchDev) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PushSearchDev) ProtoMessage() {} + +func (x *PushSearchDev) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[41] + 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 PushSearchDev.ProtoReflect.Descriptor instead. +func (*PushSearchDev) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{41} +} + +func (x *PushSearchDev) GetMsgType() uint32 { + if x != nil && x.MsgType != nil { + return *x.MsgType + } + return 0 +} + +func (x *PushSearchDev) GetGpsInfo() *GPS { + if x != nil { + return x.GpsInfo + } + return nil +} + +func (x *PushSearchDev) GetDevTime() uint32 { + if x != nil && x.DevTime != nil { + return *x.DevTime + } + return 0 +} + +func (x *PushSearchDev) GetPushTime() uint32 { + if x != nil && x.PushTime != nil { + return *x.PushTime + } + return 0 +} + +func (x *PushSearchDev) GetDin() uint64 { + if x != nil && x.Din != nil { + return *x.Din + } + return 0 +} + +func (x *PushSearchDev) GetData() string { + if x != nil && x.Data != nil { + return *x.Data + } + return "" +} + +type QQPayPush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uin *uint64 `protobuf:"varint,1,opt,name=uin" json:"uin,omitempty"` + PayOk *bool `protobuf:"varint,2,opt,name=payOk" json:"payOk,omitempty"` +} + +func (x *QQPayPush) Reset() { + *x = QQPayPush{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QQPayPush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QQPayPush) ProtoMessage() {} + +func (x *QQPayPush) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[42] + 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 QQPayPush.ProtoReflect.Descriptor instead. +func (*QQPayPush) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{42} +} + +func (x *QQPayPush) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *QQPayPush) GetPayOk() bool { + if x != nil && x.PayOk != nil { + return *x.PayOk + } + return false +} + +type SnsUpateBuffer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uin *uint64 `protobuf:"varint,1,opt,name=uin" json:"uin,omitempty"` + Code *uint64 `protobuf:"varint,2,opt,name=code" json:"code,omitempty"` + Result *uint32 `protobuf:"varint,3,opt,name=result" json:"result,omitempty"` + SnsUpdateItem []*SnsUpdateItem `protobuf:"bytes,400,rep,name=snsUpdateItem" json:"snsUpdateItem,omitempty"` + Idlist []uint32 `protobuf:"varint,401,rep,name=idlist" json:"idlist,omitempty"` +} + +func (x *SnsUpateBuffer) Reset() { + *x = SnsUpateBuffer{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SnsUpateBuffer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SnsUpateBuffer) ProtoMessage() {} + +func (x *SnsUpateBuffer) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[43] + 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 SnsUpateBuffer.ProtoReflect.Descriptor instead. +func (*SnsUpateBuffer) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{43} +} + +func (x *SnsUpateBuffer) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *SnsUpateBuffer) GetCode() uint64 { + if x != nil && x.Code != nil { + return *x.Code + } + return 0 +} + +func (x *SnsUpateBuffer) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +func (x *SnsUpateBuffer) GetSnsUpdateItem() []*SnsUpdateItem { + if x != nil { + return x.SnsUpdateItem + } + return nil +} + +func (x *SnsUpateBuffer) GetIdlist() []uint32 { + if x != nil { + return x.Idlist + } + return nil +} + +type SnsUpdateFlag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UpdateSnsFlag []*SnsUpdateOneFlag `protobuf:"bytes,1,rep,name=updateSnsFlag" json:"updateSnsFlag,omitempty"` +} + +func (x *SnsUpdateFlag) Reset() { + *x = SnsUpdateFlag{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SnsUpdateFlag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SnsUpdateFlag) ProtoMessage() {} + +func (x *SnsUpdateFlag) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[44] + 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 SnsUpdateFlag.ProtoReflect.Descriptor instead. +func (*SnsUpdateFlag) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{44} +} + +func (x *SnsUpdateFlag) GetUpdateSnsFlag() []*SnsUpdateOneFlag { + if x != nil { + return x.UpdateSnsFlag + } + return nil +} + +type SnsUpdateItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UpdateSnsType *uint32 `protobuf:"varint,1,opt,name=updateSnsType" json:"updateSnsType,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *SnsUpdateItem) Reset() { + *x = SnsUpdateItem{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SnsUpdateItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SnsUpdateItem) ProtoMessage() {} + +func (x *SnsUpdateItem) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[45] + 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 SnsUpdateItem.ProtoReflect.Descriptor instead. +func (*SnsUpdateItem) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{45} +} + +func (x *SnsUpdateItem) GetUpdateSnsType() uint32 { + if x != nil && x.UpdateSnsType != nil { + return *x.UpdateSnsType + } + return 0 +} + +func (x *SnsUpdateItem) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +type SnsUpdateOneFlag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + XUin *uint64 `protobuf:"varint,1,opt,name=XUin" json:"XUin,omitempty"` + Id *uint64 `protobuf:"varint,2,opt,name=id" json:"id,omitempty"` + Flag *uint32 `protobuf:"varint,3,opt,name=flag" json:"flag,omitempty"` +} + +func (x *SnsUpdateOneFlag) Reset() { + *x = SnsUpdateOneFlag{} + if protoimpl.UnsafeEnabled { + mi := &file_subMsgType0x27_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SnsUpdateOneFlag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SnsUpdateOneFlag) ProtoMessage() {} + +func (x *SnsUpdateOneFlag) ProtoReflect() protoreflect.Message { + mi := &file_subMsgType0x27_proto_msgTypes[46] + 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 SnsUpdateOneFlag.ProtoReflect.Descriptor instead. +func (*SnsUpdateOneFlag) Descriptor() ([]byte, []int) { + return file_subMsgType0x27_proto_rawDescGZIP(), []int{46} +} + +func (x *SnsUpdateOneFlag) GetXUin() uint64 { + if x != nil && x.XUin != nil { + return *x.XUin + } + return 0 +} + +func (x *SnsUpdateOneFlag) GetId() uint64 { + if x != nil && x.Id != nil { + return *x.Id + } + return 0 +} + +func (x *SnsUpdateOneFlag) GetFlag() uint32 { + if x != nil && x.Flag != nil { + return *x.Flag + } + return 0 +} + +var File_subMsgType0x27_proto protoreflect.FileDescriptor + +var file_subMsgType0x27_proto_rawDesc = []byte{ + 0x0a, 0x14, 0x73, 0x75, 0x62, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x30, 0x78, 0x32, 0x37, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xf3, 0x02, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, + 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, + 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x69, 0x70, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x69, 0x70, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6a, 0x6f, 0x69, 0x6e, 0x57, 0x6f, 0x72, 0x64, + 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x6f, 0x69, 0x6e, 0x57, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x65, 0x77, 0x57, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x69, 0x65, + 0x77, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x65, 0x61, 0x72, + 0x62, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0f, 0x6e, 0x65, 0x61, 0x72, 0x62, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x64, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x3d, 0x0a, 0x09, 0x42, 0x69, 0x6e, 0x61, + 0x72, 0x79, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xbb, 0x02, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x74, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x1a, 0x0a, + 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x55, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x69, 0x70, + 0x73, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, + 0x74, 0x69, 0x70, 0x73, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x6c, + 0x65, 0x66, 0x74, 0x43, 0x68, 0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x6c, 0x65, 0x66, 0x74, 0x43, 0x68, 0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2a, 0x0a, + 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x32, 0x43, + 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0e, 0x63, 0x32, 0x43, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x22, 0x5b, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x4d, 0x73, 0x67, + 0x52, 0x6f, 0x61, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0x9f, 0x01, 0x0a, 0x0b, 0x44, 0x61, 0x52, 0x65, 0x6e, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x75, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x44, 0x61, 0x79, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x44, 0x61, + 0x79, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x73, 0x59, 0x65, 0x73, 0x74, + 0x6f, 0x64, 0x61, 0x79, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0f, 0x69, 0x73, 0x59, 0x65, 0x73, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x69, 0x73, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x22, 0x1f, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, + 0x04, 0x75, 0x69, 0x6e, 0x73, 0x22, 0x24, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x22, 0x7a, 0x0a, 0x0e, 0x46, + 0x61, 0x6e, 0x70, 0x61, 0x69, 0x7a, 0x69, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x18, 0x0a, + 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4e, + 0x69, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4e, + 0x69, 0x63, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x69, 0x70, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x74, 0x69, 0x70, 0x73, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x22, 0x99, 0x0f, 0x0a, 0x0b, 0x46, 0x6f, 0x72, 0x77, + 0x61, 0x72, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x25, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x09, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x08, 0x61, 0x64, + 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x0a, 0x08, 0x64, 0x65, 0x6c, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x65, 0x6c, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x08, 0x64, 0x65, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, 0x0a, + 0x0c, 0x6d, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x4d, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x31, 0x0a, 0x0c, 0x6d, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x6f, 0x72, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x4d, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x53, 0x6f, 0x72, 0x74, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, + 0x6f, 0x72, 0x74, 0x12, 0x37, 0x0a, 0x0e, 0x6d, 0x6f, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x4d, 0x6f, + 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0e, 0x6d, 0x6f, + 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2b, 0x0a, 0x0a, + 0x6d, 0x6f, 0x64, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x4d, 0x6f, 0x64, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x0a, 0x6d, + 0x6f, 0x64, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x0f, 0x6d, 0x6f, 0x64, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x4d, 0x6f, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x0f, 0x6d, 0x6f, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x2e, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x4c, 0x6f, 0x6e, 0x67, + 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4d, 0x6f, 0x64, + 0x4c, 0x6f, 0x6e, 0x67, 0x4e, 0x69, 0x63, 0x6b, 0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x4c, 0x6f, 0x6e, + 0x67, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x34, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4d, + 0x6f, 0x64, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x52, 0x0d, 0x6d, 0x6f, + 0x64, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x12, 0x3a, 0x0a, 0x0f, 0x6d, + 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x4d, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x0f, 0x6d, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x4c, 0x0a, 0x15, 0x6d, 0x6f, 0x64, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x4d, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x15, + 0x6d, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x65, 0x6c, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, + 0x2b, 0x0a, 0x08, 0x72, 0x6f, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x76, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x4d, 0x6f, 0x64, 0x46, 0x72, 0x64, 0x52, 0x6f, 0x61, 0x6d, 0x50, 0x72, + 0x69, 0x76, 0x52, 0x08, 0x72, 0x6f, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x76, 0x12, 0x37, 0x0a, 0x0e, + 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x61, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x47, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x61, + 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0e, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x61, + 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x3a, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x4d, 0x73, 0x67, + 0x52, 0x6f, 0x61, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x61, 0x6d, 0x46, 0x6c, 0x61, 0x67, + 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x61, 0x6d, 0x46, 0x6c, 0x61, + 0x67, 0x12, 0x36, 0x0a, 0x0f, 0x6d, 0x6f, 0x64, 0x52, 0x69, 0x63, 0x68, 0x4c, 0x6f, 0x6e, 0x67, + 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4d, 0x6f, 0x64, + 0x4c, 0x6f, 0x6e, 0x67, 0x4e, 0x69, 0x63, 0x6b, 0x52, 0x0f, 0x6d, 0x6f, 0x64, 0x52, 0x69, 0x63, + 0x68, 0x4c, 0x6f, 0x6e, 0x67, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x06, 0x62, 0x69, 0x6e, + 0x50, 0x6b, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x69, 0x6e, 0x61, + 0x72, 0x79, 0x4d, 0x73, 0x67, 0x52, 0x06, 0x62, 0x69, 0x6e, 0x50, 0x6b, 0x67, 0x12, 0x3a, 0x0a, + 0x0e, 0x6d, 0x6f, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x4d, 0x6f, 0x64, 0x53, 0x6e, 0x73, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x37, 0x0a, 0x0e, 0x6d, 0x6f, 0x64, + 0x43, 0x6f, 0x6e, 0x66, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x4d, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x12, 0x34, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x46, + 0x6c, 0x61, 0x67, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, 0x6e, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0d, 0x6d, 0x6f, 0x64, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x40, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x11, 0x61, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x2e, 0x0a, 0x0b, 0x64, 0x61, + 0x72, 0x65, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x44, 0x61, 0x52, 0x65, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x0b, 0x64, + 0x61, 0x72, 0x65, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x46, 0x0a, 0x13, 0x6e, 0x65, + 0x77, 0x43, 0x6f, 0x6d, 0x65, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6d, + 0x65, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x13, 0x6e, + 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x65, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x12, 0x35, 0x0a, 0x0d, 0x70, 0x75, 0x73, 0x68, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x44, 0x65, 0x76, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x50, 0x75, 0x73, + 0x68, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x65, 0x76, 0x52, 0x0d, 0x70, 0x75, 0x73, 0x68, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x65, 0x76, 0x12, 0x35, 0x0a, 0x0d, 0x70, 0x75, 0x73, + 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, + 0x76, 0x52, 0x0d, 0x70, 0x75, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, + 0x12, 0x29, 0x0a, 0x09, 0x71, 0x71, 0x50, 0x61, 0x79, 0x50, 0x75, 0x73, 0x68, 0x18, 0xca, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x51, 0x51, 0x50, 0x61, 0x79, 0x50, 0x75, 0x73, 0x68, + 0x52, 0x09, 0x71, 0x71, 0x50, 0x61, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0c, 0x72, + 0x65, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0xcb, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x3b, 0x0a, 0x0f, 0x68, 0x6f, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x48, 0x6f, 0x74, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x0f, 0x68, 0x6f, + 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x3e, 0x0a, + 0x10, 0x70, 0x72, 0x61, 0x69, 0x73, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x50, 0x72, 0x61, 0x69, 0x73, + 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x10, 0x70, 0x72, 0x61, + 0x69, 0x73, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x35, 0x0a, + 0x0c, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0xd2, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x4d, 0x51, 0x51, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x0c, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x79, 0x12, 0x3b, 0x0a, 0x11, 0x6d, 0x6f, 0x64, 0x52, 0x69, 0x63, 0x68, 0x4c, + 0x6f, 0x6e, 0x67, 0x4e, 0x69, 0x63, 0x6b, 0x45, 0x78, 0x18, 0xd3, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x4d, 0x6f, 0x64, 0x4c, 0x6f, 0x6e, 0x67, 0x4e, 0x69, 0x63, 0x6b, 0x52, 0x11, + 0x6d, 0x6f, 0x64, 0x52, 0x69, 0x63, 0x68, 0x4c, 0x6f, 0x6e, 0x67, 0x4e, 0x69, 0x63, 0x6b, 0x45, + 0x78, 0x12, 0x35, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0xd4, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x43, 0x68, 0x61, 0x74, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x74, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5f, 0x0a, 0x1b, 0x66, 0x72, 0x64, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0xd6, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x46, 0x72, 0x64, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x1b, 0x66, 0x72, + 0x64, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x0e, 0x66, 0x61, 0x6e, + 0x70, 0x61, 0x6e, 0x7a, 0x69, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0xd0, 0x0f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x46, 0x61, 0x6e, 0x70, 0x61, 0x69, 0x7a, 0x69, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x52, 0x0e, 0x66, 0x61, 0x6e, 0x70, 0x61, 0x6e, 0x7a, 0x69, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x22, 0x2f, 0x0a, 0x1b, 0x46, 0x72, 0x64, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x75, 0x69, 0x6e, 0x22, 0x61, 0x0a, 0x0b, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x04, 0x66, 0x75, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x6c, 0x64, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x6f, 0x6c, 0x64, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x65, 0x77, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x6e, 0x0a, 0x0c, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, + 0x75, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x66, 0x75, 0x69, 0x6e, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x6d, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x72, 0x6d, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x4f, 0x0a, 0x03, 0x47, 0x50, 0x53, 0x12, 0x10, + 0x0a, 0x03, 0x6c, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6c, 0x61, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6c, + 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x61, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x44, 0x0a, 0x16, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3e, + 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3d, + 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x64, 0x22, 0x60, 0x0a, + 0x0e, 0x47, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x61, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x12, + 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x6c, 0x61, + 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, + 0xcf, 0x04, 0x0a, 0x0f, 0x48, 0x6f, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x64, 0x73, 0x74, 0x55, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x70, + 0x72, 0x61, 0x69, 0x73, 0x65, 0x48, 0x6f, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x72, 0x61, 0x69, 0x73, 0x65, 0x48, 0x6f, 0x74, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x74, 0x48, 0x6f, 0x74, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x74, 0x48, + 0x6f, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x61, 0x69, 0x73, + 0x65, 0x48, 0x6f, 0x74, 0x44, 0x61, 0x79, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, + 0x70, 0x72, 0x61, 0x69, 0x73, 0x65, 0x48, 0x6f, 0x74, 0x44, 0x61, 0x79, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x74, 0x48, 0x6f, 0x74, 0x44, 0x61, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x74, 0x48, 0x6f, 0x74, 0x44, 0x61, 0x79, 0x73, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x44, 0x61, 0x79, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x44, 0x61, 0x79, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x72, 0x61, 0x69, 0x73, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x70, 0x72, 0x61, 0x69, 0x73, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, + 0x08, 0x63, 0x68, 0x61, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x63, 0x68, 0x61, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x6f, + 0x73, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x6c, + 0x6f, 0x73, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x50, + 0x72, 0x61, 0x69, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x72, 0x61, 0x69, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x71, 0x7a, 0x6f, 0x6e, 0x65, 0x48, 0x6f, 0x74, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x71, 0x7a, 0x6f, 0x6e, + 0x65, 0x48, 0x6f, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x71, 0x7a, 0x6f, + 0x6e, 0x65, 0x48, 0x6f, 0x74, 0x44, 0x61, 0x79, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x71, 0x7a, 0x6f, 0x6e, 0x65, 0x48, 0x6f, 0x74, 0x44, 0x61, 0x79, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x71, 0x7a, 0x6f, 0x6e, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x71, 0x7a, 0x6f, 0x6e, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x6c, + 0x61, 0x73, 0x74, 0x51, 0x7a, 0x6f, 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x51, 0x7a, 0x6f, 0x6e, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x22, 0x89, 0x01, 0x0a, 0x0f, 0x4d, 0x51, 0x51, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, + 0x18, 0x0a, 0x07, 0x77, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x77, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x6e, 0x0a, + 0x0e, 0x4d, 0x6f, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x69, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x55, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x0c, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x6b, 0x0a, + 0x0d, 0x4d, 0x6f, 0x64, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x75, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6d, 0x64, 0x55, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x63, 0x6d, 0x64, 0x55, 0x69, 0x6e, 0x22, 0x3a, 0x0a, 0x0e, 0x4d, 0x6f, + 0x64, 0x46, 0x72, 0x64, 0x52, 0x6f, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x76, 0x12, 0x28, 0x0a, 0x08, + 0x72, 0x6f, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x76, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x4f, 0x6e, 0x65, 0x52, 0x6f, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x76, 0x52, 0x08, 0x72, 0x6f, + 0x61, 0x6d, 0x50, 0x72, 0x69, 0x76, 0x22, 0x3a, 0x0a, 0x0e, 0x4d, 0x6f, 0x64, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x0a, 0x08, 0x66, 0x72, 0x64, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x08, 0x66, 0x72, 0x64, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x22, 0x38, 0x0a, 0x0f, 0x4d, 0x6f, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x25, 0x0a, 0x06, 0x66, 0x72, 0x64, 0x52, 0x6d, 0x6b, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x06, 0x66, 0x72, 0x64, 0x52, 0x6d, 0x6b, 0x22, 0xb6, 0x01, 0x0a, + 0x15, 0x4d, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, + 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x75, 0x69, 0x6e, 0x12, 0x51, 0x0a, 0x17, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x17, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x46, 0x0a, 0x0c, 0x4d, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa4, 0x01, + 0x0a, 0x0f, 0x4d, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, 0x12, 0x3f, 0x0a, + 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x6d, 0x64, 0x55, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6d, + 0x64, 0x55, 0x69, 0x6e, 0x22, 0x38, 0x0a, 0x0c, 0x4d, 0x6f, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x53, 0x6f, 0x72, 0x74, 0x12, 0x28, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x6f, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, + 0x6f, 0x72, 0x74, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x6f, 0x72, 0x74, 0x22, 0x35, + 0x0a, 0x0b, 0x4d, 0x6f, 0x64, 0x4c, 0x6f, 0x6e, 0x67, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x10, 0x0a, + 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x50, 0x0a, 0x0a, 0x4d, 0x6f, 0x64, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x4e, 0x0a, 0x11, 0x4d, 0x6f, 0x64, 0x53, 0x6e, + 0x73, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x0f, + 0x73, 0x6e, 0x73, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x53, 0x6e, 0x73, 0x55, 0x70, 0x61, 0x74, 0x65, + 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x52, 0x0f, 0x73, 0x6e, 0x73, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x3a, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x4d, 0x73, + 0x67, 0x30, 0x78, 0x32, 0x37, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x28, 0x0a, 0x08, 0x6d, 0x6f, 0x64, + 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x46, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x73, 0x22, 0x63, 0x0a, 0x0d, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x65, 0x69, 0x6e, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x46, 0x72, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x73, 0x46, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x72, 0x65, + 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x22, 0xf9, 0x01, 0x0a, 0x13, 0x4e, 0x65, 0x77, + 0x43, 0x6f, 0x6d, 0x65, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x6e, + 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, + 0x6e, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x73, 0x68, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x65, 0x69, + 0x6e, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4e, 0x65, + 0x77, 0x43, 0x6f, 0x6d, 0x65, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x6e, 0x65, 0x77, + 0x43, 0x6f, 0x6d, 0x65, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x08, 0x6e, 0x65, + 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x4e, + 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x31, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x4e, 0x65, 0x77, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x55, 0x73, 0x65, 0x72, 0x22, 0x9c, 0x01, 0x0a, 0x08, 0x4e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x22, 0x74, 0x0a, 0x0c, 0x4e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, + 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x1a, 0x0a, + 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x59, 0x0a, 0x0b, 0x4f, 0x6e, 0x65, + 0x52, 0x6f, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x76, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x69, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x66, 0x75, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, + 0x70, 0x72, 0x69, 0x76, 0x54, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, + 0x72, 0x69, 0x76, 0x54, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x76, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x69, 0x76, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5e, 0x0a, 0x10, 0x50, 0x72, 0x61, 0x69, 0x73, 0x65, 0x52, 0x61, + 0x6e, 0x6b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x43, 0x68, + 0x61, 0x6d, 0x70, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x73, + 0x43, 0x68, 0x61, 0x6d, 0x70, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x61, 0x6e, 0x6b, + 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x61, 0x6e, 0x6b, 0x4e, + 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x22, 0x39, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x75, 0x0a, 0x0d, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x76, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, + 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, + 0x69, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x78, 0x4e, + 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x73, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x02, 0x73, 0x6e, 0x22, 0xa5, 0x01, 0x0a, 0x0d, 0x50, 0x75, 0x73, 0x68, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x65, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x07, 0x67, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x04, 0x2e, 0x47, 0x50, 0x53, 0x52, 0x07, 0x67, 0x70, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, 0x65, 0x76, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x75, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x70, 0x75, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x69, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x64, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x33, + 0x0a, 0x09, 0x51, 0x51, 0x50, 0x61, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x14, 0x0a, + 0x05, 0x70, 0x61, 0x79, 0x4f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x70, 0x61, + 0x79, 0x4f, 0x6b, 0x22, 0x9e, 0x01, 0x0a, 0x0e, 0x53, 0x6e, 0x73, 0x55, 0x70, 0x61, 0x74, 0x65, + 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x35, 0x0a, 0x0d, 0x73, 0x6e, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x90, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, + 0x6e, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0d, 0x73, 0x6e, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x17, 0x0a, 0x06, 0x69, + 0x64, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x91, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x64, + 0x6c, 0x69, 0x73, 0x74, 0x22, 0x48, 0x0a, 0x0d, 0x53, 0x6e, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x37, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x6e, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x53, + 0x6e, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, + 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x4b, + 0x0a, 0x0d, 0x53, 0x6e, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x24, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6e, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4a, 0x0a, 0x10, 0x53, + 0x6e, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x58, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x58, + 0x55, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x10, 0x5a, 0x0e, 0x2e, 0x3b, 0x6d, 0x73, 0x67, + 0x74, 0x79, 0x70, 0x65, 0x30, 0x78, 0x32, 0x31, 0x30, +} + +var ( + file_subMsgType0x27_proto_rawDescOnce sync.Once + file_subMsgType0x27_proto_rawDescData = file_subMsgType0x27_proto_rawDesc +) + +func file_subMsgType0x27_proto_rawDescGZIP() []byte { + file_subMsgType0x27_proto_rawDescOnce.Do(func() { + file_subMsgType0x27_proto_rawDescData = protoimpl.X.CompressGZIP(file_subMsgType0x27_proto_rawDescData) + }) + return file_subMsgType0x27_proto_rawDescData +} + +var file_subMsgType0x27_proto_msgTypes = make([]protoimpl.MessageInfo, 47) +var file_subMsgType0x27_proto_goTypes = []interface{}{ + (*AddGroup)(nil), // 0: AddGroup + (*AppointmentNotify)(nil), // 1: AppointmentNotify + (*BinaryMsg)(nil), // 2: BinaryMsg + (*ChatMatchInfo)(nil), // 3: ChatMatchInfo + (*ConfMsgRoamFlag)(nil), // 4: ConfMsgRoamFlag + (*DaRenNotify)(nil), // 5: DaRenNotify + (*DelFriend)(nil), // 6: DelFriend + (*DelGroup)(nil), // 7: DelGroup + (*FanpaiziNotify)(nil), // 8: FanpaiziNotify + (*ForwardBody)(nil), // 9: ForwardBody + (*FrdCustomOnlineStatusChange)(nil), // 10: FrdCustomOnlineStatusChange + (*FriendGroup)(nil), // 11: FriendGroup + (*FriendRemark)(nil), // 12: FriendRemark + (*GPS)(nil), // 13: GPS + (*GroupMemberProfileInfo)(nil), // 14: GroupMemberProfileInfo + (*GroupProfileInfo)(nil), // 15: GroupProfileInfo + (*GroupSort)(nil), // 16: GroupSort + (*GrpMsgRoamFlag)(nil), // 17: GrpMsgRoamFlag + (*HotFriendNotify)(nil), // 18: HotFriendNotify + (*MQQCampusNotify)(nil), // 19: MQQCampusNotify + (*ModConfProfile)(nil), // 20: ModConfProfile + (*ModCustomFace)(nil), // 21: ModCustomFace + (*ModFrdRoamPriv)(nil), // 22: ModFrdRoamPriv + (*ModFriendGroup)(nil), // 23: ModFriendGroup + (*ModFriendRemark)(nil), // 24: ModFriendRemark + (*ModGroupMemberProfile)(nil), // 25: ModGroupMemberProfile + (*ModGroupName)(nil), // 26: ModGroupName + (*ModGroupProfile)(nil), // 27: ModGroupProfile + (*ModGroupSort)(nil), // 28: ModGroupSort + (*ModLongNick)(nil), // 29: ModLongNick + (*ModProfile)(nil), // 30: ModProfile + (*ModSnsGeneralInfo)(nil), // 31: ModSnsGeneralInfo + (*SubMsg0X27Body)(nil), // 32: SubMsg0x27Body + (*NewComeinUser)(nil), // 33: NewComeinUser + (*NewComeinUserNotify)(nil), // 34: NewComeinUserNotify + (*NewGroup)(nil), // 35: NewGroup + (*NewGroupUser)(nil), // 36: NewGroupUser + (*OneRoamPriv)(nil), // 37: OneRoamPriv + (*PraiseRankNotify)(nil), // 38: PraiseRankNotify + (*ProfileInfo)(nil), // 39: ProfileInfo + (*PushReportDev)(nil), // 40: PushReportDev + (*PushSearchDev)(nil), // 41: PushSearchDev + (*QQPayPush)(nil), // 42: QQPayPush + (*SnsUpateBuffer)(nil), // 43: SnsUpateBuffer + (*SnsUpdateFlag)(nil), // 44: SnsUpdateFlag + (*SnsUpdateItem)(nil), // 45: SnsUpdateItem + (*SnsUpdateOneFlag)(nil), // 46: SnsUpdateOneFlag +} +var file_subMsgType0x27_proto_depIdxs = []int32{ + 0, // 0: ForwardBody.addGroup:type_name -> AddGroup + 7, // 1: ForwardBody.delGroup:type_name -> DelGroup + 26, // 2: ForwardBody.modGroupName:type_name -> ModGroupName + 28, // 3: ForwardBody.modGroupSort:type_name -> ModGroupSort + 23, // 4: ForwardBody.modFriendGroup:type_name -> ModFriendGroup + 30, // 5: ForwardBody.modProfile:type_name -> ModProfile + 24, // 6: ForwardBody.modFriendRemark:type_name -> ModFriendRemark + 29, // 7: ForwardBody.modLongNick:type_name -> ModLongNick + 21, // 8: ForwardBody.modCustomFace:type_name -> ModCustomFace + 27, // 9: ForwardBody.modGroupProfile:type_name -> ModGroupProfile + 25, // 10: ForwardBody.modGroupMemberProfile:type_name -> ModGroupMemberProfile + 6, // 11: ForwardBody.delFriend:type_name -> DelFriend + 22, // 12: ForwardBody.roamPriv:type_name -> ModFrdRoamPriv + 17, // 13: ForwardBody.grpMsgRoamFlag:type_name -> GrpMsgRoamFlag + 4, // 14: ForwardBody.confMsgRoamFlag:type_name -> ConfMsgRoamFlag + 29, // 15: ForwardBody.modRichLongNick:type_name -> ModLongNick + 2, // 16: ForwardBody.binPkg:type_name -> BinaryMsg + 31, // 17: ForwardBody.modFriendRings:type_name -> ModSnsGeneralInfo + 20, // 18: ForwardBody.modConfProfile:type_name -> ModConfProfile + 44, // 19: ForwardBody.modFriendFlag:type_name -> SnsUpdateFlag + 1, // 20: ForwardBody.appointmentNotify:type_name -> AppointmentNotify + 5, // 21: ForwardBody.darenNotify:type_name -> DaRenNotify + 34, // 22: ForwardBody.newComeinUserNotify:type_name -> NewComeinUserNotify + 41, // 23: ForwardBody.pushSearchDev:type_name -> PushSearchDev + 40, // 24: ForwardBody.pushReportDev:type_name -> PushReportDev + 42, // 25: ForwardBody.qqPayPush:type_name -> QQPayPush + 18, // 26: ForwardBody.hotFriendNotify:type_name -> HotFriendNotify + 38, // 27: ForwardBody.praiseRankNotify:type_name -> PraiseRankNotify + 19, // 28: ForwardBody.campusNotify:type_name -> MQQCampusNotify + 29, // 29: ForwardBody.modRichLongNickEx:type_name -> ModLongNick + 3, // 30: ForwardBody.chatMatchInfo:type_name -> ChatMatchInfo + 10, // 31: ForwardBody.frdCustomOnlineStatusChange:type_name -> FrdCustomOnlineStatusChange + 8, // 32: ForwardBody.fanpanziNotify:type_name -> FanpaiziNotify + 39, // 33: ModConfProfile.profileInfos:type_name -> ProfileInfo + 37, // 34: ModFrdRoamPriv.roamPriv:type_name -> OneRoamPriv + 11, // 35: ModFriendGroup.frdGroup:type_name -> FriendGroup + 12, // 36: ModFriendRemark.frdRmk:type_name -> FriendRemark + 14, // 37: ModGroupMemberProfile.groupMemberProfileInfos:type_name -> GroupMemberProfileInfo + 15, // 38: ModGroupProfile.groupProfileInfos:type_name -> GroupProfileInfo + 16, // 39: ModGroupSort.groupsort:type_name -> GroupSort + 39, // 40: ModProfile.profileInfos:type_name -> ProfileInfo + 43, // 41: ModSnsGeneralInfo.snsGeneralInfos:type_name -> SnsUpateBuffer + 9, // 42: SubMsg0x27Body.modInfos:type_name -> ForwardBody + 33, // 43: NewComeinUserNotify.newComeinUser:type_name -> NewComeinUser + 35, // 44: NewComeinUserNotify.newGroup:type_name -> NewGroup + 36, // 45: NewComeinUserNotify.newGroupUser:type_name -> NewGroupUser + 13, // 46: PushSearchDev.gpsInfo:type_name -> GPS + 45, // 47: SnsUpateBuffer.snsUpdateItem:type_name -> SnsUpdateItem + 46, // 48: SnsUpdateFlag.updateSnsFlag:type_name -> SnsUpdateOneFlag + 49, // [49:49] is the sub-list for method output_type + 49, // [49:49] is the sub-list for method input_type + 49, // [49:49] is the sub-list for extension type_name + 49, // [49:49] is the sub-list for extension extendee + 0, // [0:49] is the sub-list for field type_name +} + +func init() { file_subMsgType0x27_proto_init() } +func file_subMsgType0x27_proto_init() { + if File_subMsgType0x27_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_subMsgType0x27_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppointmentNotify); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BinaryMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChatMatchInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfMsgRoamFlag); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DaRenNotify); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelFriend); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FanpaiziNotify); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ForwardBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FrdCustomOnlineStatusChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendRemark); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GPS); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupMemberProfileInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupProfileInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupSort); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GrpMsgRoamFlag); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HotFriendNotify); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MQQCampusNotify); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModConfProfile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModCustomFace); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModFrdRoamPriv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModFriendGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModFriendRemark); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModGroupMemberProfile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModGroupName); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModGroupProfile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModGroupSort); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModLongNick); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModProfile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModSnsGeneralInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubMsg0X27Body); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NewComeinUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NewComeinUserNotify); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NewGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NewGroupUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OneRoamPriv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PraiseRankNotify); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProfileInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PushReportDev); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PushSearchDev); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QQPayPush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SnsUpateBuffer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SnsUpdateFlag); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SnsUpdateItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_subMsgType0x27_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SnsUpdateOneFlag); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_subMsgType0x27_proto_rawDesc, + NumEnums: 0, + NumMessages: 47, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_subMsgType0x27_proto_goTypes, + DependencyIndexes: file_subMsgType0x27_proto_depIdxs, + MessageInfos: file_subMsgType0x27_proto_msgTypes, + }.Build() + File_subMsgType0x27_proto = out.File + file_subMsgType0x27_proto_rawDesc = nil + file_subMsgType0x27_proto_goTypes = nil + file_subMsgType0x27_proto_depIdxs = nil +} diff --git a/client/pb/msgtype0x210/subMsgType0x27.proto b/client/pb/msgtype0x210/subMsgType0x27.proto new file mode 100644 index 00000000..40543f51 --- /dev/null +++ b/client/pb/msgtype0x210/subMsgType0x27.proto @@ -0,0 +1,341 @@ +syntax = "proto2"; + +option go_package = ".;msgtype0x210"; + +message AddGroup { + optional uint32 groupid = 1; + optional uint32 sortid = 2; + optional bytes groupname = 3; +} + +message AppointmentNotify { + optional uint64 fromUin = 1; + optional string appointId = 2; + optional uint32 notifytype = 3; + optional string tipsContent = 4; + optional uint32 unreadCount = 5; + optional string joinWording = 6; + optional string viewWording = 7; + optional bytes sig = 8; + optional bytes eventInfo = 9; + optional bytes nearbyEventInfo = 10; + optional bytes feedEventInfo = 11; +} + +message BinaryMsg { + optional uint32 opType = 1; + optional bytes opValue = 2; +} + +message ChatMatchInfo { + optional bytes sig = 1; + optional uint64 uin = 2; + optional uint64 matchUin = 3; + optional bytes tipsWording = 4; + optional uint32 leftChatTime = 5; + optional uint64 timeStamp = 6; + optional uint32 matchExpiredTime = 7; + optional uint32 c2CExpiredTime = 8; + optional uint32 matchCount = 9; + optional bytes nick = 10; +} + +message ConfMsgRoamFlag { + optional uint64 confid = 1; + optional uint32 flag = 2; + optional uint64 timestamp = 3; +} + +message DaRenNotify { + optional uint64 uin = 1; + optional uint32 loginDays = 2; + optional uint32 days = 3; + optional uint32 isYestodayLogin = 4; + optional uint32 isTodayLogin = 5; +} + +message DelFriend { + repeated uint64 uins = 1; +} + +message DelGroup { + optional uint32 groupid = 1; +} + +message FanpaiziNotify { + optional uint64 fromUin = 1; + optional string fromNick = 2; + optional bytes tipsContent = 3; + optional bytes sig = 4; +} + +message ForwardBody { + optional uint32 notifyType = 1; + optional uint32 opType = 2; + optional AddGroup addGroup = 3; + optional DelGroup delGroup = 4; + optional ModGroupName modGroupName = 5; + optional ModGroupSort modGroupSort = 6; + optional ModFriendGroup modFriendGroup = 7; + optional ModProfile modProfile = 8; + optional ModFriendRemark modFriendRemark = 9; + optional ModLongNick modLongNick = 10; + optional ModCustomFace modCustomFace = 11; + optional ModGroupProfile modGroupProfile = 12; + optional ModGroupMemberProfile modGroupMemberProfile = 13; + optional DelFriend delFriend = 14; + optional ModFrdRoamPriv roamPriv = 15; + optional GrpMsgRoamFlag grpMsgRoamFlag = 16; + optional ConfMsgRoamFlag confMsgRoamFlag = 17; + optional ModLongNick modRichLongNick = 18; + optional BinaryMsg binPkg = 19; + optional ModSnsGeneralInfo modFriendRings = 20; + optional ModConfProfile modConfProfile = 21; + optional SnsUpdateFlag modFriendFlag = 22; + optional AppointmentNotify appointmentNotify = 23; + optional DaRenNotify darenNotify = 25; + optional NewComeinUserNotify newComeinUserNotify = 26; + optional PushSearchDev pushSearchDev = 200; + optional PushReportDev pushReportDev = 201; + optional QQPayPush qqPayPush = 202; + optional bytes redpointInfo = 203; + optional HotFriendNotify hotFriendNotify = 204; + optional PraiseRankNotify praiseRankNotify = 205; + optional MQQCampusNotify campusNotify = 210; + optional ModLongNick modRichLongNickEx = 211; + optional ChatMatchInfo chatMatchInfo = 212; + optional FrdCustomOnlineStatusChange frdCustomOnlineStatusChange = 214; + optional FanpaiziNotify fanpanziNotify = 2000; +} + +message FrdCustomOnlineStatusChange { + optional uint64 uin = 1; +} + +message FriendGroup { + optional uint64 fuin = 1; + repeated uint32 oldGroupId = 2; + repeated uint32 newGroupId = 3; +} + +message FriendRemark { + optional uint32 type = 1; + optional uint64 fuin = 2; + optional bytes rmkName = 3; + optional uint64 groupCode = 4; +} + +message GPS { + optional int32 lat = 1; + optional int32 lon = 2; + optional int32 alt = 3; + optional int32 type = 4; +} + +message GroupMemberProfileInfo { + optional uint32 field = 1; + optional bytes value = 2; +} + +message GroupProfileInfo { + optional uint32 field = 1; + optional bytes value = 2; +} + +message GroupSort { + optional uint32 groupid = 1; + optional uint32 sortid = 2; +} + +message GrpMsgRoamFlag { + optional uint64 groupcode = 1; + optional uint32 flag = 2; + optional uint64 timestamp = 3; +} + +message HotFriendNotify { + optional uint64 dstUin = 1; + optional uint32 praiseHotLevel = 2; + optional uint32 chatHotLevel = 3; + optional uint32 praiseHotDays = 4; + optional uint32 chatHotDays = 5; + optional uint32 closeLevel = 6; + optional uint32 closeDays = 7; + optional uint32 praiseFlag = 8; + optional uint32 chatFlag = 9; + optional uint32 closeFlag = 10; + optional uint64 notifyTime = 11; + optional uint64 lastPraiseTime = 12; + optional uint64 lastChatTime = 13; + optional uint32 qzoneHotLevel = 14; + optional uint32 qzoneHotDays = 15; + optional uint32 qzoneFlag = 16; + optional uint64 lastQzoneTime = 17; +} + +message MQQCampusNotify { + optional uint64 fromUin = 1; + optional string wording = 2; + optional string target = 3; + optional uint32 type = 4; + optional string source = 5; +} + +message ModConfProfile { + optional uint64 uin = 1; + optional uint32 confUin = 2; + repeated ProfileInfo profileInfos = 3; +} + +message ModCustomFace { + optional uint32 type = 1; + optional uint64 uin = 2; + optional uint64 groupCode = 3; + optional uint64 cmdUin = 4; +} + +message ModFrdRoamPriv { + repeated OneRoamPriv roamPriv = 1; +} + +message ModFriendGroup { + repeated FriendGroup frdGroup = 1; +} + +message ModFriendRemark { + repeated FriendRemark frdRmk = 1; +} + +message ModGroupMemberProfile { + optional uint64 groupUin = 1; + optional uint64 uin = 2; + repeated GroupMemberProfileInfo groupMemberProfileInfos = 3; + optional uint64 groupCode = 4; +} + +message ModGroupName { + optional uint32 groupid = 1; + optional bytes groupname = 2; +} + +message ModGroupProfile { + optional uint64 groupUin = 1; + repeated GroupProfileInfo groupProfileInfos = 2; + optional uint64 groupCode = 3; + optional uint64 cmdUin = 4; +} + +message ModGroupSort { + repeated GroupSort groupsort = 1; +} + +message ModLongNick { + optional uint64 uin = 1; + optional bytes value = 2; +} + +message ModProfile { + optional uint64 uin = 1; + repeated ProfileInfo profileInfos = 2; +} + +message ModSnsGeneralInfo { + repeated SnsUpateBuffer snsGeneralInfos = 1; +} + +message SubMsg0x27Body { + repeated ForwardBody modInfos = 1; +} + +message NewComeinUser { + optional uint64 uin = 1; + optional uint32 isFrd = 2; + optional bytes remark = 3; + optional bytes nick = 4; +} + +message NewComeinUserNotify { + optional uint32 msgType = 1; + optional bool ongNotify = 2; + optional uint32 pushTime = 3; + optional NewComeinUser newComeinUser = 4; + optional NewGroup newGroup = 5; + optional NewGroupUser newGroupUser = 6; +} + +message NewGroup { + optional uint64 groupCode = 1; + optional bytes groupName = 2; + optional uint64 ownerUin = 3; + optional bytes ownerNick = 4; + optional bytes distance = 5; +} + +message NewGroupUser { + optional uint64 uin = 1; + optional int32 sex = 2; + optional int32 age = 3; + optional string nick = 4; + optional bytes distance = 5; +} + +message OneRoamPriv { + optional uint64 fuin = 1; + optional uint32 privTag = 2; + optional uint32 privValue = 3; +} + +message PraiseRankNotify { + optional uint32 isChampion = 11; + optional uint32 rankNum = 12; + optional string msg = 13; +} + +message ProfileInfo { + optional uint32 field = 1; + optional bytes value = 2; +} + +message PushReportDev { + optional uint32 msgType = 1; + optional bytes cookie = 4; + optional uint32 reportMaxNum = 5; + optional bytes sn = 6; +} + +message PushSearchDev { + optional uint32 msgType = 1; + optional GPS gpsInfo = 2; + optional uint32 devTime = 3; + optional uint32 pushTime = 4; + optional uint64 din = 5; + optional string data = 6; +} + +message QQPayPush { + optional uint64 uin = 1; + optional bool payOk = 2; +} + +message SnsUpateBuffer { + optional uint64 uin = 1; + optional uint64 code = 2; + optional uint32 result = 3; + repeated SnsUpdateItem snsUpdateItem = 400; + repeated uint32 idlist = 401; +} + +message SnsUpdateFlag { + repeated SnsUpdateOneFlag updateSnsFlag = 1; +} + +message SnsUpdateItem { + optional uint32 updateSnsType = 1; + optional bytes value = 2; +} + +message SnsUpdateOneFlag { + optional uint64 XUin = 1; + optional uint64 id = 2; + optional uint32 flag = 3; +} \ No newline at end of file