pull/131/head
wenxu12345 3 years ago
parent 6b1f4e1686
commit c0db257e9b

@ -140,7 +140,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq
} }
//Establish a latest relationship in the friend request table //Establish a latest relationship in the friend request table
friendRequest := imdb.FriendRequest{ReqMessage: req.ReqMsg} friendRequest := imdb.FriendRequest{ReqMsg: req.ReqMsg}
utils.CopyStructFields(&friendRequest, req.CommID) utils.CopyStructFields(&friendRequest, req.CommID)
err := imdb.UpdateFriendApplication(&friendRequest) err := imdb.UpdateFriendApplication(&friendRequest)
if err != nil { if err != nil {
@ -454,7 +454,7 @@ func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetSe
var selfApplyOtherUserList []*sdkws.FriendRequest var selfApplyOtherUserList []*sdkws.FriendRequest
for _, selfApplyOtherUserInfo := range usersInfo { for _, selfApplyOtherUserInfo := range usersInfo {
var userInfo sdkws.FriendRequest // pbFriend.ApplyUserInfo var userInfo sdkws.FriendRequest // pbFriend.ApplyUserInfo
utils.CopyStructFields(&userInfo, selfApplyOtherUserInfo) utils.FriendRequestDBCopyOpenIM(&userInfo, selfApplyOtherUserInfo)
selfApplyOtherUserList = append(selfApplyOtherUserList, &userInfo) selfApplyOtherUserList = append(selfApplyOtherUserList, &userInfo)
} }
log.NewInfo(req.CommID.OperationID, "rpc GetSelfApplyList ok", pbFriend.GetSelfApplyListResp{FriendRequestList: selfApplyOtherUserList}) log.NewInfo(req.CommID.OperationID, "rpc GetSelfApplyList ok", pbFriend.GetSelfApplyListResp{FriendRequestList: selfApplyOtherUserList})

@ -311,7 +311,7 @@ func Notification(n *NotificationMsg, onlineUserOnly bool) {
func setOpUserInfo(operationID, opUserID, groupID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) { func setOpUserInfo(operationID, opUserID, groupID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) {
if token_verify.IsMangerUserID(opUserID) { if token_verify.IsMangerUserID(opUserID) {
u, err := imdb.FindUserByUID(opUserID) u, err := imdb.GetUserByUserID(opUserID)
if err != nil { if err != nil {
log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID) log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID)
return return

@ -118,12 +118,12 @@ func GetOwnerManagerByGroupID(groupID string) ([]GroupMember, error) {
return groupMemberList, nil return groupMemberList, nil
} }
func GetGroupMemberNumByGroupID(groupID string) int32 { func GetGroupMemberNumByGroupID(groupID string) uint32 {
dbConn, err := db.DB.MysqlDB.DefaultGormDB() dbConn, err := db.DB.MysqlDB.DefaultGormDB()
if err != nil { if err != nil {
return 0 return 0
} }
var number int32 var number uint32
err = dbConn.Table("group_member").Where("group_id=?", groupID).Count(&number).Error err = dbConn.Table("group_member").Where("group_id=?", groupID).Count(&number).Error
if err != nil { if err != nil {
return 0 return 0

@ -2,21 +2,44 @@ package im_mysql_model
import "time" import "time"
//
//message FriendInfo{
//string OwnerUserID = 1;
//string Remark = 2;
//int64 CreateTime = 3;
//UserInfo FriendUser = 4;
//int32 AddSource = 5;
//string OperatorUserID = 6;
//string Ex = 7;
//}
//open_im_sdk.FriendInfo(FriendUser) != imdb.Friend(FriendUserID)
type Friend struct { type Friend struct {
OwnerUserID string `gorm:"column:owner_user_id;primaryKey;"` OwnerUserID string `gorm:"column:owner_user_id;primaryKey;"`
FriendUserID string `gorm:"column:friend_user_id;primaryKey;"`
Remark string `gorm:"column:remark"` Remark string `gorm:"column:remark"`
CreateTime time.Time `gorm:"column:create_time"` CreateTime time.Time `gorm:"column:create_time"`
FriendUserID string `gorm:"column:friend_user_id;primaryKey;"`
AddSource int32 `gorm:"column:add_source"` AddSource int32 `gorm:"column:add_source"`
OperatorUserID string `gorm:"column:operator_user_id"` OperatorUserID string `gorm:"column:operator_user_id"`
Ex string `gorm:"column:ex"` Ex string `gorm:"column:ex"`
} }
//message FriendRequest{
//string FromUserID = 1;
//string ToUserID = 2;
//int32 HandleResult = 3;
//string ReqMsg = 4;
//int64 CreateTime = 5;
//string HandlerUserID = 6;
//string HandleMsg = 7;
//int64 HandleTime = 8;
//string Ex = 9;
//}
//open_im_sdk.FriendRequest == imdb.FriendRequest
type FriendRequest struct { type FriendRequest struct {
FromUserID string `gorm:"column:from_user_id;primaryKey;"` FromUserID string `gorm:"column:from_user_id;primaryKey;"`
ToUserID string `gorm:"column:to_user_id;primaryKey;"` ToUserID string `gorm:"column:to_user_id;primaryKey;"`
HandleResult int32 `gorm:"column:handle_result"` HandleResult int32 `gorm:"column:handle_result"`
ReqMessage string `gorm:"column:req_message"` ReqMsg string `gorm:"column:req_msg"`
CreateTime time.Time `gorm:"column:create_time"` CreateTime time.Time `gorm:"column:create_time"`
HandlerUserID string `gorm:"column:handler_user_id"` HandlerUserID string `gorm:"column:handler_user_id"`
HandleMsg string `gorm:"column:handle_msg"` HandleMsg string `gorm:"column:handle_msg"`
@ -24,12 +47,28 @@ type FriendRequest struct {
Ex string `gorm:"column:ex"` Ex string `gorm:"column:ex"`
} }
//message GroupInfo{
// string GroupID = 1;
// string GroupName = 2;
// string Notification = 3;
// string Introduction = 4;
// string FaceUrl = 5;
// string OwnerUserID = 6;
// uint32 MemberCount = 8;
// int64 CreateTime = 7;
// string Ex = 9;
// int32 Status = 10;
// string CreatorUserID = 11;
// int32 GroupType = 12;
//}
// open_im_sdk.GroupInfo (OwnerUserID , MemberCount )> imdb.Group
type Group struct { type Group struct {
GroupID string `gorm:"column:group_id;primaryKey;"` GroupID string `gorm:"column:group_id;primaryKey;"`
GroupName string `gorm:"column:name"` GroupName string `gorm:"column:name"`
Introduction string `gorm:"column:introduction"` Notification string `gorm:"column:notification"`
Notification string `gorm:"column:notification"` Introduction string `gorm:"column:introduction"`
FaceUrl string `gorm:"column:face_url"` FaceUrl string `gorm:"column:face_url"`
CreateTime time.Time `gorm:"column:create_time"` CreateTime time.Time `gorm:"column:create_time"`
Status int32 `gorm:"column:status"` Status int32 `gorm:"column:status"`
CreatorUserID string `gorm:"column:creator_user_id"` CreatorUserID string `gorm:"column:creator_user_id"`
@ -37,18 +76,41 @@ type Group struct {
Ex string `gorm:"column:ex"` Ex string `gorm:"column:ex"`
} }
//message GroupMemberFullInfo {
//string GroupID = 1 ;
//string UserID = 2 ;
//int32 roleLevel = 3;
//int64 JoinTime = 4;
//string NickName = 5;
//string FaceUrl = 6;
//int32 JoinSource = 8;
//string OperatorUserID = 9;
//string Ex = 10;
//int32 AppMangerLevel = 7; //if >0
//} open_im_sdk.GroupMemberFullInfo(AppMangerLevel) > imdb.GroupMember
type GroupMember struct { type GroupMember struct {
GroupID string `gorm:"column:group_id;primaryKey;"` GroupID string `gorm:"column:group_id;primaryKey;"`
UserID string `gorm:"column:user_id;primaryKey;"` UserID string `gorm:"column:user_id;primaryKey;"`
Nickname string `gorm:"column:nickname"`
FaceUrl string `gorm:"user_group_face_url"`
RoleLevel int32 `gorm:"column:role_level"` RoleLevel int32 `gorm:"column:role_level"`
JoinTime time.Time `gorm:"column:join_time"` JoinTime time.Time `gorm:"column:join_time"`
Nickname string `gorm:"column:nickname"`
FaceUrl string `gorm:"user_group_face_url"`
JoinSource int32 `gorm:"column:join_source"` JoinSource int32 `gorm:"column:join_source"`
OperatorUserID string `gorm:"column:operator_user_id"` OperatorUserID string `gorm:"column:operator_user_id"`
Ex string `gorm:"column:ex"` Ex string `gorm:"column:ex"`
} }
//message GroupRequest{
//string UserID = 1;
//string GroupID = 2;
//string HandleResult = 3;
//string ReqMsg = 4;
//string HandleMsg = 5;
//int64 ReqTime = 6;
//string HandleUserID = 7;
//int64 HandleTime = 8;
//string Ex = 9;
//}open_im_sdk.GroupRequest == imdb.GroupRequest
type GroupRequest struct { type GroupRequest struct {
UserID string `gorm:"column:user_id;primaryKey;"` UserID string `gorm:"column:user_id;primaryKey;"`
GroupID string `gorm:"column:group_id;primaryKey;"` GroupID string `gorm:"column:group_id;primaryKey;"`
@ -61,22 +123,43 @@ type GroupRequest struct {
Ex string `gorm:"column:ex"` Ex string `gorm:"column:ex"`
} }
//string UserID = 1;
//string Nickname = 2;
//string FaceUrl = 3;
//int32 Gender = 4;
//string PhoneNumber = 5;
//string Birth = 6;
//string Email = 7;
//string Ex = 8;
//int64 CreateTime = 9;
//int32 AppMangerLevel = 10;
//open_im_sdk.User == imdb.User
type User struct { type User struct {
UserID string `gorm:"column:user_id;primaryKey;"` UserID string `gorm:"column:user_id;primaryKey;"`
Nickname string `gorm:"column:name"` Nickname string `gorm:"column:name"`
FaceUrl string `gorm:"column:icon"` FaceUrl string `gorm:"column:icon"`
Gender int32 `gorm:"column:gender"` Gender int32 `gorm:"column:gender"`
PhoneNumber string `gorm:"column:phone_number"` PhoneNumber string `gorm:"column:phone_number"`
Birth string `gorm:"column:birth"` Birth string `gorm:"column:birth"`
Email string `gorm:"column:email"` Email string `gorm:"column:email"`
Ex string `gorm:"column:ex"` Ex string `gorm:"column:ex"`
CreateTime time.Time `gorm:"column:create_time"` CreateTime time.Time `gorm:"column:create_time"`
AppMangerLevel int32 `gorm:"column:app_manger_level"`
} }
//message BlackInfo{
//string OwnerUserID = 1;
//int64 CreateTime = 2;
//PublicUserInfo BlackUserInfo = 4;
//int32 AddSource = 5;
//string OperatorUserID = 6;
//string Ex = 7;
//}
// open_im_sdk.BlackInfo(BlackUserInfo) != imdb.Black (BlockUserID)
type Black struct { type Black struct {
OwnerUserID string `gorm:"column:owner_user_id;primaryKey;"` OwnerUserID string `gorm:"column:owner_user_id;primaryKey;"`
BlockUserID string `gorm:"column:block_user_id;primaryKey;"`
CreateTime time.Time `gorm:"column:create_time"` CreateTime time.Time `gorm:"column:create_time"`
BlockUserID string `gorm:"column:block_user_id;primaryKey;"`
AddSource int32 `gorm:"column:add_source"` AddSource int32 `gorm:"column:add_source"`
OperatorUserID int32 `gorm:"column:operator_user_id"` OperatorUserID int32 `gorm:"column:operator_user_id"`
Ex string `gorm:"column:ex"` Ex string `gorm:"column:ex"`

@ -40,7 +40,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} }
func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (m *GroupInfo) String() string { return proto.CompactTextString(m) }
func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) ProtoMessage() {}
func (*GroupInfo) Descriptor() ([]byte, []int) { func (*GroupInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{0} return fileDescriptor_ws_b7876bd3c094d103, []int{0}
} }
func (m *GroupInfo) XXX_Unmarshal(b []byte) error { func (m *GroupInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupInfo.Unmarshal(m, b) return xxx_messageInfo_GroupInfo.Unmarshal(m, b)
@ -151,11 +151,10 @@ type GroupMemberFullInfo struct {
JoinTime int64 `protobuf:"varint,4,opt,name=JoinTime" json:"JoinTime,omitempty"` JoinTime int64 `protobuf:"varint,4,opt,name=JoinTime" json:"JoinTime,omitempty"`
NickName string `protobuf:"bytes,5,opt,name=NickName" json:"NickName,omitempty"` NickName string `protobuf:"bytes,5,opt,name=NickName" json:"NickName,omitempty"`
FaceUrl string `protobuf:"bytes,6,opt,name=FaceUrl" json:"FaceUrl,omitempty"` FaceUrl string `protobuf:"bytes,6,opt,name=FaceUrl" json:"FaceUrl,omitempty"`
FriendRemark string `protobuf:"bytes,7,opt,name=FriendRemark" json:"FriendRemark,omitempty"` AppMangerLevel int32 `protobuf:"varint,7,opt,name=AppMangerLevel" json:"AppMangerLevel,omitempty"`
AppMangerLevel int32 `protobuf:"varint,8,opt,name=AppMangerLevel" json:"AppMangerLevel,omitempty"` JoinSource int32 `protobuf:"varint,8,opt,name=JoinSource" json:"JoinSource,omitempty"`
JoinSource int32 `protobuf:"varint,9,opt,name=JoinSource" json:"JoinSource,omitempty"` OperatorUserID string `protobuf:"bytes,9,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"`
OperatorUserID string `protobuf:"bytes,10,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` Ex string `protobuf:"bytes,10,opt,name=Ex" json:"Ex,omitempty"`
Ex string `protobuf:"bytes,11,opt,name=Ex" json:"Ex,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -165,7 +164,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} }
func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) }
func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) ProtoMessage() {}
func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{1} return fileDescriptor_ws_b7876bd3c094d103, []int{1}
} }
func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b)
@ -227,13 +226,6 @@ func (m *GroupMemberFullInfo) GetFaceUrl() string {
return "" return ""
} }
func (m *GroupMemberFullInfo) GetFriendRemark() string {
if m != nil {
return m.FriendRemark
}
return ""
}
func (m *GroupMemberFullInfo) GetAppMangerLevel() int32 { func (m *GroupMemberFullInfo) GetAppMangerLevel() int32 {
if m != nil { if m != nil {
return m.AppMangerLevel return m.AppMangerLevel
@ -277,7 +269,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} }
func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) }
func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) ProtoMessage() {}
func (*PublicUserInfo) Descriptor() ([]byte, []int) { func (*PublicUserInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{2} return fileDescriptor_ws_b7876bd3c094d103, []int{2}
} }
func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b)
@ -341,6 +333,8 @@ type UserInfo struct {
Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"`
Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"`
Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"`
CreateTime int64 `protobuf:"varint,9,opt,name=CreateTime" json:"CreateTime,omitempty"`
AppMangerLevel int32 `protobuf:"varint,10,opt,name=AppMangerLevel" json:"AppMangerLevel,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -350,7 +344,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} }
func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (m *UserInfo) String() string { return proto.CompactTextString(m) }
func (*UserInfo) ProtoMessage() {} func (*UserInfo) ProtoMessage() {}
func (*UserInfo) Descriptor() ([]byte, []int) { func (*UserInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{3} return fileDescriptor_ws_b7876bd3c094d103, []int{3}
} }
func (m *UserInfo) XXX_Unmarshal(b []byte) error { func (m *UserInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UserInfo.Unmarshal(m, b) return xxx_messageInfo_UserInfo.Unmarshal(m, b)
@ -426,6 +420,20 @@ func (m *UserInfo) GetEx() string {
return "" return ""
} }
func (m *UserInfo) GetCreateTime() int64 {
if m != nil {
return m.CreateTime
}
return 0
}
func (m *UserInfo) GetAppMangerLevel() int32 {
if m != nil {
return m.AppMangerLevel
}
return 0
}
type FriendInfo struct { type FriendInfo struct {
OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"`
Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"`
@ -443,7 +451,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} }
func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (m *FriendInfo) String() string { return proto.CompactTextString(m) }
func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) ProtoMessage() {}
func (*FriendInfo) Descriptor() ([]byte, []int) { func (*FriendInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{4} return fileDescriptor_ws_b7876bd3c094d103, []int{4}
} }
func (m *FriendInfo) XXX_Unmarshal(b []byte) error { func (m *FriendInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendInfo.Unmarshal(m, b) return xxx_messageInfo_FriendInfo.Unmarshal(m, b)
@ -515,10 +523,10 @@ func (m *FriendInfo) GetEx() string {
type BlackInfo struct { type BlackInfo struct {
OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"`
CreateTime int64 `protobuf:"varint,2,opt,name=CreateTime" json:"CreateTime,omitempty"` CreateTime int64 `protobuf:"varint,2,opt,name=CreateTime" json:"CreateTime,omitempty"`
BlackUserInfo *PublicUserInfo `protobuf:"bytes,4,opt,name=BlackUserInfo" json:"BlackUserInfo,omitempty"` BlackUserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=BlackUserInfo" json:"BlackUserInfo,omitempty"`
AddSource int32 `protobuf:"varint,5,opt,name=AddSource" json:"AddSource,omitempty"` AddSource int32 `protobuf:"varint,4,opt,name=AddSource" json:"AddSource,omitempty"`
OperatorUserID string `protobuf:"bytes,6,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` OperatorUserID string `protobuf:"bytes,5,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"`
Ex string `protobuf:"bytes,7,opt,name=Ex" json:"Ex,omitempty"` Ex string `protobuf:"bytes,6,opt,name=Ex" json:"Ex,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -528,7 +536,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} }
func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (m *BlackInfo) String() string { return proto.CompactTextString(m) }
func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) ProtoMessage() {}
func (*BlackInfo) Descriptor() ([]byte, []int) { func (*BlackInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{5} return fileDescriptor_ws_b7876bd3c094d103, []int{5}
} }
func (m *BlackInfo) XXX_Unmarshal(b []byte) error { func (m *BlackInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BlackInfo.Unmarshal(m, b) return xxx_messageInfo_BlackInfo.Unmarshal(m, b)
@ -609,7 +617,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} }
func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (m *GroupRequest) String() string { return proto.CompactTextString(m) }
func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) ProtoMessage() {}
func (*GroupRequest) Descriptor() ([]byte, []int) { func (*GroupRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{6} return fileDescriptor_ws_b7876bd3c094d103, []int{6}
} }
func (m *GroupRequest) XXX_Unmarshal(b []byte) error { func (m *GroupRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupRequest.Unmarshal(m, b) return xxx_messageInfo_GroupRequest.Unmarshal(m, b)
@ -711,7 +719,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} }
func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (m *FriendRequest) String() string { return proto.CompactTextString(m) }
func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) ProtoMessage() {}
func (*FriendRequest) Descriptor() ([]byte, []int) { func (*FriendRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{7} return fileDescriptor_ws_b7876bd3c094d103, []int{7}
} }
func (m *FriendRequest) XXX_Unmarshal(b []byte) error { func (m *FriendRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendRequest.Unmarshal(m, b) return xxx_messageInfo_FriendRequest.Unmarshal(m, b)
@ -810,7 +818,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe
func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) }
func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) ProtoMessage() {}
func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{8} return fileDescriptor_ws_b7876bd3c094d103, []int{8}
} }
func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b)
@ -885,7 +893,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq
func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) }
func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) ProtoMessage() {}
func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{9} return fileDescriptor_ws_b7876bd3c094d103, []int{9}
} }
func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b)
@ -940,7 +948,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} }
func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) }
func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) ProtoMessage() {}
func (*PullMessageReq) Descriptor() ([]byte, []int) { func (*PullMessageReq) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{10} return fileDescriptor_ws_b7876bd3c094d103, []int{10}
} }
func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { func (m *PullMessageReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) return xxx_messageInfo_PullMessageReq.Unmarshal(m, b)
@ -1004,7 +1012,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} }
func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) }
func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) ProtoMessage() {}
func (*PullMessageResp) Descriptor() ([]byte, []int) { func (*PullMessageResp) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{11} return fileDescriptor_ws_b7876bd3c094d103, []int{11}
} }
func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { func (m *PullMessageResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) return xxx_messageInfo_PullMessageResp.Unmarshal(m, b)
@ -1076,7 +1084,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} }
func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) ProtoMessage() {}
func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{12} return fileDescriptor_ws_b7876bd3c094d103, []int{12}
} }
func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b)
@ -1108,7 +1116,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} }
func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) ProtoMessage() {}
func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{13} return fileDescriptor_ws_b7876bd3c094d103, []int{13}
} }
func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b)
@ -1156,7 +1164,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} }
func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (m *GatherFormat) String() string { return proto.CompactTextString(m) }
func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) ProtoMessage() {}
func (*GatherFormat) Descriptor() ([]byte, []int) { func (*GatherFormat) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{14} return fileDescriptor_ws_b7876bd3c094d103, []int{14}
} }
func (m *GatherFormat) XXX_Unmarshal(b []byte) error { func (m *GatherFormat) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GatherFormat.Unmarshal(m, b) return xxx_messageInfo_GatherFormat.Unmarshal(m, b)
@ -1203,7 +1211,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} }
func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) }
func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) ProtoMessage() {}
func (*UserSendMsgResp) Descriptor() ([]byte, []int) { func (*UserSendMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{15} return fileDescriptor_ws_b7876bd3c094d103, []int{15}
} }
func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b)
@ -1272,7 +1280,7 @@ func (m *MsgData) Reset() { *m = MsgData{} }
func (m *MsgData) String() string { return proto.CompactTextString(m) } func (m *MsgData) String() string { return proto.CompactTextString(m) }
func (*MsgData) ProtoMessage() {} func (*MsgData) ProtoMessage() {}
func (*MsgData) Descriptor() ([]byte, []int) { func (*MsgData) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{16} return fileDescriptor_ws_b7876bd3c094d103, []int{16}
} }
func (m *MsgData) XXX_Unmarshal(b []byte) error { func (m *MsgData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgData.Unmarshal(m, b) return xxx_messageInfo_MsgData.Unmarshal(m, b)
@ -1433,7 +1441,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} }
func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) }
func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) ProtoMessage() {}
func (*OfflinePushInfo) Descriptor() ([]byte, []int) { func (*OfflinePushInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{17} return fileDescriptor_ws_b7876bd3c094d103, []int{17}
} }
func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b)
@ -1500,7 +1508,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} }
func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (m *TipsComm) String() string { return proto.CompactTextString(m) }
func (*TipsComm) ProtoMessage() {} func (*TipsComm) ProtoMessage() {}
func (*TipsComm) Descriptor() ([]byte, []int) { func (*TipsComm) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{18} return fileDescriptor_ws_b7876bd3c094d103, []int{18}
} }
func (m *TipsComm) XXX_Unmarshal(b []byte) error { func (m *TipsComm) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TipsComm.Unmarshal(m, b) return xxx_messageInfo_TipsComm.Unmarshal(m, b)
@ -1549,7 +1557,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} }
func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) }
func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) ProtoMessage() {}
func (*MemberEnterTips) Descriptor() ([]byte, []int) { func (*MemberEnterTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{19} return fileDescriptor_ws_b7876bd3c094d103, []int{19}
} }
func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b)
@ -1604,7 +1612,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} }
func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) }
func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) ProtoMessage() {}
func (*MemberLeaveTips) Descriptor() ([]byte, []int) { func (*MemberLeaveTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{20} return fileDescriptor_ws_b7876bd3c094d103, []int{20}
} }
func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b)
@ -1659,7 +1667,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} }
func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) }
func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) ProtoMessage() {}
func (*MemberInvitedTips) Descriptor() ([]byte, []int) { func (*MemberInvitedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{21} return fileDescriptor_ws_b7876bd3c094d103, []int{21}
} }
func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b)
@ -1721,7 +1729,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} }
func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) }
func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) ProtoMessage() {}
func (*MemberKickedTips) Descriptor() ([]byte, []int) { func (*MemberKickedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{22} return fileDescriptor_ws_b7876bd3c094d103, []int{22}
} }
func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b)
@ -1784,7 +1792,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} }
func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) }
func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) ProtoMessage() {}
func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{23} return fileDescriptor_ws_b7876bd3c094d103, []int{23}
} }
func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b)
@ -1853,7 +1861,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} }
func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) }
func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) ProtoMessage() {}
func (*GroupCreatedTips) Descriptor() ([]byte, []int) { func (*GroupCreatedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{24} return fileDescriptor_ws_b7876bd3c094d103, []int{24}
} }
func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b)
@ -1914,7 +1922,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} }
func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) }
func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) ProtoMessage() {}
func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{25} return fileDescriptor_ws_b7876bd3c094d103, []int{25}
} }
func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b)
@ -1968,7 +1976,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi
func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) }
func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) ProtoMessage() {}
func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{26} return fileDescriptor_ws_b7876bd3c094d103, []int{26}
} }
func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b)
@ -2023,7 +2031,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi
func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) }
func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) ProtoMessage() {}
func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{27} return fileDescriptor_ws_b7876bd3c094d103, []int{27}
} }
func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b)
@ -2084,7 +2092,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} }
func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (m *FriendApplication) String() string { return proto.CompactTextString(m) }
func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) ProtoMessage() {}
func (*FriendApplication) Descriptor() ([]byte, []int) { func (*FriendApplication) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{28} return fileDescriptor_ws_b7876bd3c094d103, []int{28}
} }
func (m *FriendApplication) XXX_Unmarshal(b []byte) error { func (m *FriendApplication) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendApplication.Unmarshal(m, b) return xxx_messageInfo_FriendApplication.Unmarshal(m, b)
@ -2137,7 +2145,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} }
func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (m *FromToUserID) String() string { return proto.CompactTextString(m) }
func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) ProtoMessage() {}
func (*FromToUserID) Descriptor() ([]byte, []int) { func (*FromToUserID) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{29} return fileDescriptor_ws_b7876bd3c094d103, []int{29}
} }
func (m *FromToUserID) XXX_Unmarshal(b []byte) error { func (m *FromToUserID) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FromToUserID.Unmarshal(m, b) return xxx_messageInfo_FromToUserID.Unmarshal(m, b)
@ -2183,7 +2191,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd
func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) }
func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) ProtoMessage() {}
func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{30} return fileDescriptor_ws_b7876bd3c094d103, []int{30}
} }
func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b)
@ -2222,7 +2230,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio
func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) }
func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) ProtoMessage() {}
func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{31} return fileDescriptor_ws_b7876bd3c094d103, []int{31}
} }
func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b)
@ -2263,7 +2271,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} }
func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) }
func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) ProtoMessage() {}
func (*FriendAddedTips) Descriptor() ([]byte, []int) { func (*FriendAddedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{32} return fileDescriptor_ws_b7876bd3c094d103, []int{32}
} }
func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b)
@ -2316,7 +2324,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} }
func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) }
func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) ProtoMessage() {}
func (*FriendDeletedTips) Descriptor() ([]byte, []int) { func (*FriendDeletedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{33} return fileDescriptor_ws_b7876bd3c094d103, []int{33}
} }
func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b)
@ -2354,7 +2362,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} }
func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) }
func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) ProtoMessage() {}
func (*BlackAddedTips) Descriptor() ([]byte, []int) { func (*BlackAddedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{34} return fileDescriptor_ws_b7876bd3c094d103, []int{34}
} }
func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b)
@ -2392,7 +2400,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} }
func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) }
func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) ProtoMessage() {}
func (*BlackDeletedTips) Descriptor() ([]byte, []int) { func (*BlackDeletedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{35} return fileDescriptor_ws_b7876bd3c094d103, []int{35}
} }
func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b)
@ -2430,7 +2438,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} }
func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) }
func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) ProtoMessage() {}
func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{36} return fileDescriptor_ws_b7876bd3c094d103, []int{36}
} }
func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b)
@ -2469,7 +2477,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} }
func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) }
func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) ProtoMessage() {}
func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_a1fbf2797043d7f3, []int{37} return fileDescriptor_ws_b7876bd3c094d103, []int{37}
} }
func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b)
@ -2538,128 +2546,129 @@ func init() {
proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips")
} }
func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_a1fbf2797043d7f3) } func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_b7876bd3c094d103) }
var fileDescriptor_ws_a1fbf2797043d7f3 = []byte{ var fileDescriptor_ws_b7876bd3c094d103 = []byte{
// 1916 bytes of a gzipped FileDescriptorProto // 1922 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4f, 0x8f, 0x1b, 0x49, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x8f, 0x1b, 0x49,
0x15, 0x57, 0xb7, 0xc7, 0x1e, 0xcf, 0xb3, 0x67, 0x3c, 0xe9, 0x24, 0xb3, 0x4d, 0x58, 0x45, 0xa6, 0x15, 0x57, 0xb7, 0xdd, 0xfe, 0x78, 0xf6, 0x8c, 0x27, 0x9d, 0x64, 0xb6, 0x09, 0xab, 0xc8, 0xb4,
0xb5, 0x42, 0x23, 0x04, 0x59, 0x29, 0x2b, 0xa4, 0x25, 0x68, 0x81, 0xf9, 0x9b, 0x3f, 0xc4, 0xf1, 0x56, 0x68, 0x84, 0x20, 0x2b, 0x65, 0x85, 0xb4, 0x04, 0x2d, 0xe0, 0x19, 0xcf, 0xe4, 0x83, 0x38,
0xd0, 0x9e, 0xc0, 0x81, 0x43, 0xd4, 0x71, 0x97, 0x3d, 0x2d, 0xb7, 0xab, 0xed, 0xae, 0xee, 0x49, 0x1e, 0xda, 0x13, 0x38, 0x70, 0x88, 0x3a, 0xee, 0xb2, 0xa7, 0xe5, 0x76, 0xb5, 0xdd, 0xd5, 0x3d,
0x72, 0xe1, 0xcc, 0x17, 0xe0, 0xb4, 0x02, 0x71, 0x43, 0x5c, 0x39, 0xf0, 0x31, 0xf8, 0x02, 0x5c, 0x49, 0x2e, 0x9c, 0xf9, 0x07, 0xe0, 0xb2, 0x02, 0x71, 0x43, 0x5c, 0x39, 0xc0, 0x3f, 0x84, 0x38,
0x11, 0x07, 0x24, 0x4e, 0x88, 0x13, 0x1c, 0xd0, 0x7b, 0x55, 0xdd, 0x5d, 0x65, 0x3b, 0x59, 0x4f, 0x20, 0x71, 0x42, 0x9c, 0xe0, 0x80, 0x5e, 0x55, 0x75, 0x77, 0x95, 0xed, 0x4c, 0x3c, 0x99, 0x28,
0x12, 0x72, 0xd9, 0x9b, 0xdf, 0xaf, 0xdf, 0x7b, 0xf5, 0xfe, 0xd5, 0xab, 0x57, 0x65, 0xe8, 0x88, 0x17, 0x6e, 0x7e, 0xbf, 0x7e, 0xf5, 0xbe, 0xeb, 0xd5, 0xab, 0x32, 0x74, 0x58, 0x30, 0x7b, 0xf1,
0x70, 0xf2, 0xec, 0x85, 0xf8, 0xf4, 0x85, 0xb8, 0x33, 0x4b, 0x93, 0x2c, 0x71, 0x5a, 0xc9, 0x8c, 0x8a, 0x7d, 0xfe, 0x8a, 0xdd, 0x5b, 0x24, 0x71, 0x1a, 0xdb, 0xad, 0x78, 0x41, 0xe8, 0x8b, 0x70,
0xf1, 0x67, 0xd1, 0xf4, 0x99, 0x08, 0x27, 0xde, 0xbf, 0x6d, 0xd8, 0xba, 0x9f, 0x26, 0xf9, 0xec, 0xfe, 0x82, 0x05, 0x33, 0xf7, 0xdf, 0x26, 0x34, 0x1f, 0x26, 0x71, 0xb6, 0x78, 0x4c, 0x27, 0xb1,
0x21, 0x1f, 0x25, 0x8e, 0x0b, 0x9b, 0x92, 0x38, 0x76, 0xad, 0xae, 0xb5, 0xbf, 0xe5, 0x17, 0xa4, 0xed, 0x40, 0x5d, 0x10, 0x7d, 0xc7, 0xe8, 0x1a, 0x07, 0x4d, 0x2f, 0x27, 0xed, 0x4f, 0x25, 0xdb,
0xf3, 0xb1, 0x62, 0x7b, 0x12, 0x4c, 0x99, 0x6b, 0xd3, 0xb7, 0x0a, 0x70, 0x3c, 0x68, 0x3f, 0x49, 0x33, 0x7f, 0x4e, 0x1c, 0x93, 0x7f, 0x2b, 0x01, 0xdb, 0x85, 0xf6, 0xb3, 0x38, 0x0d, 0x27, 0xe1,
0xb2, 0x68, 0x14, 0x0d, 0x83, 0x2c, 0x4a, 0xb8, 0x5b, 0x23, 0x06, 0x03, 0x43, 0x9e, 0x87, 0x3c, 0xd8, 0x4f, 0xc3, 0x98, 0x3a, 0x15, 0xce, 0xa0, 0x61, 0xc8, 0xf3, 0x98, 0xa6, 0x49, 0x1c, 0x64,
0x4b, 0x93, 0x30, 0x1f, 0x12, 0xcf, 0x86, 0xe4, 0xd1, 0x31, 0x5c, 0xff, 0x34, 0x18, 0xb2, 0xa7, 0x63, 0xce, 0x53, 0x15, 0x3c, 0x2a, 0x86, 0xfa, 0x4f, 0xfc, 0x31, 0x79, 0x9e, 0x44, 0x8e, 0x25,
0x69, 0xec, 0xd6, 0xe5, 0xfa, 0x8a, 0x74, 0xba, 0xd0, 0xea, 0xbf, 0xe0, 0x2c, 0x7d, 0x2a, 0x58, 0xf4, 0x4b, 0xd2, 0xee, 0x42, 0x6b, 0xf8, 0x8a, 0x92, 0xe4, 0x39, 0x23, 0xc9, 0xe3, 0xbe, 0x53,
0xfa, 0xf0, 0xd8, 0x6d, 0xd0, 0x57, 0x1d, 0x72, 0x6e, 0x03, 0x1c, 0xa5, 0x2c, 0xc8, 0xd8, 0x79, 0xe3, 0x5f, 0x55, 0xc8, 0xbe, 0x0b, 0x70, 0x94, 0x10, 0x3f, 0x25, 0x67, 0xe1, 0x9c, 0x38, 0xf5,
0x34, 0x65, 0xee, 0x66, 0xd7, 0xda, 0xaf, 0xf9, 0x1a, 0x82, 0x1a, 0x7a, 0x6c, 0xfa, 0x9c, 0xa5, 0xae, 0x71, 0x50, 0xf1, 0x14, 0x04, 0x25, 0x0c, 0xc8, 0xfc, 0x25, 0x49, 0x8e, 0xe2, 0x8c, 0xa6,
0x47, 0x49, 0xce, 0x33, 0xb7, 0xd9, 0xb5, 0xf6, 0xb7, 0x7d, 0x1d, 0x72, 0x76, 0xc0, 0x3e, 0x79, 0x4e, 0xa3, 0x6b, 0x1c, 0xec, 0x78, 0x2a, 0x64, 0xef, 0x82, 0x79, 0xfc, 0xda, 0x69, 0x72, 0xd1,
0xe9, 0x6e, 0x91, 0x6a, 0xfb, 0xe4, 0xa5, 0xb3, 0x07, 0x8d, 0x41, 0x16, 0x64, 0xb9, 0x70, 0xa1, 0xe6, 0xf1, 0x6b, 0x7b, 0x1f, 0x6a, 0xa3, 0xd4, 0x4f, 0x33, 0xe6, 0x40, 0xd7, 0x38, 0xb0, 0x3c,
0x6b, 0xed, 0xd7, 0x7d, 0x45, 0x39, 0x9f, 0xc0, 0x36, 0xe9, 0x4d, 0x0a, 0x6b, 0x5a, 0x24, 0x62, 0x49, 0xd9, 0x9f, 0xc1, 0x0e, 0x97, 0x1b, 0xe7, 0xd6, 0xb4, 0xf8, 0x12, 0x1d, 0x2c, 0x22, 0x76,
0x82, 0x65, 0xc4, 0xce, 0x5f, 0xcd, 0x98, 0xdb, 0x26, 0x05, 0x15, 0xe0, 0xfd, 0xd5, 0x86, 0xeb, 0xf6, 0x66, 0x41, 0x9c, 0x36, 0x17, 0x50, 0x02, 0xee, 0x5f, 0x4d, 0xb8, 0xc9, 0x29, 0x61, 0xc0,
0x44, 0x49, 0x03, 0x4e, 0xf3, 0x38, 0xfe, 0x8a, 0x0c, 0xec, 0x41, 0x43, 0x2d, 0x27, 0xc3, 0xdf, 0x49, 0x16, 0x45, 0xef, 0xc8, 0xc0, 0x3e, 0xd4, 0xa4, 0x3a, 0x11, 0xfe, 0x5a, 0xa9, 0x27, 0x89,
0xa8, 0xd6, 0x49, 0x93, 0x98, 0x3d, 0x66, 0x97, 0x2c, 0xa6, 0xc0, 0xd7, 0xfd, 0x0a, 0x70, 0x6e, 0x23, 0xf2, 0x94, 0x5c, 0x90, 0x88, 0x07, 0xde, 0xf2, 0x4a, 0xc0, 0xbe, 0x03, 0x8d, 0x27, 0x71,
0x41, 0xf3, 0x51, 0x12, 0x71, 0x8a, 0xc9, 0x06, 0xc5, 0xa4, 0xa4, 0xf1, 0xdb, 0x93, 0x68, 0x38, 0x48, 0x79, 0x4c, 0xaa, 0x3c, 0x26, 0x05, 0x8d, 0xdf, 0x9e, 0x85, 0xe3, 0x19, 0x4f, 0xa9, 0x08,
0xa1, 0x94, 0xca, 0x70, 0x97, 0xb4, 0x9e, 0x89, 0x86, 0x99, 0x09, 0x0f, 0xda, 0xa7, 0x69, 0xc4, 0x77, 0x41, 0xab, 0x99, 0xa8, 0xe9, 0x99, 0xf8, 0x36, 0xec, 0xf6, 0x16, 0x8b, 0x81, 0x4f, 0xa7,
0x78, 0xe8, 0xb3, 0x69, 0x90, 0x4e, 0x28, 0xd2, 0x5b, 0xbe, 0x81, 0x39, 0xdf, 0x86, 0x9d, 0x83, 0x24, 0x11, 0x4a, 0xeb, 0x5c, 0xe9, 0x0a, 0x8a, 0xf9, 0x40, 0x4d, 0xa3, 0x38, 0x4b, 0xc6, 0x84,
0xd9, 0xac, 0x17, 0xf0, 0x31, 0x4b, 0xa5, 0x61, 0x4d, 0x32, 0x6c, 0x01, 0xc5, 0x9c, 0xa1, 0x35, 0x87, 0xdb, 0xf2, 0x14, 0x04, 0xe5, 0x0c, 0x17, 0x24, 0x51, 0xc2, 0x28, 0x22, 0xbf, 0x82, 0xca,
0x83, 0x24, 0x4f, 0x87, 0x8c, 0x22, 0x5f, 0xf7, 0x35, 0x04, 0xf5, 0xf4, 0x67, 0x2c, 0xd5, 0x42, 0xac, 0x40, 0x9e, 0x15, 0xf7, 0xf7, 0x06, 0xec, 0x9e, 0x66, 0x2f, 0xa3, 0x70, 0xcc, 0x19, 0x30,
0x0d, 0xb4, 0xda, 0x02, 0xaa, 0x32, 0xd7, 0x2a, 0x32, 0xe7, 0xfd, 0xce, 0x82, 0x9d, 0xb3, 0xfc, 0x68, 0x65, 0x68, 0x0c, 0x2d, 0x34, 0xd2, 0x41, 0x5a, 0xd6, 0x6c, 0x41, 0xab, 0x0e, 0x56, 0x74,
0x79, 0x1c, 0x0d, 0x89, 0x01, 0x03, 0x5b, 0x85, 0xcf, 0x32, 0xc2, 0xa7, 0x82, 0xc0, 0xab, 0xba, 0x07, 0xf7, 0xa1, 0xf6, 0x90, 0xd0, 0x80, 0x24, 0x3c, 0x60, 0x96, 0x27, 0xa9, 0x0d, 0x8e, 0x5b,
0x2e, 0x69, 0x3d, 0x08, 0x35, 0x33, 0x08, 0x7b, 0xd0, 0xb8, 0xcf, 0x78, 0xc8, 0x52, 0x0a, 0x6a, 0x9b, 0x1c, 0x77, 0x7f, 0x6b, 0x42, 0xe3, 0x23, 0x9b, 0xd6, 0x85, 0xd6, 0xe9, 0x79, 0x4c, 0xc9,
0xdd, 0x57, 0xd4, 0x0a, 0xc7, 0xeb, 0xab, 0x1c, 0xf7, 0xfe, 0x62, 0x41, 0xf3, 0x03, 0x9b, 0xd6, 0xb3, 0x0c, 0x8b, 0x49, 0x26, 0x53, 0x85, 0xec, 0x5b, 0x60, 0x1d, 0x86, 0x49, 0x7a, 0x2e, 0xb3,
0x85, 0xd6, 0xd9, 0x45, 0xc2, 0xd9, 0x93, 0x1c, 0x0b, 0x4e, 0x25, 0x5c, 0x87, 0x9c, 0x1b, 0x50, 0x29, 0x08, 0x44, 0x8f, 0xe7, 0x7e, 0x28, 0x52, 0xd8, 0xf4, 0x04, 0x21, 0x23, 0xde, 0x28, 0xf6,
0x3f, 0x8c, 0xd2, 0xec, 0x42, 0x65, 0x5c, 0x12, 0x88, 0x9e, 0x4c, 0x83, 0x28, 0x56, 0x89, 0x96, 0x81, 0xbe, 0xb3, 0x9a, 0x6b, 0x3b, 0x6b, 0x3d, 0x30, 0xb0, 0x31, 0x30, 0xff, 0x32, 0x00, 0x4e,
0x84, 0x8a, 0x78, 0xb3, 0x8c, 0xf8, 0xbf, 0x2c, 0x00, 0x59, 0x02, 0xe4, 0xd2, 0xc2, 0x76, 0xb5, 0x92, 0x90, 0xd0, 0x80, 0x87, 0x66, 0x65, 0x4b, 0x1b, 0xeb, 0x5b, 0x7a, 0x1f, 0x6a, 0x1e, 0x99,
0x96, 0xb7, 0xeb, 0x1e, 0x34, 0x54, 0x01, 0xa9, 0x72, 0x56, 0xa5, 0x63, 0x6e, 0xe3, 0xda, 0xd2, 0xfb, 0xc9, 0x2c, 0x2f, 0x79, 0x41, 0xad, 0x18, 0x54, 0x59, 0x33, 0xe8, 0xfb, 0xb9, 0x1e, 0x94,
0x36, 0xfe, 0x7e, 0xb1, 0x0e, 0xea, 0x21, 0x17, 0x5b, 0x77, 0x6f, 0xde, 0xd1, 0x5a, 0xda, 0x9d, 0xc3, 0x43, 0xd5, 0xba, 0x7f, 0xfb, 0x9e, 0xd2, 0xf6, 0xee, 0xe5, 0xf9, 0xf1, 0x14, 0x46, 0xdc,
0x22, 0xae, 0xbe, 0xc6, 0x88, 0xbb, 0xe4, 0x20, 0x0c, 0x55, 0xa1, 0xc9, 0x9c, 0x54, 0xc0, 0x8a, 0x49, 0xbd, 0x20, 0x90, 0x05, 0x2b, 0x72, 0x5b, 0x02, 0x1b, 0xea, 0xb5, 0x76, 0x49, 0xbd, 0xd6,
0x3a, 0x6b, 0xbc, 0xa1, 0xce, 0x36, 0x4b, 0xaf, 0xff, 0x6e, 0xc1, 0xd6, 0x61, 0x1c, 0x0c, 0x27, 0x8b, 0x7a, 0xfd, 0xbb, 0x01, 0xcd, 0xc3, 0xc8, 0x1f, 0xcf, 0xb6, 0x74, 0x5a, 0x77, 0xce, 0x5c,
0x6b, 0x3a, 0x6d, 0x3a, 0x67, 0x2f, 0x39, 0x77, 0x00, 0xdb, 0xa4, 0xae, 0x70, 0x41, 0xf9, 0xf7, 0x73, 0xae, 0x07, 0x3b, 0x5c, 0x5c, 0xee, 0x02, 0xf7, 0xbf, 0x75, 0xff, 0x9b, 0x9a, 0x7f, 0xfa,
0x4d, 0xc3, 0x3f, 0xb3, 0xb0, 0x7d, 0x53, 0xe2, 0xff, 0xe4, 0xe8, 0xaf, 0x6d, 0x68, 0x53, 0x23, 0x06, 0xf1, 0xf4, 0x15, 0xba, 0xa3, 0xd5, 0x77, 0x3b, 0x6a, 0x5d, 0xe2, 0x68, 0xad, 0x70, 0xf4,
0xf2, 0xd9, 0x3c, 0x67, 0x22, 0x7b, 0x6d, 0xcd, 0x6a, 0xfd, 0xcb, 0x36, 0xfb, 0x97, 0x07, 0xed, 0xd7, 0x26, 0xb4, 0x79, 0xb3, 0xf2, 0xc8, 0x32, 0x23, 0x2c, 0x7d, 0x6b, 0xed, 0x2b, 0x3d, 0xce,
0x07, 0x01, 0x0f, 0x63, 0xe6, 0x33, 0x91, 0xc7, 0x59, 0x71, 0x46, 0xe8, 0x98, 0x2c, 0x8a, 0x79, 0xd4, 0x7b, 0x9c, 0x0b, 0xed, 0x47, 0x3e, 0x0d, 0x22, 0xe2, 0x11, 0x96, 0x45, 0x69, 0x7e, 0x8e,
0x4f, 0x8c, 0xd5, 0xe9, 0xa0, 0x28, 0x74, 0x4a, 0xf2, 0xe1, 0x27, 0x59, 0xb9, 0x15, 0x80, 0x6b, 0xa8, 0x98, 0x28, 0x8a, 0xe5, 0x80, 0x4d, 0xe5, 0x09, 0x22, 0x29, 0x74, 0x4a, 0xf0, 0xe1, 0x27,
0xfa, 0x6c, 0x4e, 0x21, 0x6d, 0x50, 0x48, 0x0b, 0xb2, 0x5a, 0x53, 0xd9, 0xba, 0xa9, 0xaf, 0x59, 0x61, 0x71, 0x09, 0xa0, 0x4e, 0x8f, 0x2c, 0x79, 0x48, 0x6b, 0x3c, 0xa4, 0x39, 0x59, 0xea, 0x94,
0xe5, 0x44, 0xd2, 0xa4, 0xa0, 0x29, 0x73, 0x52, 0x21, 0x8b, 0xa7, 0x82, 0xf7, 0xa5, 0x0d, 0xdb, 0xb6, 0xd6, 0x55, 0x9d, 0x65, 0x4e, 0x04, 0xcd, 0x05, 0x34, 0x44, 0x4e, 0x4a, 0x64, 0xf5, 0xe4,
0x45, 0xb3, 0x93, 0xb1, 0xb8, 0x8d, 0x25, 0x99, 0x4c, 0x8d, 0x78, 0x68, 0x08, 0xee, 0xe3, 0xf3, 0x70, 0xbf, 0x36, 0x61, 0x47, 0x14, 0x56, 0x1e, 0x8b, 0xbb, 0x58, 0x92, 0xf1, 0x5c, 0x8b, 0x87,
0xc4, 0xe8, 0xdd, 0x25, 0xbd, 0x32, 0x2a, 0xf5, 0x35, 0xa3, 0x62, 0x56, 0x53, 0x7d, 0xa9, 0x9a, 0x82, 0x60, 0x3f, 0x38, 0x8b, 0xb5, 0xfe, 0x5e, 0xd0, 0x1b, 0xa3, 0x62, 0x6d, 0x19, 0x15, 0xbd,
0x3e, 0x81, 0x6d, 0xa9, 0xc7, 0xcc, 0xb5, 0x09, 0x9a, 0xb1, 0xdd, 0x5c, 0x8c, 0xed, 0x55, 0xa3, 0x9a, 0xac, 0xb5, 0x6a, 0xfa, 0x0c, 0x76, 0x84, 0x1c, 0xbd, 0xa8, 0x75, 0x50, 0x8f, 0x6d, 0x7d,
0xf3, 0x5f, 0x0b, 0xdc, 0xb3, 0x3c, 0x8e, 0x7b, 0x4c, 0x88, 0x60, 0xcc, 0x0e, 0x5f, 0x0d, 0xd8, 0x35, 0xb6, 0x57, 0x8d, 0xce, 0x7f, 0x0d, 0x70, 0x4e, 0xb3, 0x28, 0x1a, 0x10, 0xc6, 0xfc, 0x29,
0xfc, 0x71, 0x24, 0x32, 0x9f, 0x89, 0x19, 0x26, 0x8a, 0xa5, 0xe9, 0x51, 0x12, 0x32, 0x8a, 0x52, 0x39, 0x7c, 0x33, 0x22, 0xcb, 0xa7, 0x21, 0x4b, 0x3d, 0xc2, 0x16, 0x98, 0x28, 0x92, 0x24, 0x47,
0xdd, 0x2f, 0x48, 0x74, 0x91, 0xa5, 0x29, 0x5a, 0xa0, 0xba, 0x81, 0xa4, 0x10, 0x9f, 0x06, 0x2f, 0x71, 0x40, 0x78, 0x94, 0x2c, 0x2f, 0x27, 0xd1, 0x45, 0x92, 0x24, 0x68, 0x81, 0xec, 0x06, 0x82,
0x07, 0x6c, 0xae, 0x3a, 0x81, 0xa2, 0x08, 0x8f, 0x38, 0xe2, 0x1b, 0x0a, 0x27, 0xca, 0xf9, 0x31, 0x42, 0x7c, 0xee, 0xbf, 0x1e, 0x91, 0xa5, 0xec, 0x04, 0x92, 0xe2, 0x78, 0x48, 0x11, 0xaf, 0x4a,
0x6c, 0x8b, 0x88, 0x8f, 0x65, 0x72, 0x65, 0xb1, 0xd4, 0xf6, 0x5b, 0x77, 0xbf, 0x61, 0x6c, 0xa0, 0x9c, 0x53, 0xf6, 0x8f, 0x61, 0x87, 0x85, 0x74, 0x2a, 0x92, 0x2b, 0x8a, 0xa5, 0x72, 0xd0, 0xba,
0xfb, 0x41, 0x76, 0xc1, 0xd2, 0xd3, 0x24, 0x9d, 0x06, 0x99, 0x6f, 0xf2, 0x3b, 0x5f, 0x40, 0x7b, 0xff, 0x0d, 0x6d, 0x03, 0x3d, 0xf4, 0xd3, 0x73, 0x92, 0x9c, 0xc4, 0xc9, 0xdc, 0x4f, 0x3d, 0x9d,
0x8c, 0x05, 0x5b, 0xc8, 0x37, 0xbe, 0x4a, 0xde, 0x60, 0xf7, 0xa6, 0xf0, 0xd1, 0x6a, 0xef, 0xc9, 0xdf, 0xfe, 0x0a, 0xda, 0x53, 0x2c, 0xd8, 0x7c, 0x7d, 0xed, 0x5d, 0xeb, 0x35, 0x76, 0x77, 0x0e,
0xe4, 0xdc, 0xd8, 0x31, 0x92, 0xc2, 0xae, 0x91, 0xd0, 0xe6, 0x8b, 0x12, 0x5e, 0x16, 0x88, 0x0e, 0x9f, 0x6c, 0xf6, 0x9e, 0x9b, 0x9c, 0x69, 0x3b, 0x46, 0x50, 0xd8, 0x35, 0x62, 0xbe, 0xf9, 0xc2,
0x61, 0xd8, 0x84, 0xd4, 0xe3, 0xd6, 0xba, 0x35, 0xac, 0x6f, 0x45, 0x7a, 0xbf, 0xc2, 0x63, 0xae, 0x98, 0x16, 0x05, 0xa2, 0x42, 0x18, 0x36, 0x26, 0xe4, 0x38, 0x95, 0x6e, 0x05, 0xeb, 0x5b, 0x92,
0x5c, 0xee, 0x4d, 0xab, 0xdc, 0x82, 0xa6, 0x60, 0xf3, 0x43, 0x36, 0x8e, 0xb8, 0xea, 0x3b, 0x25, 0xee, 0xaf, 0xf0, 0xb8, 0x2c, 0xd4, 0x5d, 0xa6, 0xe5, 0x0e, 0x34, 0x18, 0x59, 0x1e, 0x92, 0x69,
0x8d, 0x32, 0x82, 0xcd, 0x4f, 0x78, 0x58, 0x04, 0x59, 0x52, 0x8b, 0x96, 0x6d, 0x2c, 0x59, 0x86, 0x48, 0x65, 0xdf, 0x29, 0x68, 0x5c, 0xc3, 0xc8, 0xf2, 0x98, 0x06, 0x79, 0x90, 0x05, 0xb5, 0x6a,
0x5d, 0xbf, 0x63, 0x18, 0xf0, 0xb5, 0x48, 0xf2, 0x0d, 0x70, 0xee, 0xb3, 0xac, 0x17, 0xbc, 0x3c, 0x59, 0x75, 0xcd, 0x32, 0xec, 0xfa, 0x1d, 0xcd, 0x80, 0xff, 0x8b, 0x24, 0xdf, 0x02, 0xfb, 0x21,
0xe0, 0x61, 0x8f, 0x4c, 0xf2, 0xd9, 0xdc, 0x3b, 0x81, 0xeb, 0x4b, 0xa8, 0x98, 0x69, 0xce, 0x59, 0x49, 0x07, 0xfe, 0xeb, 0x1e, 0x0d, 0x06, 0xdc, 0x24, 0x8f, 0x2c, 0xdd, 0x63, 0xb8, 0xb9, 0x86,
0xaf, 0x71, 0xce, 0xd6, 0x9d, 0xf3, 0x1e, 0x40, 0x5b, 0x5f, 0x1a, 0x37, 0x58, 0x14, 0xaa, 0x64, 0xb2, 0x85, 0xe2, 0x9c, 0xf1, 0x16, 0xe7, 0x4c, 0xd5, 0x39, 0xf7, 0x11, 0xb4, 0x55, 0xd5, 0xb8,
0xda, 0x51, 0xe8, 0xec, 0xc3, 0x46, 0x8c, 0x95, 0x60, 0x93, 0xcd, 0x37, 0x0c, 0x9b, 0x7b, 0x62, 0xc1, 0xc2, 0x40, 0x26, 0xd3, 0x0c, 0x03, 0xfb, 0x00, 0xaa, 0x11, 0x56, 0x82, 0xc9, 0x6d, 0xbe,
0x7c, 0x1c, 0x64, 0x81, 0x4f, 0x1c, 0xde, 0x1c, 0x3a, 0x68, 0xf1, 0x80, 0xf1, 0xb0, 0x27, 0xc6, 0xa5, 0xd9, 0x3c, 0x60, 0xd3, 0xbe, 0x9f, 0xfa, 0x1e, 0xe7, 0x70, 0x97, 0xd0, 0x41, 0x8b, 0x47,
0x64, 0x4c, 0x17, 0x5a, 0x03, 0x96, 0x5e, 0x92, 0x1b, 0xd5, 0x09, 0xa5, 0x41, 0xc8, 0x71, 0x14, 0x84, 0x06, 0x03, 0x36, 0xe5, 0xc6, 0x74, 0xa1, 0x35, 0x22, 0xc9, 0x05, 0x77, 0xa3, 0x3c, 0xa1,
0x47, 0x8c, 0x67, 0x92, 0x43, 0x55, 0xa3, 0x06, 0xc9, 0x4a, 0xe2, 0xa1, 0x76, 0x3c, 0x97, 0xb4, 0x14, 0x08, 0x39, 0x8e, 0xa2, 0x90, 0xd0, 0x54, 0x70, 0xc8, 0x6a, 0x54, 0x20, 0x51, 0x49, 0x34,
0xf7, 0xe7, 0x3a, 0x6c, 0x2a, 0x23, 0x64, 0x55, 0xf1, 0xb0, 0xaa, 0x44, 0x49, 0x21, 0x9e, 0xb2, 0x50, 0x8e, 0xe7, 0x82, 0x76, 0xff, 0x62, 0x41, 0x5d, 0x1a, 0x21, 0xaa, 0x8a, 0x06, 0x65, 0x25,
0xe1, 0x65, 0x35, 0xc7, 0x4a, 0x0a, 0xeb, 0x66, 0xac, 0x4e, 0x0e, 0x35, 0xd1, 0x28, 0x12, 0x6d, 0x0a, 0x0a, 0xf1, 0x84, 0x8c, 0x2f, 0xca, 0x59, 0x57, 0x50, 0x58, 0x37, 0x53, 0x79, 0x72, 0xc8,
0x1a, 0x6a, 0x36, 0xa9, 0x3a, 0xd4, 0x20, 0xe4, 0x10, 0x9a, 0x5f, 0x6a, 0xb6, 0xd1, 0x20, 0xe7, 0xc9, 0x48, 0x92, 0x68, 0xd3, 0x58, 0xb1, 0x49, 0xd6, 0xa1, 0x02, 0x21, 0x07, 0x53, 0xfc, 0x92,
0x3b, 0xb0, 0x2b, 0x68, 0x0e, 0x3a, 0x8b, 0x83, 0x6c, 0x94, 0xa4, 0x53, 0xd5, 0x0e, 0xeb, 0xfe, 0x33, 0x92, 0x02, 0xd9, 0xdf, 0x81, 0x3d, 0xc6, 0xe7, 0xa9, 0xd3, 0xc8, 0x4f, 0x27, 0x71, 0x32,
0x12, 0x8e, 0x87, 0xa4, 0xc4, 0xca, 0xe9, 0x4b, 0xb6, 0xc5, 0x05, 0x14, 0xfb, 0xab, 0x44, 0x68, 0x97, 0xed, 0xd0, 0xf2, 0xd6, 0x70, 0x3c, 0x24, 0x05, 0x56, 0x4c, 0x71, 0xa2, 0x2d, 0xae, 0xa0,
0xf4, 0xf2, 0x1f, 0xab, 0x71, 0xc8, 0x04, 0xa5, 0x6d, 0x42, 0x44, 0x09, 0xa7, 0x9b, 0x80, 0x1c, 0xd8, 0x5f, 0x05, 0xc2, 0x47, 0x38, 0xef, 0xa9, 0x1c, 0xab, 0x74, 0x50, 0xd8, 0xc6, 0x58, 0x18,
0x72, 0x75, 0x08, 0x3d, 0x9f, 0x8a, 0x31, 0x1e, 0x18, 0xea, 0xa2, 0x51, 0x90, 0xe4, 0x79, 0xc2, 0x53, 0x7e, 0x5b, 0x68, 0x72, 0xa5, 0x2a, 0x84, 0x9e, 0xcf, 0xd9, 0x14, 0x0f, 0x0c, 0x39, 0x5c,
0x33, 0xc6, 0x33, 0x92, 0x6d, 0x49, 0x59, 0x0d, 0x42, 0x59, 0x45, 0xd2, 0x1d, 0xa3, 0xed, 0x17, 0xe5, 0x24, 0xf7, 0x3c, 0xa6, 0x29, 0xa1, 0x29, 0x5f, 0xdb, 0x12, 0x6b, 0x15, 0x08, 0xd7, 0x4a,
0x24, 0xf6, 0xf5, 0x51, 0x92, 0x0e, 0x19, 0xf5, 0x8d, 0xed, 0x6e, 0x0d, 0xfb, 0x7a, 0x09, 0x38, 0x92, 0xdf, 0x43, 0xda, 0x5e, 0x4e, 0x62, 0x5f, 0x9f, 0xc4, 0xc9, 0x98, 0xf0, 0xbe, 0xb1, 0xd3,
0xbb, 0x50, 0x13, 0x6c, 0xee, 0xee, 0x50, 0x02, 0xf1, 0xa7, 0x91, 0xd7, 0x8e, 0x99, 0x57, 0x3c, 0xad, 0x60, 0x5f, 0x2f, 0x00, 0x7b, 0x0f, 0x2a, 0x8c, 0x2c, 0x9d, 0x5d, 0x9e, 0x40, 0xfc, 0xa9,
0x05, 0x86, 0xd5, 0x49, 0xb3, 0x2b, 0x4f, 0x81, 0x0a, 0x71, 0x7e, 0x08, 0x9b, 0xfd, 0x19, 0xf6, 0xe5, 0xb5, 0xa3, 0xe7, 0x15, 0x4f, 0x81, 0x71, 0x79, 0xd2, 0xec, 0x89, 0x53, 0xa0, 0x44, 0xec,
0x04, 0xe1, 0x5e, 0xa3, 0xba, 0xfc, 0xd6, 0xaa, 0xba, 0xbc, 0xa3, 0x78, 0x4e, 0x78, 0x96, 0xbe, 0x1f, 0x42, 0x7d, 0xb8, 0xc0, 0x9e, 0xc0, 0x9c, 0x1b, 0xbc, 0x2e, 0xbf, 0xb5, 0xa9, 0x2e, 0xef,
0xf2, 0x0b, 0x09, 0xe7, 0x14, 0x3a, 0xc9, 0x68, 0x14, 0x47, 0x9c, 0x9d, 0xe5, 0xe2, 0x82, 0xc6, 0x49, 0x9e, 0x63, 0x9a, 0x26, 0x6f, 0xbc, 0x7c, 0x85, 0x7d, 0x02, 0x9d, 0x78, 0x32, 0x89, 0x42,
0x1e, 0x87, 0xc6, 0x9e, 0x8f, 0x0d, 0x25, 0x7d, 0x93, 0xc7, 0x5f, 0x14, 0xba, 0x75, 0x0f, 0xda, 0x4a, 0x4e, 0x33, 0x76, 0xce, 0xc7, 0x1e, 0x9b, 0x8f, 0x3d, 0x9f, 0x6a, 0x42, 0x86, 0x3a, 0x8f,
0xfa, 0x02, 0xe8, 0xe2, 0x84, 0xbd, 0x52, 0xd5, 0x87, 0x3f, 0x71, 0x94, 0xbd, 0x0c, 0xe2, 0x5c, 0xb7, 0xba, 0xe8, 0xce, 0x03, 0x68, 0xab, 0x0a, 0xd0, 0xc5, 0x19, 0x79, 0x23, 0xab, 0x0f, 0x7f,
0x4e, 0x5e, 0x4d, 0x5f, 0x12, 0xf7, 0xec, 0xcf, 0x2d, 0xef, 0x37, 0x16, 0x74, 0x16, 0x16, 0x40, 0xe2, 0x48, 0x7c, 0xe1, 0x47, 0x99, 0x98, 0xbc, 0x1a, 0x9e, 0x20, 0x1e, 0x98, 0x5f, 0x1a, 0xee,
0xee, 0xf3, 0x28, 0x8b, 0x99, 0xd2, 0x20, 0x09, 0xc7, 0x81, 0x8d, 0x63, 0x26, 0x86, 0xaa, 0x78, 0x6f, 0x0c, 0xe8, 0xac, 0x28, 0x40, 0xee, 0xb3, 0x30, 0x8d, 0x88, 0x94, 0x20, 0x08, 0xdb, 0x86,
0xe9, 0xb7, 0x3a, 0x04, 0x6b, 0xe5, 0xc5, 0xd1, 0x83, 0x76, 0xd4, 0x1f, 0xa0, 0xa2, 0x41, 0x92, 0x6a, 0x9f, 0xb0, 0xb1, 0x2c, 0x5e, 0xfe, 0x5b, 0x1e, 0x82, 0x95, 0x62, 0xa8, 0x76, 0xa1, 0x1d,
0xf3, 0xb0, 0xb8, 0xea, 0xea, 0x18, 0x16, 0x4f, 0xd4, 0x1f, 0x1c, 0x06, 0xe1, 0x98, 0xc9, 0x0b, 0x0e, 0x47, 0x28, 0x68, 0x14, 0x67, 0x34, 0xc8, 0xaf, 0xc3, 0x2a, 0x86, 0xc5, 0x13, 0x0e, 0x47,
0x69, 0x9d, 0x6c, 0x32, 0x41, 0xef, 0x18, 0x9a, 0xe7, 0xd1, 0x4c, 0x1c, 0x25, 0xd3, 0x29, 0x6e, 0x87, 0x7e, 0x30, 0x25, 0xe2, 0xd2, 0x6a, 0x71, 0x9b, 0x74, 0xd0, 0xed, 0x43, 0xe3, 0x2c, 0x5c,
0x9c, 0x63, 0x96, 0xe1, 0x24, 0x6e, 0x51, 0xa6, 0x15, 0x85, 0x45, 0x72, 0xcc, 0x46, 0x41, 0x1e, 0xb0, 0xa3, 0x78, 0x3e, 0xc7, 0x8d, 0xd3, 0x27, 0x29, 0x4e, 0xf4, 0x06, 0xcf, 0xb4, 0xa4, 0xb0,
0x67, 0xc8, 0x5a, 0x6c, 0x59, 0x0d, 0xf2, 0xfe, 0x68, 0x41, 0x47, 0xde, 0x33, 0x4f, 0x78, 0xc6, 0x48, 0xfa, 0x64, 0xe2, 0x67, 0x51, 0x8a, 0xac, 0xf9, 0x96, 0x55, 0x20, 0xf7, 0x4f, 0x06, 0x74,
0x52, 0xc4, 0x9c, 0xef, 0x42, 0x9d, 0x26, 0x33, 0x52, 0xd6, 0xba, 0xbb, 0x67, 0x36, 0xbf, 0xe2, 0xc4, 0x5d, 0xf4, 0x98, 0xa6, 0x24, 0x41, 0xcc, 0xfe, 0x2e, 0x58, 0x7c, 0x32, 0xe3, 0xc2, 0x5a,
0x45, 0xc0, 0x97, 0x4c, 0xce, 0x21, 0xb4, 0x30, 0xa8, 0x01, 0xcf, 0x68, 0xec, 0xb6, 0x49, 0xa6, 0xf7, 0xf7, 0xf5, 0xe6, 0x97, 0xbf, 0x1a, 0x78, 0x82, 0xc9, 0x3e, 0x84, 0x16, 0x06, 0xd5, 0xa7,
0xbb, 0x2c, 0x63, 0xde, 0x66, 0x7d, 0x5d, 0x08, 0x3d, 0xee, 0x17, 0x67, 0x87, 0xd6, 0x3d, 0x4c, 0x29, 0x1f, 0xbb, 0x4d, 0xbe, 0xa6, 0xbb, 0xbe, 0x46, 0xbf, 0xf1, 0x7a, 0xea, 0x22, 0xf4, 0x78,
0xd0, 0xfb, 0x43, 0x69, 0xeb, 0x63, 0x16, 0x5c, 0xb2, 0xb7, 0xb0, 0xf5, 0x27, 0x00, 0x24, 0x9a, 0x98, 0x9f, 0x1d, 0x4a, 0xf7, 0xd0, 0x41, 0xf7, 0x8f, 0x85, 0xad, 0x4f, 0x89, 0x7f, 0x41, 0xde,
0x5e, 0xc9, 0x54, 0x4d, 0x66, 0x4d, 0x4b, 0xff, 0x69, 0xc1, 0x35, 0xa9, 0xe4, 0x21, 0xbf, 0x8c, 0xc3, 0xd6, 0x9f, 0x00, 0xf0, 0xa5, 0xc9, 0x95, 0x4c, 0x55, 0xd6, 0x6c, 0x69, 0xe9, 0x3f, 0x0d,
0x32, 0x16, 0xbe, 0x85, 0xad, 0x9f, 0x43, 0xa3, 0x3f, 0xbb, 0x92, 0x9d, 0x8a, 0xdf, 0x79, 0x04, 0xb8, 0x21, 0x84, 0x3c, 0xa6, 0x17, 0x61, 0x4a, 0x82, 0xf7, 0xb0, 0xf5, 0x4b, 0xa8, 0x0d, 0x17,
0x1d, 0xb5, 0x2c, 0x92, 0xe5, 0x70, 0xb0, 0x8e, 0x8a, 0x45, 0xc1, 0x65, 0x7f, 0x37, 0x56, 0xf9, 0x57, 0xb2, 0x53, 0xf2, 0xdb, 0x4f, 0xa0, 0x23, 0xd5, 0x22, 0x59, 0x0c, 0x07, 0xdb, 0x88, 0x58,
0xfb, 0x0f, 0x0b, 0x76, 0xa5, 0xa6, 0x9f, 0x46, 0xc3, 0xc9, 0x07, 0x76, 0xf7, 0x01, 0xec, 0xc8, 0x5d, 0xb8, 0xee, 0x6f, 0x75, 0x93, 0xbf, 0xff, 0x30, 0x60, 0x4f, 0x48, 0xfa, 0x69, 0x38, 0x9e,
0x55, 0xaf, 0xec, 0xed, 0x82, 0xdc, 0x9a, 0xce, 0xfe, 0xc7, 0x82, 0x9b, 0x45, 0x72, 0x47, 0xc9, 0x7d, 0x64, 0x77, 0x1f, 0xc1, 0xae, 0xd0, 0x7a, 0x65, 0x6f, 0x57, 0xd6, 0x6d, 0xe9, 0xec, 0x7f,
0xd1, 0x05, 0xde, 0xdd, 0xa5, 0xc7, 0x38, 0x75, 0x13, 0x49, 0x2d, 0x59, 0x8e, 0x38, 0x1a, 0xf2, 0x0c, 0xb8, 0x9d, 0x27, 0x77, 0x12, 0x1f, 0x9d, 0xe3, 0x55, 0x57, 0x78, 0x8c, 0x53, 0x37, 0x27,
0x0e, 0x3e, 0xfe, 0x08, 0xb6, 0x4e, 0x23, 0x1e, 0x10, 0x48, 0x25, 0xb7, 0x8e, 0x70, 0x25, 0x82, 0x79, 0x4b, 0x16, 0x23, 0x8e, 0x82, 0x5c, 0xc3, 0xc7, 0x1f, 0x41, 0xf3, 0x24, 0xa4, 0x7e, 0xa4,
0x1d, 0xbc, 0x97, 0xab, 0x1e, 0xad, 0xde, 0x7a, 0x0a, 0xba, 0xca, 0x53, 0x7d, 0x8d, 0x3c, 0x79, 0xdc, 0xfc, 0xde, 0xbd, 0xb8, 0x5c, 0x82, 0x1d, 0x7c, 0x90, 0xc9, 0x1e, 0x2d, 0xdf, 0x83, 0x72,
0x7f, 0xb3, 0x60, 0x97, 0x7e, 0xc9, 0xdb, 0xc4, 0xdb, 0xa4, 0xfa, 0x1e, 0x6c, 0xaa, 0xf7, 0xb0, 0xba, 0xcc, 0x93, 0xb5, 0x45, 0x9e, 0xdc, 0xbf, 0x19, 0xb0, 0xc7, 0x7f, 0x89, 0xdb, 0xc4, 0xfb,
0xb5, 0xe3, 0x50, 0x08, 0xe0, 0x0e, 0x56, 0x2d, 0xe0, 0x2a, 0x89, 0xd6, 0x64, 0xd6, 0x4c, 0xf2, 0xa4, 0xfa, 0x01, 0xd4, 0xe5, 0x9b, 0xd9, 0xd6, 0x71, 0xc8, 0x17, 0xe0, 0x0e, 0x96, 0x2d, 0xe0,
0xef, 0x2d, 0xb8, 0x51, 0x1a, 0xae, 0xe7, 0x18, 0xa7, 0x20, 0x45, 0x56, 0x49, 0xd6, 0xa1, 0x2a, 0x2a, 0x89, 0x56, 0xd6, 0x6c, 0x99, 0xe4, 0x3f, 0x18, 0x70, 0xab, 0x30, 0x5c, 0xcd, 0x31, 0x4e,
0x18, 0xf6, 0xd5, 0xea, 0xbe, 0x76, 0xb5, 0x9a, 0xf0, 0xbe, 0xb4, 0xc0, 0x7d, 0x94, 0x44, 0x9c, 0x41, 0x92, 0x2c, 0x93, 0xac, 0x42, 0x65, 0x30, 0xcc, 0xab, 0xd5, 0x7d, 0xe5, 0x6a, 0x35, 0xe1,
0x78, 0x0e, 0x66, 0xb3, 0x58, 0x3d, 0xa7, 0xbe, 0x45, 0x46, 0x7e, 0x00, 0x5b, 0x4a, 0x01, 0xcf, 0x7e, 0x6d, 0x80, 0xf3, 0x24, 0x0e, 0x29, 0xe7, 0xe9, 0x2d, 0x16, 0x91, 0x7c, 0x72, 0x7d, 0x8f,
0x94, 0xd9, 0x6f, 0x7c, 0x58, 0xa8, 0xb8, 0xe5, 0x0d, 0x34, 0x10, 0xe5, 0xcb, 0xae, 0xa2, 0xbc, 0x8c, 0xfc, 0x00, 0x9a, 0x52, 0x00, 0x4d, 0xa5, 0xd9, 0x97, 0x3e, 0x2c, 0x94, 0xdc, 0xe2, 0x06,
0x3f, 0x59, 0xe0, 0x6a, 0x46, 0x9d, 0xa5, 0xc9, 0x90, 0x09, 0xf1, 0x81, 0x5b, 0x03, 0x19, 0xa7, 0xea, 0xb3, 0xe2, 0xf5, 0x57, 0x52, 0xee, 0x9f, 0x0d, 0x70, 0x14, 0xa3, 0x4e, 0x93, 0x78, 0x4c,
0x5d, 0x9e, 0x1b, 0xfa, 0xb5, 0x99, 0x8c, 0xde, 0x30, 0x8c, 0x9e, 0xc0, 0x35, 0x79, 0x7f, 0xd7, 0x18, 0xfb, 0xc8, 0xad, 0x81, 0x1b, 0xa7, 0x5c, 0x9e, 0x6b, 0xea, 0xb5, 0x99, 0x1b, 0x5d, 0xd5,
0x2c, 0xc7, 0x39, 0xea, 0x20, 0x94, 0xc3, 0x8f, 0x9c, 0xd3, 0x0b, 0xd2, 0x7c, 0x50, 0x51, 0x2f, 0x8c, 0x9e, 0xc1, 0x0d, 0x71, 0x7f, 0x57, 0x2c, 0xc7, 0x39, 0xaa, 0x17, 0x88, 0xe1, 0x47, 0xcc,
0xdf, 0xd5, 0x83, 0xca, 0x6d, 0x80, 0x83, 0x30, 0xfc, 0x45, 0x92, 0x86, 0x11, 0x1f, 0xab, 0xe8, 0xe9, 0x39, 0xa9, 0x3f, 0xa8, 0xc8, 0xd7, 0xf1, 0xf2, 0x41, 0xe5, 0x2e, 0x40, 0x2f, 0x08, 0x7e,
0x68, 0x88, 0xf7, 0x08, 0xda, 0x38, 0xc9, 0x95, 0xf7, 0xfd, 0x77, 0x78, 0x2b, 0xf0, 0x7e, 0x09, 0x11, 0x27, 0x41, 0x48, 0xa7, 0x32, 0x3a, 0x0a, 0xe2, 0x3e, 0x81, 0x36, 0x4e, 0x72, 0xc5, 0x7d,
0xb7, 0x96, 0x0c, 0x3f, 0x08, 0x43, 0x15, 0xee, 0x2f, 0xcc, 0x95, 0x54, 0xd4, 0xcd, 0x4b, 0x8d, 0xff, 0x1a, 0x6f, 0x05, 0xee, 0x2f, 0xe1, 0xce, 0x9a, 0xe1, 0xbd, 0x20, 0x90, 0xe1, 0xfe, 0x4a,
0xce, 0xe0, 0x1b, 0xec, 0xde, 0x33, 0xb8, 0xbd, 0xa4, 0xdc, 0xcc, 0xe7, 0x3b, 0x2e, 0xf0, 0x5b, 0xd7, 0x24, 0xa3, 0xae, 0x5f, 0x6a, 0x54, 0x06, 0x4f, 0x63, 0x77, 0x5f, 0xc0, 0xdd, 0x35, 0xe1,
0x0b, 0x3a, 0x6a, 0x85, 0xd2, 0xe6, 0x4f, 0xa1, 0x21, 0x21, 0xa5, 0xec, 0xa3, 0x05, 0x65, 0xc5, 0x7a, 0x3e, 0xaf, 0xa9, 0xe0, 0x77, 0x06, 0x74, 0xa4, 0x86, 0xc2, 0xe6, 0xcf, 0xa1, 0x26, 0x20,
0x7b, 0xa2, 0xaf, 0xd8, 0x96, 0xf7, 0xb5, 0xbd, 0x62, 0x5f, 0x3b, 0x9f, 0x2d, 0x6c, 0xb7, 0x37, 0x29, 0xec, 0x93, 0x15, 0x61, 0xf9, 0x7b, 0xa2, 0x27, 0xd9, 0xd6, 0xf7, 0xb5, 0xb9, 0x61, 0x5f,
0x96, 0x79, 0xb1, 0xd3, 0xfc, 0xa2, 0x2c, 0x8e, 0x59, 0xcc, 0xb2, 0xf7, 0xe3, 0x73, 0x1f, 0x76, 0xdb, 0x5f, 0xac, 0x6c, 0xb7, 0x4b, 0xcb, 0x3c, 0xdf, 0x69, 0x5e, 0x5e, 0x16, 0x7d, 0x12, 0x91,
0xe8, 0x75, 0xee, 0xbd, 0x65, 0xe9, 0x67, 0xb0, 0x4b, 0x0a, 0xdf, 0xa3, 0x8d, 0x3f, 0x87, 0x9b, 0xf4, 0xc3, 0xf8, 0x3c, 0x84, 0x5d, 0xfe, 0x3a, 0xf7, 0xc1, 0xb2, 0xf4, 0x33, 0xd8, 0xe3, 0x02,
0x55, 0xa0, 0xf5, 0x26, 0xf8, 0x8e, 0x7a, 0xbf, 0x07, 0xd7, 0x07, 0x2c, 0x1e, 0xa1, 0xd6, 0xa7, 0x3f, 0xa0, 0x8d, 0x3f, 0x87, 0xdb, 0x65, 0xa0, 0xd5, 0x26, 0x78, 0x4d, 0xb9, 0xdf, 0x83, 0x9b,
0xb3, 0xb0, 0x3c, 0x45, 0x5e, 0xf3, 0x70, 0xf8, 0xbc, 0x41, 0x7f, 0x4e, 0x7d, 0xf6, 0xbf, 0x00, 0x23, 0x12, 0x4d, 0x50, 0xea, 0xf3, 0x45, 0x50, 0x9c, 0x22, 0x6f, 0x79, 0x38, 0x7c, 0x59, 0xe3,
0x00, 0x00, 0xff, 0xff, 0x1c, 0xbd, 0xfd, 0xa5, 0xaf, 0x1a, 0x00, 0x00, 0x7f, 0x60, 0x7d, 0xf1, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x97, 0x0c, 0x33, 0xae, 0xd3, 0x1a,
0x00, 0x00,
} }

@ -20,6 +20,7 @@ message GroupInfo{
int32 GroupType = 12; int32 GroupType = 12;
} }
message GroupMemberFullInfo { message GroupMemberFullInfo {
string GroupID = 1 ; string GroupID = 1 ;
string UserID = 2 ; string UserID = 2 ;
@ -27,10 +28,10 @@ message GroupMemberFullInfo {
int64 JoinTime = 4; int64 JoinTime = 4;
string NickName = 5; string NickName = 5;
string FaceUrl = 6; string FaceUrl = 6;
int32 AppMangerLevel = 8; //if >0 int32 AppMangerLevel = 7; //if >0
int32 JoinSource = 9; int32 JoinSource = 8;
string OperatorUserID = 10; string OperatorUserID = 9;
string Ex = 11; string Ex = 10;
} }
message PublicUserInfo{ message PublicUserInfo{
@ -50,6 +51,8 @@ message UserInfo{
string Birth = 6; string Birth = 6;
string Email = 7; string Email = 7;
string Ex = 8; string Ex = 8;
int64 CreateTime = 9;
int32 AppMangerLevel = 10;
} }
message FriendInfo{ message FriendInfo{
@ -65,10 +68,10 @@ message FriendInfo{
message BlackInfo{ message BlackInfo{
string OwnerUserID = 1; string OwnerUserID = 1;
int64 CreateTime = 2; int64 CreateTime = 2;
PublicUserInfo BlackUserInfo = 4; PublicUserInfo BlackUserInfo = 3;
int32 AddSource = 5; int32 AddSource = 4;
string OperatorUserID = 6; string OperatorUserID = 5;
string Ex = 7; string Ex = 6;
} }
message GroupRequest{ message GroupRequest{

@ -1,6 +1,9 @@
package utils package utils
import ( import (
imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model"
"Open_IM/pkg/common/token_verify"
open_im_sdk "Open_IM/pkg/proto/sdk_ws"
"fmt" "fmt"
"math/rand" "math/rand"
"reflect" "reflect"
@ -50,3 +53,82 @@ func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error
func OperationIDGenerator() string { func OperationIDGenerator() string {
return strconv.FormatInt(time.Now().UnixNano()+int64(rand.Uint32()), 10) return strconv.FormatInt(time.Now().UnixNano()+int64(rand.Uint32()), 10)
} }
func FriendOpenIMCopyDB(dst *imdb.Friend, src open_im_sdk.FriendInfo) {
CopyStructFields(dst, src)
dst.FriendUserID = src.FriendUser.UserID
}
func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src imdb.Friend) {
CopyStructFields(dst, src)
user, _ := imdb.GetUserByUserID(src.FriendUserID)
if user != nil {
CopyStructFields(dst.FriendUser, user)
}
}
//
func FriendRequestOpenIMCopyDB(dst *imdb.FriendRequest, src open_im_sdk.FriendRequest) {
CopyStructFields(dst, src)
}
func FriendRequestDBCopyOpenIM(dst *open_im_sdk.FriendRequest, src imdb.FriendRequest) {
CopyStructFields(dst, src)
}
func GroupOpenIMCopyDB(dst *imdb.Group, src open_im_sdk.GroupInfo) {
CopyStructFields(dst, src)
}
func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src imdb.Group) {
CopyStructFields(dst, src)
user, _ := imdb.GetGroupOwnerInfoByGroupID(src.GroupID)
if user != nil {
dst.OwnerUserID = user.UserID
}
dst.MemberCount = imdb.GetGroupMemberNumByGroupID(src.GroupID)
}
func GroupMemberOpenIMCopyDB(dst *imdb.GroupMember, src open_im_sdk.GroupMemberFullInfo) {
CopyStructFields(dst, src)
}
func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src imdb.GroupMember) {
CopyStructFields(dst, src)
if token_verify.IsMangerUserID(src.UserID) {
u, _ := imdb.GetUserByUserID(src.UserID)
if u != nil {
CopyStructFields(dst, u)
}
dst.AppMangerLevel = 1
}
}
func GroupRequestOpenIMCopyDB(dst *imdb.GroupRequest, src open_im_sdk.GroupRequest) {
CopyStructFields(dst, src)
}
func GroupRequestDBCopyOpenIM(dst *open_im_sdk.GroupRequest, src imdb.GroupRequest) {
CopyStructFields(dst, src)
}
func UserOpenIMCopyDB(dst *imdb.User, src open_im_sdk.UserInfo) {
CopyStructFields(dst, src)
}
func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src imdb.User) {
CopyStructFields(dst, src)
}
func BlackOpenIMCopyDB(dst *imdb.Black, src open_im_sdk.BlackInfo) {
CopyStructFields(dst, src)
dst.BlockUserID = src.BlackUserInfo.UserID
}
func BlackDBCopyOpenIM(dst *open_im_sdk.BlackInfo, src imdb.Black) {
CopyStructFields(dst, src)
user, _ := imdb.GetUserByUserID(src.BlockUserID)
if user != nil {
CopyStructFields(dst.BlackUserInfo, user)
}
}

Loading…
Cancel
Save