// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.25.0 // protoc v3.12.3 // source: structmsg.proto package structmsg 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 AddFrdSNInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NotSeeDynamic int32 `protobuf:"varint,1,opt,name=notSeeDynamic,proto3" json:"notSeeDynamic,omitempty"` SetSn int32 `protobuf:"varint,2,opt,name=setSn,proto3" json:"setSn,omitempty"` } func (x *AddFrdSNInfo) Reset() { *x = AddFrdSNInfo{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddFrdSNInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddFrdSNInfo) ProtoMessage() {} func (x *AddFrdSNInfo) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 AddFrdSNInfo.ProtoReflect.Descriptor instead. func (*AddFrdSNInfo) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{0} } func (x *AddFrdSNInfo) GetNotSeeDynamic() int32 { if x != nil { return x.NotSeeDynamic } return 0 } func (x *AddFrdSNInfo) GetSetSn() int32 { if x != nil { return x.SetSn } return 0 } type FlagInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GrpMsgKickAdmin int32 `protobuf:"varint,1,opt,name=grpMsgKickAdmin,proto3" json:"grpMsgKickAdmin,omitempty"` GrpMsgHiddenGrp int32 `protobuf:"varint,2,opt,name=grpMsgHiddenGrp,proto3" json:"grpMsgHiddenGrp,omitempty"` GrpMsgWordingDown int32 `protobuf:"varint,3,opt,name=grpMsgWordingDown,proto3" json:"grpMsgWordingDown,omitempty"` FrdMsgGetBusiCard int32 `protobuf:"varint,4,opt,name=frdMsgGetBusiCard,proto3" json:"frdMsgGetBusiCard,omitempty"` GrpMsgGetOfficialAccount int32 `protobuf:"varint,5,opt,name=grpMsgGetOfficialAccount,proto3" json:"grpMsgGetOfficialAccount,omitempty"` GrpMsgGetPayInGroup int32 `protobuf:"varint,6,opt,name=grpMsgGetPayInGroup,proto3" json:"grpMsgGetPayInGroup,omitempty"` FrdMsgDiscuss2ManyChat int32 `protobuf:"varint,7,opt,name=frdMsgDiscuss2ManyChat,proto3" json:"frdMsgDiscuss2ManyChat,omitempty"` GrpMsgNotAllowJoinGrpInviteNotFrd int32 `protobuf:"varint,8,opt,name=grpMsgNotAllowJoinGrpInviteNotFrd,proto3" json:"grpMsgNotAllowJoinGrpInviteNotFrd,omitempty"` FrdMsgNeedWaitingMsg int32 `protobuf:"varint,9,opt,name=frdMsgNeedWaitingMsg,proto3" json:"frdMsgNeedWaitingMsg,omitempty"` FrdMsgUint32NeedAllUnreadMsg int32 `protobuf:"varint,10,opt,name=frdMsgUint32NeedAllUnreadMsg,proto3" json:"frdMsgUint32NeedAllUnreadMsg,omitempty"` GrpMsgNeedAutoAdminWording int32 `protobuf:"varint,11,opt,name=grpMsgNeedAutoAdminWording,proto3" json:"grpMsgNeedAutoAdminWording,omitempty"` GrpMsgGetTransferGroupMsgFlag int32 `protobuf:"varint,12,opt,name=grpMsgGetTransferGroupMsgFlag,proto3" json:"grpMsgGetTransferGroupMsgFlag,omitempty"` GrpMsgGetQuitPayGroupMsgFlag int32 `protobuf:"varint,13,opt,name=grpMsgGetQuitPayGroupMsgFlag,proto3" json:"grpMsgGetQuitPayGroupMsgFlag,omitempty"` GrpMsgSupportInviteAutoJoin int32 `protobuf:"varint,14,opt,name=grpMsgSupportInviteAutoJoin,proto3" json:"grpMsgSupportInviteAutoJoin,omitempty"` GrpMsgMaskInviteAutoJoin int32 `protobuf:"varint,15,opt,name=grpMsgMaskInviteAutoJoin,proto3" json:"grpMsgMaskInviteAutoJoin,omitempty"` GrpMsgGetDisbandedByAdmin int32 `protobuf:"varint,16,opt,name=grpMsgGetDisbandedByAdmin,proto3" json:"grpMsgGetDisbandedByAdmin,omitempty"` GrpMsgGetC2CInviteJoinGroup int32 `protobuf:"varint,17,opt,name=grpMsgGetC2cInviteJoinGroup,proto3" json:"grpMsgGetC2cInviteJoinGroup,omitempty"` } func (x *FlagInfo) Reset() { *x = FlagInfo{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FlagInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*FlagInfo) ProtoMessage() {} func (x *FlagInfo) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 FlagInfo.ProtoReflect.Descriptor instead. func (*FlagInfo) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{1} } func (x *FlagInfo) GetGrpMsgKickAdmin() int32 { if x != nil { return x.GrpMsgKickAdmin } return 0 } func (x *FlagInfo) GetGrpMsgHiddenGrp() int32 { if x != nil { return x.GrpMsgHiddenGrp } return 0 } func (x *FlagInfo) GetGrpMsgWordingDown() int32 { if x != nil { return x.GrpMsgWordingDown } return 0 } func (x *FlagInfo) GetFrdMsgGetBusiCard() int32 { if x != nil { return x.FrdMsgGetBusiCard } return 0 } func (x *FlagInfo) GetGrpMsgGetOfficialAccount() int32 { if x != nil { return x.GrpMsgGetOfficialAccount } return 0 } func (x *FlagInfo) GetGrpMsgGetPayInGroup() int32 { if x != nil { return x.GrpMsgGetPayInGroup } return 0 } func (x *FlagInfo) GetFrdMsgDiscuss2ManyChat() int32 { if x != nil { return x.FrdMsgDiscuss2ManyChat } return 0 } func (x *FlagInfo) GetGrpMsgNotAllowJoinGrpInviteNotFrd() int32 { if x != nil { return x.GrpMsgNotAllowJoinGrpInviteNotFrd } return 0 } func (x *FlagInfo) GetFrdMsgNeedWaitingMsg() int32 { if x != nil { return x.FrdMsgNeedWaitingMsg } return 0 } func (x *FlagInfo) GetFrdMsgUint32NeedAllUnreadMsg() int32 { if x != nil { return x.FrdMsgUint32NeedAllUnreadMsg } return 0 } func (x *FlagInfo) GetGrpMsgNeedAutoAdminWording() int32 { if x != nil { return x.GrpMsgNeedAutoAdminWording } return 0 } func (x *FlagInfo) GetGrpMsgGetTransferGroupMsgFlag() int32 { if x != nil { return x.GrpMsgGetTransferGroupMsgFlag } return 0 } func (x *FlagInfo) GetGrpMsgGetQuitPayGroupMsgFlag() int32 { if x != nil { return x.GrpMsgGetQuitPayGroupMsgFlag } return 0 } func (x *FlagInfo) GetGrpMsgSupportInviteAutoJoin() int32 { if x != nil { return x.GrpMsgSupportInviteAutoJoin } return 0 } func (x *FlagInfo) GetGrpMsgMaskInviteAutoJoin() int32 { if x != nil { return x.GrpMsgMaskInviteAutoJoin } return 0 } func (x *FlagInfo) GetGrpMsgGetDisbandedByAdmin() int32 { if x != nil { return x.GrpMsgGetDisbandedByAdmin } return 0 } func (x *FlagInfo) GetGrpMsgGetC2CInviteJoinGroup() int32 { if x != nil { return x.GrpMsgGetC2CInviteJoinGroup } return 0 } type FriendInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgJointFriend string `protobuf:"bytes,1,opt,name=msgJointFriend,proto3" json:"msgJointFriend,omitempty"` MsgBlacklist string `protobuf:"bytes,2,opt,name=msgBlacklist,proto3" json:"msgBlacklist,omitempty"` } func (x *FriendInfo) Reset() { *x = FriendInfo{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FriendInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*FriendInfo) ProtoMessage() {} func (x *FriendInfo) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 FriendInfo.ProtoReflect.Descriptor instead. func (*FriendInfo) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{2} } func (x *FriendInfo) GetMsgJointFriend() string { if x != nil { return x.MsgJointFriend } return "" } func (x *FriendInfo) GetMsgBlacklist() string { if x != nil { return x.MsgBlacklist } return "" } type SGroupInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GroupAuthType int32 `protobuf:"varint,1,opt,name=groupAuthType,proto3" json:"groupAuthType,omitempty"` DisplayAction int32 `protobuf:"varint,2,opt,name=displayAction,proto3" json:"displayAction,omitempty"` MsgAlert string `protobuf:"bytes,3,opt,name=msgAlert,proto3" json:"msgAlert,omitempty"` MsgDetailAlert string `protobuf:"bytes,4,opt,name=msgDetailAlert,proto3" json:"msgDetailAlert,omitempty"` MsgOtherAdminDone string `protobuf:"bytes,5,opt,name=msgOtherAdminDone,proto3" json:"msgOtherAdminDone,omitempty"` AppPrivilegeFlag int32 `protobuf:"varint,6,opt,name=appPrivilegeFlag,proto3" json:"appPrivilegeFlag,omitempty"` } func (x *SGroupInfo) Reset() { *x = SGroupInfo{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SGroupInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SGroupInfo) ProtoMessage() {} func (x *SGroupInfo) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 SGroupInfo.ProtoReflect.Descriptor instead. func (*SGroupInfo) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{3} } func (x *SGroupInfo) GetGroupAuthType() int32 { if x != nil { return x.GroupAuthType } return 0 } func (x *SGroupInfo) GetDisplayAction() int32 { if x != nil { return x.DisplayAction } return 0 } func (x *SGroupInfo) GetMsgAlert() string { if x != nil { return x.MsgAlert } return "" } func (x *SGroupInfo) GetMsgDetailAlert() string { if x != nil { return x.MsgDetailAlert } return "" } func (x *SGroupInfo) GetMsgOtherAdminDone() string { if x != nil { return x.MsgOtherAdminDone } return "" } func (x *SGroupInfo) GetAppPrivilegeFlag() int32 { if x != nil { return x.AppPrivilegeFlag } return 0 } type MsgInviteExt struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SrcType int32 `protobuf:"varint,1,opt,name=srcType,proto3" json:"srcType,omitempty"` SrcCode int64 `protobuf:"varint,2,opt,name=srcCode,proto3" json:"srcCode,omitempty"` WaitState int32 `protobuf:"varint,3,opt,name=waitState,proto3" json:"waitState,omitempty"` } func (x *MsgInviteExt) Reset() { *x = MsgInviteExt{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MsgInviteExt) String() string { return protoimpl.X.MessageStringOf(x) } func (*MsgInviteExt) ProtoMessage() {} func (x *MsgInviteExt) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 MsgInviteExt.ProtoReflect.Descriptor instead. func (*MsgInviteExt) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{4} } func (x *MsgInviteExt) GetSrcType() int32 { if x != nil { return x.SrcType } return 0 } func (x *MsgInviteExt) GetSrcCode() int64 { if x != nil { return x.SrcCode } return 0 } func (x *MsgInviteExt) GetWaitState() int32 { if x != nil { return x.WaitState } return 0 } type MsgPayGroupExt struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields JoinGrpTime int64 `protobuf:"varint,1,opt,name=joinGrpTime,proto3" json:"joinGrpTime,omitempty"` QuitGrpTime int64 `protobuf:"varint,2,opt,name=quitGrpTime,proto3" json:"quitGrpTime,omitempty"` } func (x *MsgPayGroupExt) Reset() { *x = MsgPayGroupExt{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MsgPayGroupExt) String() string { return protoimpl.X.MessageStringOf(x) } func (*MsgPayGroupExt) ProtoMessage() {} func (x *MsgPayGroupExt) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 MsgPayGroupExt.ProtoReflect.Descriptor instead. func (*MsgPayGroupExt) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{5} } func (x *MsgPayGroupExt) GetJoinGrpTime() int64 { if x != nil { return x.JoinGrpTime } return 0 } func (x *MsgPayGroupExt) GetQuitGrpTime() int64 { if x != nil { return x.QuitGrpTime } return 0 } type ReqNextSystemMsg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgNum int32 `protobuf:"varint,1,opt,name=msgNum,proto3" json:"msgNum,omitempty"` FollowingFriendSeq int64 `protobuf:"varint,2,opt,name=followingFriendSeq,proto3" json:"followingFriendSeq,omitempty"` FollowingGroupSeq int64 `protobuf:"varint,3,opt,name=followingGroupSeq,proto3" json:"followingGroupSeq,omitempty"` Checktype int32 `protobuf:"varint,4,opt,name=checktype,proto3" json:"checktype,omitempty"` Flag *FlagInfo `protobuf:"bytes,5,opt,name=flag,proto3" json:"flag,omitempty"` Language int32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` Version int32 `protobuf:"varint,7,opt,name=version,proto3" json:"version,omitempty"` FriendMsgTypeFlag int64 `protobuf:"varint,8,opt,name=friendMsgTypeFlag,proto3" json:"friendMsgTypeFlag,omitempty"` } func (x *ReqNextSystemMsg) Reset() { *x = ReqNextSystemMsg{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReqNextSystemMsg) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqNextSystemMsg) ProtoMessage() {} func (x *ReqNextSystemMsg) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 ReqNextSystemMsg.ProtoReflect.Descriptor instead. func (*ReqNextSystemMsg) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{6} } func (x *ReqNextSystemMsg) GetMsgNum() int32 { if x != nil { return x.MsgNum } return 0 } func (x *ReqNextSystemMsg) GetFollowingFriendSeq() int64 { if x != nil { return x.FollowingFriendSeq } return 0 } func (x *ReqNextSystemMsg) GetFollowingGroupSeq() int64 { if x != nil { return x.FollowingGroupSeq } return 0 } func (x *ReqNextSystemMsg) GetChecktype() int32 { if x != nil { return x.Checktype } return 0 } func (x *ReqNextSystemMsg) GetFlag() *FlagInfo { if x != nil { return x.Flag } return nil } func (x *ReqNextSystemMsg) GetLanguage() int32 { if x != nil { return x.Language } return 0 } func (x *ReqNextSystemMsg) GetVersion() int32 { if x != nil { return x.Version } return 0 } func (x *ReqNextSystemMsg) GetFriendMsgTypeFlag() int64 { if x != nil { return x.FriendMsgTypeFlag } return 0 } type ReqSystemMsg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgNum int32 `protobuf:"varint,1,opt,name=msgNum,proto3" json:"msgNum,omitempty"` LatestFriendSeq int64 `protobuf:"varint,2,opt,name=latestFriendSeq,proto3" json:"latestFriendSeq,omitempty"` LatestGroupSeq int64 `protobuf:"varint,3,opt,name=latestGroupSeq,proto3" json:"latestGroupSeq,omitempty"` Version int32 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` Language int32 `protobuf:"varint,5,opt,name=language,proto3" json:"language,omitempty"` } func (x *ReqSystemMsg) Reset() { *x = ReqSystemMsg{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReqSystemMsg) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSystemMsg) ProtoMessage() {} func (x *ReqSystemMsg) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 ReqSystemMsg.ProtoReflect.Descriptor instead. func (*ReqSystemMsg) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{7} } func (x *ReqSystemMsg) GetMsgNum() int32 { if x != nil { return x.MsgNum } return 0 } func (x *ReqSystemMsg) GetLatestFriendSeq() int64 { if x != nil { return x.LatestFriendSeq } return 0 } func (x *ReqSystemMsg) GetLatestGroupSeq() int64 { if x != nil { return x.LatestGroupSeq } return 0 } func (x *ReqSystemMsg) GetVersion() int32 { if x != nil { return x.Version } return 0 } func (x *ReqSystemMsg) GetLanguage() int32 { if x != nil { return x.Language } return 0 } type ReqSystemMsgAction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgType int32 `protobuf:"varint,1,opt,name=msgType,proto3" json:"msgType,omitempty"` MsgSeq int64 `protobuf:"varint,2,opt,name=msgSeq,proto3" json:"msgSeq,omitempty"` ReqUin int64 `protobuf:"varint,3,opt,name=reqUin,proto3" json:"reqUin,omitempty"` SubType int32 `protobuf:"varint,4,opt,name=subType,proto3" json:"subType,omitempty"` SrcId int32 `protobuf:"varint,5,opt,name=srcId,proto3" json:"srcId,omitempty"` SubSrcId int32 `protobuf:"varint,6,opt,name=subSrcId,proto3" json:"subSrcId,omitempty"` GroupMsgType int32 `protobuf:"varint,7,opt,name=groupMsgType,proto3" json:"groupMsgType,omitempty"` ActionInfo *SystemMsgActionInfo `protobuf:"bytes,8,opt,name=actionInfo,proto3" json:"actionInfo,omitempty"` Language int32 `protobuf:"varint,9,opt,name=language,proto3" json:"language,omitempty"` } func (x *ReqSystemMsgAction) Reset() { *x = ReqSystemMsgAction{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReqSystemMsgAction) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSystemMsgAction) ProtoMessage() {} func (x *ReqSystemMsgAction) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 ReqSystemMsgAction.ProtoReflect.Descriptor instead. func (*ReqSystemMsgAction) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{8} } func (x *ReqSystemMsgAction) GetMsgType() int32 { if x != nil { return x.MsgType } return 0 } func (x *ReqSystemMsgAction) GetMsgSeq() int64 { if x != nil { return x.MsgSeq } return 0 } func (x *ReqSystemMsgAction) GetReqUin() int64 { if x != nil { return x.ReqUin } return 0 } func (x *ReqSystemMsgAction) GetSubType() int32 { if x != nil { return x.SubType } return 0 } func (x *ReqSystemMsgAction) GetSrcId() int32 { if x != nil { return x.SrcId } return 0 } func (x *ReqSystemMsgAction) GetSubSrcId() int32 { if x != nil { return x.SubSrcId } return 0 } func (x *ReqSystemMsgAction) GetGroupMsgType() int32 { if x != nil { return x.GroupMsgType } return 0 } func (x *ReqSystemMsgAction) GetActionInfo() *SystemMsgActionInfo { if x != nil { return x.ActionInfo } return nil } func (x *ReqSystemMsgAction) GetLanguage() int32 { if x != nil { return x.Language } return 0 } type ReqSystemMsgNew struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgNum int32 `protobuf:"varint,1,opt,name=msgNum,proto3" json:"msgNum,omitempty"` LatestFriendSeq int64 `protobuf:"varint,2,opt,name=latestFriendSeq,proto3" json:"latestFriendSeq,omitempty"` LatestGroupSeq int64 `protobuf:"varint,3,opt,name=latestGroupSeq,proto3" json:"latestGroupSeq,omitempty"` Version int32 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` Checktype int32 `protobuf:"varint,5,opt,name=checktype,proto3" json:"checktype,omitempty"` Flag *FlagInfo `protobuf:"bytes,6,opt,name=flag,proto3" json:"flag,omitempty"` Language int32 `protobuf:"varint,7,opt,name=language,proto3" json:"language,omitempty"` IsGetFrdRibbon bool `protobuf:"varint,8,opt,name=isGetFrdRibbon,proto3" json:"isGetFrdRibbon,omitempty"` IsGetGrpRibbon bool `protobuf:"varint,9,opt,name=isGetGrpRibbon,proto3" json:"isGetGrpRibbon,omitempty"` FriendMsgTypeFlag int64 `protobuf:"varint,10,opt,name=friendMsgTypeFlag,proto3" json:"friendMsgTypeFlag,omitempty"` } func (x *ReqSystemMsgNew) Reset() { *x = ReqSystemMsgNew{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReqSystemMsgNew) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSystemMsgNew) ProtoMessage() {} func (x *ReqSystemMsgNew) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 ReqSystemMsgNew.ProtoReflect.Descriptor instead. func (*ReqSystemMsgNew) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{9} } func (x *ReqSystemMsgNew) GetMsgNum() int32 { if x != nil { return x.MsgNum } return 0 } func (x *ReqSystemMsgNew) GetLatestFriendSeq() int64 { if x != nil { return x.LatestFriendSeq } return 0 } func (x *ReqSystemMsgNew) GetLatestGroupSeq() int64 { if x != nil { return x.LatestGroupSeq } return 0 } func (x *ReqSystemMsgNew) GetVersion() int32 { if x != nil { return x.Version } return 0 } func (x *ReqSystemMsgNew) GetChecktype() int32 { if x != nil { return x.Checktype } return 0 } func (x *ReqSystemMsgNew) GetFlag() *FlagInfo { if x != nil { return x.Flag } return nil } func (x *ReqSystemMsgNew) GetLanguage() int32 { if x != nil { return x.Language } return 0 } func (x *ReqSystemMsgNew) GetIsGetFrdRibbon() bool { if x != nil { return x.IsGetFrdRibbon } return false } func (x *ReqSystemMsgNew) GetIsGetGrpRibbon() bool { if x != nil { return x.IsGetGrpRibbon } return false } func (x *ReqSystemMsgNew) GetFriendMsgTypeFlag() int64 { if x != nil { return x.FriendMsgTypeFlag } return 0 } type ReqSystemMsgRead struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LatestFriendSeq int64 `protobuf:"varint,1,opt,name=latestFriendSeq,proto3" json:"latestFriendSeq,omitempty"` LatestGroupSeq int64 `protobuf:"varint,2,opt,name=latestGroupSeq,proto3" json:"latestGroupSeq,omitempty"` Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` Checktype int32 `protobuf:"varint,4,opt,name=checktype,proto3" json:"checktype,omitempty"` } func (x *ReqSystemMsgRead) Reset() { *x = ReqSystemMsgRead{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReqSystemMsgRead) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSystemMsgRead) ProtoMessage() {} func (x *ReqSystemMsgRead) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 ReqSystemMsgRead.ProtoReflect.Descriptor instead. func (*ReqSystemMsgRead) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{10} } func (x *ReqSystemMsgRead) GetLatestFriendSeq() int64 { if x != nil { return x.LatestFriendSeq } return 0 } func (x *ReqSystemMsgRead) GetLatestGroupSeq() int64 { if x != nil { return x.LatestGroupSeq } return 0 } func (x *ReqSystemMsgRead) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *ReqSystemMsgRead) GetChecktype() int32 { if x != nil { return x.Checktype } return 0 } type RspHead struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result int32 `protobuf:"varint,1,opt,name=result,proto3" json:"result,omitempty"` MsgFail string `protobuf:"bytes,2,opt,name=msgFail,proto3" json:"msgFail,omitempty"` } func (x *RspHead) Reset() { *x = RspHead{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RspHead) String() string { return protoimpl.X.MessageStringOf(x) } func (*RspHead) ProtoMessage() {} func (x *RspHead) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 RspHead.ProtoReflect.Descriptor instead. func (*RspHead) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{11} } func (x *RspHead) GetResult() int32 { if x != nil { return x.Result } return 0 } func (x *RspHead) GetMsgFail() string { if x != nil { return x.MsgFail } return "" } type RspNextSystemMsg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Head *RspHead `protobuf:"bytes,1,opt,name=head,proto3" json:"head,omitempty"` Msgs []*StructMsg `protobuf:"bytes,2,rep,name=msgs,proto3" json:"msgs,omitempty"` FollowingFriendSeq int64 `protobuf:"varint,3,opt,name=followingFriendSeq,proto3" json:"followingFriendSeq,omitempty"` FollowingGroupSeq int64 `protobuf:"varint,4,opt,name=followingGroupSeq,proto3" json:"followingGroupSeq,omitempty"` Checktype int32 `protobuf:"varint,5,opt,name=checktype,proto3" json:"checktype,omitempty"` GameNick string `protobuf:"bytes,100,opt,name=gameNick,proto3" json:"gameNick,omitempty"` UndecidForQim []byte `protobuf:"bytes,101,opt,name=undecidForQim,proto3" json:"undecidForQim,omitempty"` UnReadCount3 int32 `protobuf:"varint,102,opt,name=unReadCount3,proto3" json:"unReadCount3,omitempty"` } func (x *RspNextSystemMsg) Reset() { *x = RspNextSystemMsg{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RspNextSystemMsg) String() string { return protoimpl.X.MessageStringOf(x) } func (*RspNextSystemMsg) ProtoMessage() {} func (x *RspNextSystemMsg) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 RspNextSystemMsg.ProtoReflect.Descriptor instead. func (*RspNextSystemMsg) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{12} } func (x *RspNextSystemMsg) GetHead() *RspHead { if x != nil { return x.Head } return nil } func (x *RspNextSystemMsg) GetMsgs() []*StructMsg { if x != nil { return x.Msgs } return nil } func (x *RspNextSystemMsg) GetFollowingFriendSeq() int64 { if x != nil { return x.FollowingFriendSeq } return 0 } func (x *RspNextSystemMsg) GetFollowingGroupSeq() int64 { if x != nil { return x.FollowingGroupSeq } return 0 } func (x *RspNextSystemMsg) GetChecktype() int32 { if x != nil { return x.Checktype } return 0 } func (x *RspNextSystemMsg) GetGameNick() string { if x != nil { return x.GameNick } return "" } func (x *RspNextSystemMsg) GetUndecidForQim() []byte { if x != nil { return x.UndecidForQim } return nil } func (x *RspNextSystemMsg) GetUnReadCount3() int32 { if x != nil { return x.UnReadCount3 } return 0 } type RspSystemMsg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Head *RspHead `protobuf:"bytes,1,opt,name=head,proto3" json:"head,omitempty"` Msgs []*StructMsg `protobuf:"bytes,2,rep,name=msgs,proto3" json:"msgs,omitempty"` UnreadCount int32 `protobuf:"varint,3,opt,name=unreadCount,proto3" json:"unreadCount,omitempty"` LatestFriendSeq int64 `protobuf:"varint,4,opt,name=latestFriendSeq,proto3" json:"latestFriendSeq,omitempty"` LatestGroupSeq int64 `protobuf:"varint,5,opt,name=latestGroupSeq,proto3" json:"latestGroupSeq,omitempty"` FollowingFriendSeq int64 `protobuf:"varint,6,opt,name=followingFriendSeq,proto3" json:"followingFriendSeq,omitempty"` FollowingGroupSeq int64 `protobuf:"varint,7,opt,name=followingGroupSeq,proto3" json:"followingGroupSeq,omitempty"` MsgDisplay string `protobuf:"bytes,8,opt,name=msgDisplay,proto3" json:"msgDisplay,omitempty"` } func (x *RspSystemMsg) Reset() { *x = RspSystemMsg{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RspSystemMsg) String() string { return protoimpl.X.MessageStringOf(x) } func (*RspSystemMsg) ProtoMessage() {} func (x *RspSystemMsg) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 RspSystemMsg.ProtoReflect.Descriptor instead. func (*RspSystemMsg) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{13} } func (x *RspSystemMsg) GetHead() *RspHead { if x != nil { return x.Head } return nil } func (x *RspSystemMsg) GetMsgs() []*StructMsg { if x != nil { return x.Msgs } return nil } func (x *RspSystemMsg) GetUnreadCount() int32 { if x != nil { return x.UnreadCount } return 0 } func (x *RspSystemMsg) GetLatestFriendSeq() int64 { if x != nil { return x.LatestFriendSeq } return 0 } func (x *RspSystemMsg) GetLatestGroupSeq() int64 { if x != nil { return x.LatestGroupSeq } return 0 } func (x *RspSystemMsg) GetFollowingFriendSeq() int64 { if x != nil { return x.FollowingFriendSeq } return 0 } func (x *RspSystemMsg) GetFollowingGroupSeq() int64 { if x != nil { return x.FollowingGroupSeq } return 0 } func (x *RspSystemMsg) GetMsgDisplay() string { if x != nil { return x.MsgDisplay } return "" } type RspSystemMsgAction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Head *RspHead `protobuf:"bytes,1,opt,name=head,proto3" json:"head,omitempty"` MsgDetail string `protobuf:"bytes,2,opt,name=msgDetail,proto3" json:"msgDetail,omitempty"` Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` MsgInvalidDecided string `protobuf:"bytes,5,opt,name=msgInvalidDecided,proto3" json:"msgInvalidDecided,omitempty"` RemarkResult int32 `protobuf:"varint,6,opt,name=remarkResult,proto3" json:"remarkResult,omitempty"` } func (x *RspSystemMsgAction) Reset() { *x = RspSystemMsgAction{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RspSystemMsgAction) String() string { return protoimpl.X.MessageStringOf(x) } func (*RspSystemMsgAction) ProtoMessage() {} func (x *RspSystemMsgAction) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 RspSystemMsgAction.ProtoReflect.Descriptor instead. func (*RspSystemMsgAction) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{14} } func (x *RspSystemMsgAction) GetHead() *RspHead { if x != nil { return x.Head } return nil } func (x *RspSystemMsgAction) GetMsgDetail() string { if x != nil { return x.MsgDetail } return "" } func (x *RspSystemMsgAction) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *RspSystemMsgAction) GetMsgInvalidDecided() string { if x != nil { return x.MsgInvalidDecided } return "" } func (x *RspSystemMsgAction) GetRemarkResult() int32 { if x != nil { return x.RemarkResult } return 0 } type RspSystemMsgNew struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Head *RspHead `protobuf:"bytes,1,opt,name=head,proto3" json:"head,omitempty"` UnreadFriendCount int32 `protobuf:"varint,2,opt,name=unreadFriendCount,proto3" json:"unreadFriendCount,omitempty"` UnreadGroupCount int32 `protobuf:"varint,3,opt,name=unreadGroupCount,proto3" json:"unreadGroupCount,omitempty"` LatestFriendSeq int64 `protobuf:"varint,4,opt,name=latestFriendSeq,proto3" json:"latestFriendSeq,omitempty"` LatestGroupSeq int64 `protobuf:"varint,5,opt,name=latestGroupSeq,proto3" json:"latestGroupSeq,omitempty"` FollowingFriendSeq int64 `protobuf:"varint,6,opt,name=followingFriendSeq,proto3" json:"followingFriendSeq,omitempty"` FollowingGroupSeq int64 `protobuf:"varint,7,opt,name=followingGroupSeq,proto3" json:"followingGroupSeq,omitempty"` Friendmsgs []*StructMsg `protobuf:"bytes,9,rep,name=friendmsgs,proto3" json:"friendmsgs,omitempty"` Groupmsgs []*StructMsg `protobuf:"bytes,10,rep,name=groupmsgs,proto3" json:"groupmsgs,omitempty"` MsgRibbonFriend *StructMsg `protobuf:"bytes,11,opt,name=msgRibbonFriend,proto3" json:"msgRibbonFriend,omitempty"` MsgRibbonGroup *StructMsg `protobuf:"bytes,12,opt,name=msgRibbonGroup,proto3" json:"msgRibbonGroup,omitempty"` MsgDisplay string `protobuf:"bytes,13,opt,name=msgDisplay,proto3" json:"msgDisplay,omitempty"` GrpMsgDisplay string `protobuf:"bytes,14,opt,name=grpMsgDisplay,proto3" json:"grpMsgDisplay,omitempty"` Over int32 `protobuf:"varint,15,opt,name=over,proto3" json:"over,omitempty"` Checktype int32 `protobuf:"varint,20,opt,name=checktype,proto3" json:"checktype,omitempty"` GameNick string `protobuf:"bytes,100,opt,name=gameNick,proto3" json:"gameNick,omitempty"` UndecidForQim []byte `protobuf:"bytes,101,opt,name=undecidForQim,proto3" json:"undecidForQim,omitempty"` UnReadCount3 int32 `protobuf:"varint,102,opt,name=unReadCount3,proto3" json:"unReadCount3,omitempty"` } func (x *RspSystemMsgNew) Reset() { *x = RspSystemMsgNew{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RspSystemMsgNew) String() string { return protoimpl.X.MessageStringOf(x) } func (*RspSystemMsgNew) ProtoMessage() {} func (x *RspSystemMsgNew) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 RspSystemMsgNew.ProtoReflect.Descriptor instead. func (*RspSystemMsgNew) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{15} } func (x *RspSystemMsgNew) GetHead() *RspHead { if x != nil { return x.Head } return nil } func (x *RspSystemMsgNew) GetUnreadFriendCount() int32 { if x != nil { return x.UnreadFriendCount } return 0 } func (x *RspSystemMsgNew) GetUnreadGroupCount() int32 { if x != nil { return x.UnreadGroupCount } return 0 } func (x *RspSystemMsgNew) GetLatestFriendSeq() int64 { if x != nil { return x.LatestFriendSeq } return 0 } func (x *RspSystemMsgNew) GetLatestGroupSeq() int64 { if x != nil { return x.LatestGroupSeq } return 0 } func (x *RspSystemMsgNew) GetFollowingFriendSeq() int64 { if x != nil { return x.FollowingFriendSeq } return 0 } func (x *RspSystemMsgNew) GetFollowingGroupSeq() int64 { if x != nil { return x.FollowingGroupSeq } return 0 } func (x *RspSystemMsgNew) GetFriendmsgs() []*StructMsg { if x != nil { return x.Friendmsgs } return nil } func (x *RspSystemMsgNew) GetGroupmsgs() []*StructMsg { if x != nil { return x.Groupmsgs } return nil } func (x *RspSystemMsgNew) GetMsgRibbonFriend() *StructMsg { if x != nil { return x.MsgRibbonFriend } return nil } func (x *RspSystemMsgNew) GetMsgRibbonGroup() *StructMsg { if x != nil { return x.MsgRibbonGroup } return nil } func (x *RspSystemMsgNew) GetMsgDisplay() string { if x != nil { return x.MsgDisplay } return "" } func (x *RspSystemMsgNew) GetGrpMsgDisplay() string { if x != nil { return x.GrpMsgDisplay } return "" } func (x *RspSystemMsgNew) GetOver() int32 { if x != nil { return x.Over } return 0 } func (x *RspSystemMsgNew) GetChecktype() int32 { if x != nil { return x.Checktype } return 0 } func (x *RspSystemMsgNew) GetGameNick() string { if x != nil { return x.GameNick } return "" } func (x *RspSystemMsgNew) GetUndecidForQim() []byte { if x != nil { return x.UndecidForQim } return nil } func (x *RspSystemMsgNew) GetUnReadCount3() int32 { if x != nil { return x.UnReadCount3 } return 0 } type RspSystemMsgRead struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Head *RspHead `protobuf:"bytes,1,opt,name=head,proto3" json:"head,omitempty"` Type int32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` Checktype int32 `protobuf:"varint,3,opt,name=checktype,proto3" json:"checktype,omitempty"` } func (x *RspSystemMsgRead) Reset() { *x = RspSystemMsgRead{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RspSystemMsgRead) String() string { return protoimpl.X.MessageStringOf(x) } func (*RspSystemMsgRead) ProtoMessage() {} func (x *RspSystemMsgRead) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 RspSystemMsgRead.ProtoReflect.Descriptor instead. func (*RspSystemMsgRead) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{16} } func (x *RspSystemMsgRead) GetHead() *RspHead { if x != nil { return x.Head } return nil } func (x *RspSystemMsgRead) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *RspSystemMsgRead) GetChecktype() int32 { if x != nil { return x.Checktype } return 0 } type StructMsg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` MsgType int32 `protobuf:"varint,2,opt,name=msgType,proto3" json:"msgType,omitempty"` MsgSeq int64 `protobuf:"varint,3,opt,name=msgSeq,proto3" json:"msgSeq,omitempty"` MsgTime int64 `protobuf:"varint,4,opt,name=msgTime,proto3" json:"msgTime,omitempty"` ReqUin int64 `protobuf:"varint,5,opt,name=reqUin,proto3" json:"reqUin,omitempty"` UnreadFlag int32 `protobuf:"varint,6,opt,name=unreadFlag,proto3" json:"unreadFlag,omitempty"` Msg *SystemMsg `protobuf:"bytes,50,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *StructMsg) Reset() { *x = StructMsg{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StructMsg) String() string { return protoimpl.X.MessageStringOf(x) } func (*StructMsg) ProtoMessage() {} func (x *StructMsg) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 StructMsg.ProtoReflect.Descriptor instead. func (*StructMsg) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{17} } func (x *StructMsg) GetVersion() int32 { if x != nil { return x.Version } return 0 } func (x *StructMsg) GetMsgType() int32 { if x != nil { return x.MsgType } return 0 } func (x *StructMsg) GetMsgSeq() int64 { if x != nil { return x.MsgSeq } return 0 } func (x *StructMsg) GetMsgTime() int64 { if x != nil { return x.MsgTime } return 0 } func (x *StructMsg) GetReqUin() int64 { if x != nil { return x.ReqUin } return 0 } func (x *StructMsg) GetUnreadFlag() int32 { if x != nil { return x.UnreadFlag } return 0 } func (x *StructMsg) GetMsg() *SystemMsg { if x != nil { return x.Msg } return nil } type SystemMsg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SubType int32 `protobuf:"varint,1,opt,name=subType,proto3" json:"subType,omitempty"` MsgTitle string `protobuf:"bytes,2,opt,name=msgTitle,proto3" json:"msgTitle,omitempty"` MsgDescribe string `protobuf:"bytes,3,opt,name=msgDescribe,proto3" json:"msgDescribe,omitempty"` MsgAdditional string `protobuf:"bytes,4,opt,name=msgAdditional,proto3" json:"msgAdditional,omitempty"` MsgSource string `protobuf:"bytes,5,opt,name=msgSource,proto3" json:"msgSource,omitempty"` MsgDecided string `protobuf:"bytes,6,opt,name=msgDecided,proto3" json:"msgDecided,omitempty"` SrcId int32 `protobuf:"varint,7,opt,name=srcId,proto3" json:"srcId,omitempty"` SubSrcId int32 `protobuf:"varint,8,opt,name=subSrcId,proto3" json:"subSrcId,omitempty"` Actions []*SystemMsgAction `protobuf:"bytes,9,rep,name=actions,proto3" json:"actions,omitempty"` GroupCode int64 `protobuf:"varint,10,opt,name=groupCode,proto3" json:"groupCode,omitempty"` ActionUin int64 `protobuf:"varint,11,opt,name=actionUin,proto3" json:"actionUin,omitempty"` GroupMsgType int32 `protobuf:"varint,12,opt,name=groupMsgType,proto3" json:"groupMsgType,omitempty"` GroupInviterRole int32 `protobuf:"varint,13,opt,name=groupInviterRole,proto3" json:"groupInviterRole,omitempty"` FriendInfo *FriendInfo `protobuf:"bytes,14,opt,name=friendInfo,proto3" json:"friendInfo,omitempty"` GroupInfo *SGroupInfo `protobuf:"bytes,15,opt,name=groupInfo,proto3" json:"groupInfo,omitempty"` ActorUin int64 `protobuf:"varint,16,opt,name=actorUin,proto3" json:"actorUin,omitempty"` MsgActorDescribe string `protobuf:"bytes,17,opt,name=msgActorDescribe,proto3" json:"msgActorDescribe,omitempty"` MsgAdditionalList string `protobuf:"bytes,18,opt,name=msgAdditionalList,proto3" json:"msgAdditionalList,omitempty"` Relation int32 `protobuf:"varint,19,opt,name=relation,proto3" json:"relation,omitempty"` Reqsubtype int32 `protobuf:"varint,20,opt,name=reqsubtype,proto3" json:"reqsubtype,omitempty"` CloneUin int64 `protobuf:"varint,21,opt,name=cloneUin,proto3" json:"cloneUin,omitempty"` DiscussUin int64 `protobuf:"varint,22,opt,name=discussUin,proto3" json:"discussUin,omitempty"` EimGroupId int64 `protobuf:"varint,23,opt,name=eimGroupId,proto3" json:"eimGroupId,omitempty"` MsgInviteExtinfo *MsgInviteExt `protobuf:"bytes,24,opt,name=msgInviteExtinfo,proto3" json:"msgInviteExtinfo,omitempty"` MsgPayGroupExtinfo *MsgPayGroupExt `protobuf:"bytes,25,opt,name=msgPayGroupExtinfo,proto3" json:"msgPayGroupExtinfo,omitempty"` SourceFlag int32 `protobuf:"varint,26,opt,name=sourceFlag,proto3" json:"sourceFlag,omitempty"` GameNick []byte `protobuf:"bytes,27,opt,name=gameNick,proto3" json:"gameNick,omitempty"` GameMsg []byte `protobuf:"bytes,28,opt,name=gameMsg,proto3" json:"gameMsg,omitempty"` GroupFlagext3 int32 `protobuf:"varint,29,opt,name=groupFlagext3,proto3" json:"groupFlagext3,omitempty"` GroupOwnerUin int64 `protobuf:"varint,30,opt,name=groupOwnerUin,proto3" json:"groupOwnerUin,omitempty"` DoubtFlag int32 `protobuf:"varint,31,opt,name=doubtFlag,proto3" json:"doubtFlag,omitempty"` WarningTips []byte `protobuf:"bytes,32,opt,name=warningTips,proto3" json:"warningTips,omitempty"` NameMore []byte `protobuf:"bytes,33,opt,name=nameMore,proto3" json:"nameMore,omitempty"` ReqUinFaceid int32 `protobuf:"varint,50,opt,name=reqUinFaceid,proto3" json:"reqUinFaceid,omitempty"` ReqUinNick string `protobuf:"bytes,51,opt,name=reqUinNick,proto3" json:"reqUinNick,omitempty"` GroupName string `protobuf:"bytes,52,opt,name=groupName,proto3" json:"groupName,omitempty"` ActionUinNick string `protobuf:"bytes,53,opt,name=actionUinNick,proto3" json:"actionUinNick,omitempty"` MsgQna string `protobuf:"bytes,54,opt,name=msgQna,proto3" json:"msgQna,omitempty"` MsgDetail string `protobuf:"bytes,55,opt,name=msgDetail,proto3" json:"msgDetail,omitempty"` GroupExtFlag int32 `protobuf:"varint,57,opt,name=groupExtFlag,proto3" json:"groupExtFlag,omitempty"` ActorUinNick string `protobuf:"bytes,58,opt,name=actorUinNick,proto3" json:"actorUinNick,omitempty"` PicUrl string `protobuf:"bytes,59,opt,name=picUrl,proto3" json:"picUrl,omitempty"` CloneUinNick string `protobuf:"bytes,60,opt,name=cloneUinNick,proto3" json:"cloneUinNick,omitempty"` ReqUinBusinessCard string `protobuf:"bytes,61,opt,name=reqUinBusinessCard,proto3" json:"reqUinBusinessCard,omitempty"` EimGroupIdName string `protobuf:"bytes,63,opt,name=eimGroupIdName,proto3" json:"eimGroupIdName,omitempty"` ReqUinPreRemark string `protobuf:"bytes,64,opt,name=reqUinPreRemark,proto3" json:"reqUinPreRemark,omitempty"` ActionUinQqNick string `protobuf:"bytes,65,opt,name=actionUinQqNick,proto3" json:"actionUinQqNick,omitempty"` ActionUinRemark string `protobuf:"bytes,66,opt,name=actionUinRemark,proto3" json:"actionUinRemark,omitempty"` ReqUinGender int32 `protobuf:"varint,67,opt,name=reqUinGender,proto3" json:"reqUinGender,omitempty"` ReqUinAge int32 `protobuf:"varint,68,opt,name=reqUinAge,proto3" json:"reqUinAge,omitempty"` C2CInviteJoinGroupFlag int32 `protobuf:"varint,69,opt,name=c2cInviteJoinGroupFlag,proto3" json:"c2cInviteJoinGroupFlag,omitempty"` CardSwitch int32 `protobuf:"varint,101,opt,name=cardSwitch,proto3" json:"cardSwitch,omitempty"` } func (x *SystemMsg) Reset() { *x = SystemMsg{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SystemMsg) String() string { return protoimpl.X.MessageStringOf(x) } func (*SystemMsg) ProtoMessage() {} func (x *SystemMsg) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 SystemMsg.ProtoReflect.Descriptor instead. func (*SystemMsg) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{18} } func (x *SystemMsg) GetSubType() int32 { if x != nil { return x.SubType } return 0 } func (x *SystemMsg) GetMsgTitle() string { if x != nil { return x.MsgTitle } return "" } func (x *SystemMsg) GetMsgDescribe() string { if x != nil { return x.MsgDescribe } return "" } func (x *SystemMsg) GetMsgAdditional() string { if x != nil { return x.MsgAdditional } return "" } func (x *SystemMsg) GetMsgSource() string { if x != nil { return x.MsgSource } return "" } func (x *SystemMsg) GetMsgDecided() string { if x != nil { return x.MsgDecided } return "" } func (x *SystemMsg) GetSrcId() int32 { if x != nil { return x.SrcId } return 0 } func (x *SystemMsg) GetSubSrcId() int32 { if x != nil { return x.SubSrcId } return 0 } func (x *SystemMsg) GetActions() []*SystemMsgAction { if x != nil { return x.Actions } return nil } func (x *SystemMsg) GetGroupCode() int64 { if x != nil { return x.GroupCode } return 0 } func (x *SystemMsg) GetActionUin() int64 { if x != nil { return x.ActionUin } return 0 } func (x *SystemMsg) GetGroupMsgType() int32 { if x != nil { return x.GroupMsgType } return 0 } func (x *SystemMsg) GetGroupInviterRole() int32 { if x != nil { return x.GroupInviterRole } return 0 } func (x *SystemMsg) GetFriendInfo() *FriendInfo { if x != nil { return x.FriendInfo } return nil } func (x *SystemMsg) GetGroupInfo() *SGroupInfo { if x != nil { return x.GroupInfo } return nil } func (x *SystemMsg) GetActorUin() int64 { if x != nil { return x.ActorUin } return 0 } func (x *SystemMsg) GetMsgActorDescribe() string { if x != nil { return x.MsgActorDescribe } return "" } func (x *SystemMsg) GetMsgAdditionalList() string { if x != nil { return x.MsgAdditionalList } return "" } func (x *SystemMsg) GetRelation() int32 { if x != nil { return x.Relation } return 0 } func (x *SystemMsg) GetReqsubtype() int32 { if x != nil { return x.Reqsubtype } return 0 } func (x *SystemMsg) GetCloneUin() int64 { if x != nil { return x.CloneUin } return 0 } func (x *SystemMsg) GetDiscussUin() int64 { if x != nil { return x.DiscussUin } return 0 } func (x *SystemMsg) GetEimGroupId() int64 { if x != nil { return x.EimGroupId } return 0 } func (x *SystemMsg) GetMsgInviteExtinfo() *MsgInviteExt { if x != nil { return x.MsgInviteExtinfo } return nil } func (x *SystemMsg) GetMsgPayGroupExtinfo() *MsgPayGroupExt { if x != nil { return x.MsgPayGroupExtinfo } return nil } func (x *SystemMsg) GetSourceFlag() int32 { if x != nil { return x.SourceFlag } return 0 } func (x *SystemMsg) GetGameNick() []byte { if x != nil { return x.GameNick } return nil } func (x *SystemMsg) GetGameMsg() []byte { if x != nil { return x.GameMsg } return nil } func (x *SystemMsg) GetGroupFlagext3() int32 { if x != nil { return x.GroupFlagext3 } return 0 } func (x *SystemMsg) GetGroupOwnerUin() int64 { if x != nil { return x.GroupOwnerUin } return 0 } func (x *SystemMsg) GetDoubtFlag() int32 { if x != nil { return x.DoubtFlag } return 0 } func (x *SystemMsg) GetWarningTips() []byte { if x != nil { return x.WarningTips } return nil } func (x *SystemMsg) GetNameMore() []byte { if x != nil { return x.NameMore } return nil } func (x *SystemMsg) GetReqUinFaceid() int32 { if x != nil { return x.ReqUinFaceid } return 0 } func (x *SystemMsg) GetReqUinNick() string { if x != nil { return x.ReqUinNick } return "" } func (x *SystemMsg) GetGroupName() string { if x != nil { return x.GroupName } return "" } func (x *SystemMsg) GetActionUinNick() string { if x != nil { return x.ActionUinNick } return "" } func (x *SystemMsg) GetMsgQna() string { if x != nil { return x.MsgQna } return "" } func (x *SystemMsg) GetMsgDetail() string { if x != nil { return x.MsgDetail } return "" } func (x *SystemMsg) GetGroupExtFlag() int32 { if x != nil { return x.GroupExtFlag } return 0 } func (x *SystemMsg) GetActorUinNick() string { if x != nil { return x.ActorUinNick } return "" } func (x *SystemMsg) GetPicUrl() string { if x != nil { return x.PicUrl } return "" } func (x *SystemMsg) GetCloneUinNick() string { if x != nil { return x.CloneUinNick } return "" } func (x *SystemMsg) GetReqUinBusinessCard() string { if x != nil { return x.ReqUinBusinessCard } return "" } func (x *SystemMsg) GetEimGroupIdName() string { if x != nil { return x.EimGroupIdName } return "" } func (x *SystemMsg) GetReqUinPreRemark() string { if x != nil { return x.ReqUinPreRemark } return "" } func (x *SystemMsg) GetActionUinQqNick() string { if x != nil { return x.ActionUinQqNick } return "" } func (x *SystemMsg) GetActionUinRemark() string { if x != nil { return x.ActionUinRemark } return "" } func (x *SystemMsg) GetReqUinGender() int32 { if x != nil { return x.ReqUinGender } return 0 } func (x *SystemMsg) GetReqUinAge() int32 { if x != nil { return x.ReqUinAge } return 0 } func (x *SystemMsg) GetC2CInviteJoinGroupFlag() int32 { if x != nil { return x.C2CInviteJoinGroupFlag } return 0 } func (x *SystemMsg) GetCardSwitch() int32 { if x != nil { return x.CardSwitch } return 0 } type SystemMsgAction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Result string `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"` Action int32 `protobuf:"varint,3,opt,name=action,proto3" json:"action,omitempty"` ActionInfo *SystemMsgActionInfo `protobuf:"bytes,4,opt,name=actionInfo,proto3" json:"actionInfo,omitempty"` DetailName string `protobuf:"bytes,5,opt,name=detailName,proto3" json:"detailName,omitempty"` } func (x *SystemMsgAction) Reset() { *x = SystemMsgAction{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SystemMsgAction) String() string { return protoimpl.X.MessageStringOf(x) } func (*SystemMsgAction) ProtoMessage() {} func (x *SystemMsgAction) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 SystemMsgAction.ProtoReflect.Descriptor instead. func (*SystemMsgAction) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{19} } func (x *SystemMsgAction) GetName() string { if x != nil { return x.Name } return "" } func (x *SystemMsgAction) GetResult() string { if x != nil { return x.Result } return "" } func (x *SystemMsgAction) GetAction() int32 { if x != nil { return x.Action } return 0 } func (x *SystemMsgAction) GetActionInfo() *SystemMsgActionInfo { if x != nil { return x.ActionInfo } return nil } func (x *SystemMsgAction) GetDetailName() string { if x != nil { return x.DetailName } return "" } type SystemMsgActionInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` GroupCode int64 `protobuf:"varint,2,opt,name=groupCode,proto3" json:"groupCode,omitempty"` Sig []byte `protobuf:"bytes,3,opt,name=sig,proto3" json:"sig,omitempty"` Msg string `protobuf:"bytes,50,opt,name=msg,proto3" json:"msg,omitempty"` GroupId int32 `protobuf:"varint,51,opt,name=groupId,proto3" json:"groupId,omitempty"` Remark string `protobuf:"bytes,52,opt,name=remark,proto3" json:"remark,omitempty"` Blacklist bool `protobuf:"varint,53,opt,name=blacklist,proto3" json:"blacklist,omitempty"` AddFrdSNInfo *AddFrdSNInfo `protobuf:"bytes,54,opt,name=addFrdSNInfo,proto3" json:"addFrdSNInfo,omitempty"` } func (x *SystemMsgActionInfo) Reset() { *x = SystemMsgActionInfo{} if protoimpl.UnsafeEnabled { mi := &file_structmsg_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SystemMsgActionInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SystemMsgActionInfo) ProtoMessage() {} func (x *SystemMsgActionInfo) ProtoReflect() protoreflect.Message { mi := &file_structmsg_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 SystemMsgActionInfo.ProtoReflect.Descriptor instead. func (*SystemMsgActionInfo) Descriptor() ([]byte, []int) { return file_structmsg_proto_rawDescGZIP(), []int{20} } func (x *SystemMsgActionInfo) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *SystemMsgActionInfo) GetGroupCode() int64 { if x != nil { return x.GroupCode } return 0 } func (x *SystemMsgActionInfo) GetSig() []byte { if x != nil { return x.Sig } return nil } func (x *SystemMsgActionInfo) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *SystemMsgActionInfo) GetGroupId() int32 { if x != nil { return x.GroupId } return 0 } func (x *SystemMsgActionInfo) GetRemark() string { if x != nil { return x.Remark } return "" } func (x *SystemMsgActionInfo) GetBlacklist() bool { if x != nil { return x.Blacklist } return false } func (x *SystemMsgActionInfo) GetAddFrdSNInfo() *AddFrdSNInfo { if x != nil { return x.AddFrdSNInfo } return nil } var File_structmsg_proto protoreflect.FileDescriptor var file_structmsg_proto_rawDesc = []byte{ 0x0a, 0x0f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4a, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x53, 0x4e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x53, 0x65, 0x65, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x53, 0x65, 0x65, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x53, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x65, 0x74, 0x53, 0x6e, 0x22, 0xee, 0x07, 0x0a, 0x08, 0x46, 0x6c, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x4b, 0x69, 0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x4b, 0x69, 0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x47, 0x72, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x47, 0x72, 0x70, 0x12, 0x2c, 0x0a, 0x11, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x6f, 0x77, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x66, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x42, 0x75, 0x73, 0x69, 0x43, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x66, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x42, 0x75, 0x73, 0x69, 0x43, 0x61, 0x72, 0x64, 0x12, 0x3a, 0x0a, 0x18, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x69, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x69, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x36, 0x0a, 0x16, 0x66, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x44, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x32, 0x4d, 0x61, 0x6e, 0x79, 0x43, 0x68, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x66, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x44, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x32, 0x4d, 0x61, 0x6e, 0x79, 0x43, 0x68, 0x61, 0x74, 0x12, 0x4c, 0x0a, 0x21, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x72, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x66, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x65, 0x64, 0x57, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x66, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x65, 0x64, 0x57, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x67, 0x12, 0x42, 0x0a, 0x1c, 0x66, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x73, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1c, 0x66, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x3e, 0x0a, 0x1a, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x44, 0x0a, 0x1d, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x42, 0x0a, 0x1c, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x51, 0x75, 0x69, 0x74, 0x50, 0x61, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1c, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x51, 0x75, 0x69, 0x74, 0x50, 0x61, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x40, 0x0a, 0x1b, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x4a, 0x6f, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1b, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x3a, 0x0a, 0x18, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x4a, 0x6f, 0x69, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x3c, 0x0a, 0x19, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x42, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x40, 0x0a, 0x1b, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x43, 0x32, 0x63, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1b, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x43, 0x32, 0x63, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x58, 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x73, 0x67, 0x4a, 0x6f, 0x69, 0x6e, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x73, 0x67, 0x4a, 0x6f, 0x69, 0x6e, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x73, 0x67, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x73, 0x67, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xf6, 0x01, 0x0a, 0x0a, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x73, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x73, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x73, 0x67, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x6f, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x73, 0x67, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x61, 0x70, 0x70, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x60, 0x0a, 0x0c, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x45, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x72, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x72, 0x63, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x61, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x77, 0x61, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x54, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x50, 0x61, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x78, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa9, 0x02, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x2e, 0x0a, 0x12, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x2c, 0x0a, 0x11, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0xa0, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x72, 0x63, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x53, 0x72, 0x63, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x75, 0x62, 0x53, 0x72, 0x63, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0xec, 0x02, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x47, 0x65, 0x74, 0x46, 0x72, 0x64, 0x52, 0x69, 0x62, 0x62, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x47, 0x65, 0x74, 0x46, 0x72, 0x64, 0x52, 0x69, 0x62, 0x62, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x47, 0x65, 0x74, 0x47, 0x72, 0x70, 0x52, 0x69, 0x62, 0x62, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x47, 0x65, 0x74, 0x47, 0x72, 0x70, 0x52, 0x69, 0x62, 0x62, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x96, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x61, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3b, 0x0a, 0x07, 0x52, 0x73, 0x70, 0x48, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x22, 0xb2, 0x02, 0x0a, 0x10, 0x52, 0x73, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x52, 0x73, 0x70, 0x48, 0x65, 0x61, 0x64, 0x52, 0x04, 0x68, 0x65, 0x61, 0x64, 0x12, 0x1e, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x2c, 0x0a, 0x11, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x6e, 0x64, 0x65, 0x63, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x51, 0x69, 0x6d, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x75, 0x6e, 0x64, 0x65, 0x63, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x51, 0x69, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x33, 0x18, 0x66, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x75, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x33, 0x22, 0xbe, 0x02, 0x0a, 0x0c, 0x52, 0x73, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x52, 0x73, 0x70, 0x48, 0x65, 0x61, 0x64, 0x52, 0x04, 0x68, 0x65, 0x61, 0x64, 0x12, 0x1e, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x12, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x2c, 0x0a, 0x11, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x22, 0xb6, 0x01, 0x0a, 0x12, 0x52, 0x73, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x52, 0x73, 0x70, 0x48, 0x65, 0x61, 0x64, 0x52, 0x04, 0x68, 0x65, 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x44, 0x65, 0x63, 0x69, 0x64, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x44, 0x65, 0x63, 0x69, 0x64, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xd7, 0x05, 0x0a, 0x0f, 0x52, 0x73, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x77, 0x12, 0x1c, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x52, 0x73, 0x70, 0x48, 0x65, 0x61, 0x64, 0x52, 0x04, 0x68, 0x65, 0x61, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x12, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x2c, 0x0a, 0x11, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x12, 0x2a, 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6d, 0x73, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x6d, 0x73, 0x67, 0x73, 0x12, 0x34, 0x0a, 0x0f, 0x6d, 0x73, 0x67, 0x52, 0x69, 0x62, 0x62, 0x6f, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x0f, 0x6d, 0x73, 0x67, 0x52, 0x69, 0x62, 0x62, 0x6f, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x0e, 0x6d, 0x73, 0x67, 0x52, 0x69, 0x62, 0x62, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x0e, 0x6d, 0x73, 0x67, 0x52, 0x69, 0x62, 0x62, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x72, 0x70, 0x4d, 0x73, 0x67, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x6e, 0x64, 0x65, 0x63, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x51, 0x69, 0x6d, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x75, 0x6e, 0x64, 0x65, 0x63, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x51, 0x69, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x33, 0x18, 0x66, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x75, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x33, 0x22, 0x62, 0x0a, 0x10, 0x52, 0x73, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x52, 0x73, 0x70, 0x48, 0x65, 0x61, 0x64, 0x52, 0x04, 0x68, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc7, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xc3, 0x0e, 0x0a, 0x09, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x44, 0x65, 0x63, 0x69, 0x64, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x44, 0x65, 0x63, 0x69, 0x64, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x72, 0x63, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x53, 0x72, 0x63, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x75, 0x62, 0x53, 0x72, 0x63, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x2b, 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x73, 0x67, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x73, 0x67, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x55, 0x69, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x55, 0x69, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x69, 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x69, 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x10, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x45, 0x78, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x45, 0x78, 0x74, 0x52, 0x10, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x45, 0x78, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3f, 0x0a, 0x12, 0x6d, 0x73, 0x67, 0x50, 0x61, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x78, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x61, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x78, 0x74, 0x52, 0x12, 0x6d, 0x73, 0x67, 0x50, 0x61, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x78, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x6d, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x61, 0x6d, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x65, 0x78, 0x74, 0x33, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x65, 0x78, 0x74, 0x33, 0x12, 0x24, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x6f, 0x75, 0x62, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x6f, 0x75, 0x62, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x70, 0x73, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x70, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x72, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x46, 0x61, 0x63, 0x65, 0x69, 0x64, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x46, 0x61, 0x63, 0x65, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x35, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x51, 0x6e, 0x61, 0x18, 0x36, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x51, 0x6e, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x78, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x39, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x78, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x69, 0x63, 0x55, 0x72, 0x6c, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x69, 0x63, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x55, 0x69, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x55, 0x69, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x2e, 0x0a, 0x12, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x43, 0x61, 0x72, 0x64, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x43, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x69, 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x69, 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x40, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x51, 0x71, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x41, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x51, 0x71, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x42, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x43, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x41, 0x67, 0x65, 0x18, 0x44, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x65, 0x71, 0x55, 0x69, 0x6e, 0x41, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x32, 0x63, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x45, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x63, 0x32, 0x63, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x72, 0x64, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x65, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x61, 0x72, 0x64, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0xab, 0x01, 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xee, 0x01, 0x0a, 0x13, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x73, 0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x33, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x46, 0x72, 0x64, 0x53, 0x4e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x53, 0x4e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x46, 0x72, 0x64, 0x53, 0x4e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x3b, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6d, 0x73, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_structmsg_proto_rawDescOnce sync.Once file_structmsg_proto_rawDescData = file_structmsg_proto_rawDesc ) func file_structmsg_proto_rawDescGZIP() []byte { file_structmsg_proto_rawDescOnce.Do(func() { file_structmsg_proto_rawDescData = protoimpl.X.CompressGZIP(file_structmsg_proto_rawDescData) }) return file_structmsg_proto_rawDescData } var file_structmsg_proto_msgTypes = make([]protoimpl.MessageInfo, 21) var file_structmsg_proto_goTypes = []interface{}{ (*AddFrdSNInfo)(nil), // 0: AddFrdSNInfo (*FlagInfo)(nil), // 1: FlagInfo (*FriendInfo)(nil), // 2: FriendInfo (*SGroupInfo)(nil), // 3: SGroupInfo (*MsgInviteExt)(nil), // 4: MsgInviteExt (*MsgPayGroupExt)(nil), // 5: MsgPayGroupExt (*ReqNextSystemMsg)(nil), // 6: ReqNextSystemMsg (*ReqSystemMsg)(nil), // 7: ReqSystemMsg (*ReqSystemMsgAction)(nil), // 8: ReqSystemMsgAction (*ReqSystemMsgNew)(nil), // 9: ReqSystemMsgNew (*ReqSystemMsgRead)(nil), // 10: ReqSystemMsgRead (*RspHead)(nil), // 11: RspHead (*RspNextSystemMsg)(nil), // 12: RspNextSystemMsg (*RspSystemMsg)(nil), // 13: RspSystemMsg (*RspSystemMsgAction)(nil), // 14: RspSystemMsgAction (*RspSystemMsgNew)(nil), // 15: RspSystemMsgNew (*RspSystemMsgRead)(nil), // 16: RspSystemMsgRead (*StructMsg)(nil), // 17: StructMsg (*SystemMsg)(nil), // 18: SystemMsg (*SystemMsgAction)(nil), // 19: SystemMsgAction (*SystemMsgActionInfo)(nil), // 20: SystemMsgActionInfo } var file_structmsg_proto_depIdxs = []int32{ 1, // 0: ReqNextSystemMsg.flag:type_name -> FlagInfo 20, // 1: ReqSystemMsgAction.actionInfo:type_name -> SystemMsgActionInfo 1, // 2: ReqSystemMsgNew.flag:type_name -> FlagInfo 11, // 3: RspNextSystemMsg.head:type_name -> RspHead 17, // 4: RspNextSystemMsg.msgs:type_name -> StructMsg 11, // 5: RspSystemMsg.head:type_name -> RspHead 17, // 6: RspSystemMsg.msgs:type_name -> StructMsg 11, // 7: RspSystemMsgAction.head:type_name -> RspHead 11, // 8: RspSystemMsgNew.head:type_name -> RspHead 17, // 9: RspSystemMsgNew.friendmsgs:type_name -> StructMsg 17, // 10: RspSystemMsgNew.groupmsgs:type_name -> StructMsg 17, // 11: RspSystemMsgNew.msgRibbonFriend:type_name -> StructMsg 17, // 12: RspSystemMsgNew.msgRibbonGroup:type_name -> StructMsg 11, // 13: RspSystemMsgRead.head:type_name -> RspHead 18, // 14: StructMsg.msg:type_name -> SystemMsg 19, // 15: SystemMsg.actions:type_name -> SystemMsgAction 2, // 16: SystemMsg.friendInfo:type_name -> FriendInfo 3, // 17: SystemMsg.groupInfo:type_name -> SGroupInfo 4, // 18: SystemMsg.msgInviteExtinfo:type_name -> MsgInviteExt 5, // 19: SystemMsg.msgPayGroupExtinfo:type_name -> MsgPayGroupExt 20, // 20: SystemMsgAction.actionInfo:type_name -> SystemMsgActionInfo 0, // 21: SystemMsgActionInfo.addFrdSNInfo:type_name -> AddFrdSNInfo 22, // [22:22] is the sub-list for method output_type 22, // [22:22] is the sub-list for method input_type 22, // [22:22] is the sub-list for extension type_name 22, // [22:22] is the sub-list for extension extendee 0, // [0:22] is the sub-list for field type_name } func init() { file_structmsg_proto_init() } func file_structmsg_proto_init() { if File_structmsg_proto != nil { return } if !protoimpl.UnsafeEnabled { file_structmsg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddFrdSNInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlagInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FriendInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SGroupInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgInviteExt); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgPayGroupExt); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReqNextSystemMsg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReqSystemMsg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReqSystemMsgAction); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReqSystemMsgNew); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReqSystemMsgRead); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RspHead); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RspNextSystemMsg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RspSystemMsg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RspSystemMsgAction); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RspSystemMsgNew); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RspSystemMsgRead); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StructMsg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemMsg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemMsgAction); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_structmsg_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SystemMsgActionInfo); 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_structmsg_proto_rawDesc, NumEnums: 0, NumMessages: 21, NumExtensions: 0, NumServices: 0, }, GoTypes: file_structmsg_proto_goTypes, DependencyIndexes: file_structmsg_proto_depIdxs, MessageInfos: file_structmsg_proto_msgTypes, }.Build() File_structmsg_proto = out.File file_structmsg_proto_rawDesc = nil file_structmsg_proto_goTypes = nil file_structmsg_proto_depIdxs = nil }