From c25352b6609e04db97ec64e442467946e75bf52c Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 29 Jul 2022 20:49:27 +0800 Subject: [PATCH 001/230] fix bug --- internal/rpc/group/super_group.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/internal/rpc/group/super_group.go b/internal/rpc/group/super_group.go index 9b50c7955..b667abe76 100644 --- a/internal/rpc/group/super_group.go +++ b/internal/rpc/group/super_group.go @@ -1,7 +1,6 @@ package group import ( - "Open_IM/pkg/common/constant" rocksCache "Open_IM/pkg/common/db/rocks_cache" "Open_IM/pkg/common/log" cp "Open_IM/pkg/common/utils" @@ -15,7 +14,6 @@ import ( func (s *groupServer) GetJoinedSuperGroupList(ctx context.Context, req *pbGroup.GetJoinedSuperGroupListReq) (*pbGroup.GetJoinedSuperGroupListResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbGroup.GetJoinedSuperGroupListResp{CommonResp: &pbGroup.CommonResp{}} - //userToSuperGroup, err := db.DB.GetSuperGroupByUserID(req.UserID) groupIDList, err := rocksCache.GetJoinedSuperGroupListFromCache(req.UserID) if err != nil { if err == redis.Nil { @@ -23,8 +21,8 @@ func (s *groupServer) GetJoinedSuperGroupList(ctx context.Context, req *pbGroup. return resp, nil } log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetSuperGroupByUserID failed ", err.Error(), req.UserID) - resp.CommonResp.ErrCode = constant.ErrDB.ErrCode - resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg + //resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + //resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg return resp, nil } for _, groupID := range groupIDList { From 0a8a24834960f5e1f7447ca51492e389fef95743 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 29 Jul 2022 21:53:53 +0800 Subject: [PATCH 002/230] fix bug --- pkg/common/db/rocks_cache/rocks_cache.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 86ce3dea6..033731e8d 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -8,6 +8,7 @@ import ( "Open_IM/pkg/utils" "context" "encoding/json" + "errors" "fmt" "time" ) @@ -323,6 +324,9 @@ func GetJoinedSuperGroupListFromCache(userID string) ([]string, error) { if err != nil { return "", utils.Wrap(err, "") } + if len(userToSuperGroup.GroupIDList) == 0 { + return "", errors.New("GroupIDList == 0") + } bytes, err := json.Marshal(userToSuperGroup.GroupIDList) return string(bytes), utils.Wrap(err, "") } From c39df537b40de8ee9cd48a4f95599e4cc5094db2 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 1 Aug 2022 10:58:29 +0800 Subject: [PATCH 003/230] minio obj locking --- internal/api/third/minio_init.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go index 393122858..1511bca46 100644 --- a/internal/api/third/minio_init.go +++ b/internal/api/third/minio_init.go @@ -47,7 +47,7 @@ func MinioInit() { } opt := minio.MakeBucketOptions{ Region: config.Config.Credential.Minio.Location, - ObjectLocking: false, + ObjectLocking: true, } err = MinioClient.MakeBucket(context.Background(), config.Config.Credential.Minio.Bucket, opt) if err != nil { From 4930906b621906f24c5c597609de684c0193ccdf Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 1 Aug 2022 11:47:24 +0800 Subject: [PATCH 004/230] fix bug --- internal/api/third/minio_init.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go index 1511bca46..398072c6c 100644 --- a/internal/api/third/minio_init.go +++ b/internal/api/third/minio_init.go @@ -31,7 +31,8 @@ func MinioInit() { return } opts := &minio.Options{ - Creds: credentials.NewStaticV4(config.Config.Credential.Minio.AccessKeyID, config.Config.Credential.Minio.SecretAccessKey, ""), + Creds: credentials.NewStaticV4(config.Config.Credential.Minio.AccessKeyID, config.Config.Credential.Minio.SecretAccessKey, ""), + Region: config.Config.Credential.Minio.Location, } if minioUrl.Scheme == "http" { opts.Secure = false From 6f968342dc3d2502665f2ea27a18c37310fa6c9c Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 1 Aug 2022 11:49:50 +0800 Subject: [PATCH 005/230] fix bug --- internal/api/third/minio_init.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go index 398072c6c..8c1038e86 100644 --- a/internal/api/third/minio_init.go +++ b/internal/api/third/minio_init.go @@ -31,8 +31,8 @@ func MinioInit() { return } opts := &minio.Options{ - Creds: credentials.NewStaticV4(config.Config.Credential.Minio.AccessKeyID, config.Config.Credential.Minio.SecretAccessKey, ""), - Region: config.Config.Credential.Minio.Location, + Creds: credentials.NewStaticV4(config.Config.Credential.Minio.AccessKeyID, config.Config.Credential.Minio.SecretAccessKey, ""), + //Region: config.Config.Credential.Minio.Location, } if minioUrl.Scheme == "http" { opts.Secure = false @@ -48,7 +48,7 @@ func MinioInit() { } opt := minio.MakeBucketOptions{ Region: config.Config.Credential.Minio.Location, - ObjectLocking: true, + ObjectLocking: false, } err = MinioClient.MakeBucket(context.Background(), config.Config.Credential.Minio.Bucket, opt) if err != nil { From ef9c291d9a1e30aeefa8f52f689e46f60e2dc00c Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 1 Aug 2022 11:52:43 +0800 Subject: [PATCH 006/230] fix bug --- internal/rpc/group/group.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 1f728d6d7..a36da065b 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -61,7 +61,13 @@ func (s *groupServer) Run() { log.NewInfo("", "listen network success, ", address, listener) defer listener.Close() //grpc server - srv := grpc.NewServer() + recvSize := 1024 * 1024 * 30 + sendSize := 1024 * 1024 * 30 + var options = []grpc.ServerOption{ + grpc.MaxRecvMsgSize(recvSize), + grpc.MaxSendMsgSize(sendSize), + } + srv := grpc.NewServer(options...) defer srv.GracefulStop() //Service registers with etcd pbGroup.RegisterGroupServer(srv, s) From 9136838b63ddca0ccd0e59d9fa2113761351e5ac Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 1 Aug 2022 14:33:01 +0800 Subject: [PATCH 007/230] fix bug --- internal/api/third/minio_init.go | 6 ++++-- internal/api/third/minio_storage_credential.go | 1 + pkg/base_info/third_api_struct.go | 13 +++++++------ pkg/common/config/config.go | 1 + 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go index 8c1038e86..4580a6304 100644 --- a/internal/api/third/minio_init.go +++ b/internal/api/third/minio_init.go @@ -47,8 +47,10 @@ func MinioInit() { return } opt := minio.MakeBucketOptions{ - Region: config.Config.Credential.Minio.Location, - ObjectLocking: false, + Region: config.Config.Credential.Minio.Location, + } + if config.Config.Credential.Minio.IsDistributedMod == true { + opt.ObjectLocking = true } err = MinioClient.MakeBucket(context.Background(), config.Config.Credential.Minio.Bucket, opt) if err != nil { diff --git a/internal/api/third/minio_storage_credential.go b/internal/api/third/minio_storage_credential.go index 7f6c81638..4c6fad1f2 100644 --- a/internal/api/third/minio_storage_credential.go +++ b/internal/api/third/minio_storage_credential.go @@ -161,6 +161,7 @@ func MinioStorageCredential(c *gin.Context) { resp.BucketName = config.Config.Credential.Minio.Bucket resp.StsEndpointURL = config.Config.Credential.Minio.Endpoint resp.StorageTime = config.Config.Credential.Minio.StorageTime + resp.IsDistributedMod = config.Config.Credential.Minio.IsDistributedMod c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) } diff --git a/pkg/base_info/third_api_struct.go b/pkg/base_info/third_api_struct.go index 8785ecd37..ddf9291ec 100644 --- a/pkg/base_info/third_api_struct.go +++ b/pkg/base_info/third_api_struct.go @@ -7,12 +7,13 @@ type MinioStorageCredentialReq struct { } type MiniostorageCredentialResp struct { - SecretAccessKey string `json:"secretAccessKey"` - AccessKeyID string `json:"accessKeyID"` - SessionToken string `json:"sessionToken"` - BucketName string `json:"bucketName"` - StsEndpointURL string `json:"stsEndpointURL"` - StorageTime int `json:"storageTime"` + SecretAccessKey string `json:"secretAccessKey"` + AccessKeyID string `json:"accessKeyID"` + SessionToken string `json:"sessionToken"` + BucketName string `json:"bucketName"` + StsEndpointURL string `json:"stsEndpointURL"` + StorageTime int `json:"storageTime"` + IsDistributedMod bool `json:"isDistributedMod"` } type MinioUploadFileReq struct { diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 6c0e1a499..dc73cf25a 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -72,6 +72,7 @@ type config struct { EndpointInner string `yaml:"endpointInner"` EndpointInnerEnable bool `yaml:"endpointInnerEnable"` StorageTime int `yaml:"storageTime"` + IsDistributedMod bool `yaml:"isDistributedMod"` } `yaml:"minio"` } From a8a91fe945dd4f9f82ff36a4f7afec26aa2c0531 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 1 Aug 2022 14:33:50 +0800 Subject: [PATCH 008/230] fix bug --- config/config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/config/config.yaml b/config/config.yaml index 680747d01..30e0b8b4f 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -119,6 +119,7 @@ credential: #腾讯cos,发送图片、视频、文件时需要,请自行申 accessKeyID: user12345 secretAccessKey: key12345 storageTime: 50 #文件在minio中保存的时间 + isDistributedMod: false # 是否分布式多硬盘部署 默认docker-compose中为false ali: # ali oss regionID: "oss-cn-beijing" accessKeyID: "" From e1a941b99823bcb1e16f06921ec6db7d96658458 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 1 Aug 2022 14:44:29 +0800 Subject: [PATCH 009/230] fix bug --- internal/api/third/minio_init.go | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go index 4580a6304..424208038 100644 --- a/internal/api/third/minio_init.go +++ b/internal/api/third/minio_init.go @@ -5,7 +5,6 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "context" - "fmt" "github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7/pkg/credentials" url2 "net/url" @@ -82,17 +81,17 @@ func MinioInit() { } } // 自动化桶public的代码 - policyJsonString := fmt.Sprintf(`{"Version": "2012-10-17","Statement": [{"Action": ["s3:GetObject","s3:PutObject"], - "Effect": "Allow","Principal": {"AWS": ["*"]},"Resource": ["arn:aws:s3:::%s/*"],"Sid": ""}]}`, config.Config.Credential.Minio.Bucket) - err = MinioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.Bucket, policyJsonString) - if err != nil { - log.NewInfo("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in web", err.Error()) - } - policyJsonString = fmt.Sprintf(`{"Version": "2012-10-17","Statement": [{"Action": ["s3:GetObject","s3:PutObject"], - "Effect": "Allow","Principal": {"AWS": ["*"]},"Resource": ["arn:aws:s3:::%s/*"],"Sid": ""}]}`, config.Config.Credential.Minio.AppBucket) - err = MinioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.AppBucket, policyJsonString) - if err != nil { - log.NewInfo("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in web", err.Error()) - } - log.NewInfo(operationID, utils.GetSelfFuncName(), "minio create and set policy success") + //policyJsonString := fmt.Sprintf(`{"Version": "2012-10-17","Statement": [{"Action": ["s3:GetObject","s3:PutObject"], + // "Effect": "Allow","Principal": {"AWS": ["*"]},"Resource": ["arn:aws:s3:::%s/*"],"Sid": ""}]}`, config.Config.Credential.Minio.Bucket) + //err = MinioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.Bucket, policyJsonString) + //if err != nil { + // log.NewInfo("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in web", err.Error()) + //} + //policyJsonString = fmt.Sprintf(`{"Version": "2012-10-17","Statement": [{"Action": ["s3:GetObject","s3:PutObject"], + // "Effect": "Allow","Principal": {"AWS": ["*"]},"Resource": ["arn:aws:s3:::%s/*"],"Sid": ""}]}`, config.Config.Credential.Minio.AppBucket) + //err = MinioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.AppBucket, policyJsonString) + //if err != nil { + // log.NewInfo("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in web", err.Error()) + //} + //log.NewInfo(operationID, utils.GetSelfFuncName(), "minio create and set policy success") } From 4c610abd44f25bdd33077eaf9463cb6a4c428600 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 1 Aug 2022 14:56:20 +0800 Subject: [PATCH 010/230] fix bug --- internal/api/third/minio_init.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go index 424208038..04cc53bc1 100644 --- a/internal/api/third/minio_init.go +++ b/internal/api/third/minio_init.go @@ -80,6 +80,9 @@ func MinioInit() { return } } + policy, err := MinioClient.GetBucketPolicy(context.Background(), config.Config.Credential.Minio.Bucket) + log.NewInfo("", utils.GetSelfFuncName(), policy) + // 自动化桶public的代码 //policyJsonString := fmt.Sprintf(`{"Version": "2012-10-17","Statement": [{"Action": ["s3:GetObject","s3:PutObject"], // "Effect": "Allow","Principal": {"AWS": ["*"]},"Resource": ["arn:aws:s3:::%s/*"],"Sid": ""}]}`, config.Config.Credential.Minio.Bucket) From d99375a536bcd80f68991fd6014d110cb379a8cd Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 1 Aug 2022 15:27:51 +0800 Subject: [PATCH 011/230] fix bug --- internal/api/third/minio_init.go | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go index 04cc53bc1..b1088df50 100644 --- a/internal/api/third/minio_init.go +++ b/internal/api/third/minio_init.go @@ -5,6 +5,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "context" + "fmt" "github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7/pkg/credentials" url2 "net/url" @@ -84,17 +85,17 @@ func MinioInit() { log.NewInfo("", utils.GetSelfFuncName(), policy) // 自动化桶public的代码 - //policyJsonString := fmt.Sprintf(`{"Version": "2012-10-17","Statement": [{"Action": ["s3:GetObject","s3:PutObject"], - // "Effect": "Allow","Principal": {"AWS": ["*"]},"Resource": ["arn:aws:s3:::%s/*"],"Sid": ""}]}`, config.Config.Credential.Minio.Bucket) - //err = MinioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.Bucket, policyJsonString) - //if err != nil { - // log.NewInfo("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in web", err.Error()) - //} - //policyJsonString = fmt.Sprintf(`{"Version": "2012-10-17","Statement": [{"Action": ["s3:GetObject","s3:PutObject"], - // "Effect": "Allow","Principal": {"AWS": ["*"]},"Resource": ["arn:aws:s3:::%s/*"],"Sid": ""}]}`, config.Config.Credential.Minio.AppBucket) - //err = MinioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.AppBucket, policyJsonString) - //if err != nil { - // log.NewInfo("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in web", err.Error()) - //} - //log.NewInfo(operationID, utils.GetSelfFuncName(), "minio create and set policy success") + policyJsonString := fmt.Sprintf(`{"Version": "2012-10-17","Statement": [{"Action": ["s3:GetObject","s3:PutObject"], + "Effect": "Allow","Principal": {"AWS": ["*"]},"Resource": ["arn:aws:s3:::%s/*"],"Sid": ""}]}`, config.Config.Credential.Minio.Bucket) + err = MinioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.Bucket, policyJsonString) + if err != nil { + log.NewInfo("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in web", err.Error()) + } + policyJsonString = fmt.Sprintf(`{"Version": "2012-10-17","Statement": [{"Action": ["s3:GetObject","s3:PutObject"], + "Effect": "Allow","Principal": {"AWS": ["*"]},"Resource": ["arn:aws:s3:::%s/*"],"Sid": ""}]}`, config.Config.Credential.Minio.AppBucket) + err = MinioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.AppBucket, policyJsonString) + if err != nil { + log.NewInfo("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in web", err.Error()) + } + log.NewInfo(operationID, utils.GetSelfFuncName(), "minio create and set policy success") } From bc0e9eb74e583430f083911b75da9e38c8cef2b2 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 1 Aug 2022 16:09:03 +0800 Subject: [PATCH 012/230] config file update --- pkg/common/config/config.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 6c0e1a499..e773fc79b 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -511,13 +511,13 @@ type PDefaultTips struct { func init() { cfgName := os.Getenv("CONFIG_NAME") - fmt.Println(Root, cfgName) + fmt.Println("GET IM CONFIG PATH :", Root, cfgName) - if len(cfgName) == 0 { - cfgName = Root + "/config/config.yaml" + if len(cfgName) != 0 { + Root = cfgName } - bytes, err := ioutil.ReadFile(cfgName) + bytes, err := ioutil.ReadFile(filepath.Join(Root, "config", "config.yaml")) if err != nil { panic(err.Error()) } From 6734c714d73630765badf8ed001fe658cd620128 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 1 Aug 2022 16:23:52 +0800 Subject: [PATCH 013/230] config file update --- pkg/common/config/config.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 2825b816c..c018ce4c2 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -512,8 +512,7 @@ type PDefaultTips struct { func init() { cfgName := os.Getenv("CONFIG_NAME") - fmt.Println("GET IM CONFIG PATH :", Root, cfgName) - + fmt.Println("GET IM DEFAULT CONFIG PATH :", Root, "ENV PATH:", cfgName, b, filepath.Dir(b)) if len(cfgName) != 0 { Root = cfgName } From b4d82579b7ba2273c9e28ab99f3645439622babc Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 1 Aug 2022 16:36:23 +0800 Subject: [PATCH 014/230] fix bug --- pkg/common/db/mongoModel.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 9ddcd0085..a5e0c37b0 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -945,14 +945,14 @@ func (d *DataBases) GetUserFriendWorkMoments(showNumber, pageNumber int32, userI } type SuperGroup struct { - GroupID string `bson:"group_id"` + GroupID string `bson:"group_id" json:"groupID"` //MemberNumCount int `bson:"member_num_count"` - MemberIDList []string `bson:"member_id_list"` + MemberIDList []string `bson:"member_id_list" json:"memberIDList"` } type UserToSuperGroup struct { - UserID string `bson:"user_id"` - GroupIDList []string `bson:"group_id_list"` + UserID string `bson:"user_id" json:"userID"` + GroupIDList []string `bson:"group_id_list" json:"groupIDList"` } func (d *DataBases) CreateSuperGroup(groupID string, initMemberIDList []string, memberNumCount int) error { From 8e445caf26b384a96af6a9372bd1ecf15192a6a8 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 1 Aug 2022 16:37:40 +0800 Subject: [PATCH 015/230] fix bug --- internal/api/group/group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 9c7500872..81e3a4ad7 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -230,7 +230,7 @@ func GetGroupAllMemberList(c *gin.Context) { client := rpc.NewGroupClient(etcdConn) RpcResp, err := client.GetGroupAllMember(context.Background(), req) if err != nil { - log.NewError(req.OperationID, "GetGroupAllMember failed ", err.Error(), req.String()) + log.NewError(req.OperationID, "GetGroupAllMember failed err", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } From c17ca47e7d54b45d125b449441c4be297edbd930 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 1 Aug 2022 16:42:07 +0800 Subject: [PATCH 016/230] config file update --- pkg/common/config/config.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index c018ce4c2..217986f05 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -512,11 +512,10 @@ type PDefaultTips struct { func init() { cfgName := os.Getenv("CONFIG_NAME") - fmt.Println("GET IM DEFAULT CONFIG PATH :", Root, "ENV PATH:", cfgName, b, filepath.Dir(b)) if len(cfgName) != 0 { Root = cfgName } - + fmt.Println("GET IM DEFAULT CONFIG PATH :", Root, "ENV PATH:", cfgName) bytes, err := ioutil.ReadFile(filepath.Join(Root, "config", "config.yaml")) if err != nil { panic(err.Error()) From 22a39ed4d3ef3a881b3eca1a17a602e6c7d6342c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 1 Aug 2022 16:56:06 +0800 Subject: [PATCH 017/230] config file update --- pkg/common/config/config.go | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 217986f05..f7d7d20f2 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -512,15 +512,28 @@ type PDefaultTips struct { func init() { cfgName := os.Getenv("CONFIG_NAME") - if len(cfgName) != 0 { - Root = cfgName - } fmt.Println("GET IM DEFAULT CONFIG PATH :", Root, "ENV PATH:", cfgName) - bytes, err := ioutil.ReadFile(filepath.Join(Root, "config", "config.yaml")) - if err != nil { - panic(err.Error()) - } - if err = yaml.Unmarshal(bytes, &Config); err != nil { - panic(err.Error()) + if len(cfgName) != 0 { + bytes, err := ioutil.ReadFile(filepath.Join(cfgName, "config", "config.yaml")) + if err != nil { + bytes, err = ioutil.ReadFile(filepath.Join(Root, "config", "config.yaml")) + if err != nil { + panic(err.Error()) + } + } else { + Root = cfgName + } + if err = yaml.Unmarshal(bytes, &Config); err != nil { + panic(err.Error()) + } + } else { + bytes, err := ioutil.ReadFile(filepath.Join(Root, "config", "config.yaml")) + if err != nil { + panic(err.Error()) + } + if err = yaml.Unmarshal(bytes, &Config); err != nil { + panic(err.Error()) + } } + } From 18891c554da5f373f6759f770118ecf0dbb08182 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 1 Aug 2022 17:02:56 +0800 Subject: [PATCH 018/230] log add --- internal/push/logic/callback.go | 1 + internal/push/logic/push_to_client.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/push/logic/callback.go b/internal/push/logic/callback.go index cc897322d..5c3c317bf 100644 --- a/internal/push/logic/callback.go +++ b/internal/push/logic/callback.go @@ -92,6 +92,7 @@ func callbackOnlinePush(operationID string, userIDList []string, msg *commonPb.M } func callbackBeforeSuperGroupOnlinePush(operationID string, groupID string, msg *commonPb.MsgData, pushToUserList *[]string) cbApi.CommonCallbackResp { + log.Debug(operationID, utils.GetSelfFuncName(), groupID, msg.String(), pushToUserList) callbackResp := cbApi.CommonCallbackResp{OperationID: operationID} if !config.Config.Callback.CallbackBeforeSuperGroupOnlinePush.Enable { return callbackResp diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 1ab1ee989..8f4a635c4 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -156,7 +156,7 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { func MsgToSuperGroupUser(pushMsg *pbPush.PushMsgReq) { var wsResult []*pbRelay.SingelMsgToUserResultList isOfflinePush := utils.GetSwitchFromOptions(pushMsg.MsgData.Options, constant.IsOfflinePush) - log.Debug(pushMsg.OperationID, "Get super group msg from msg_transfer And push msg", pushMsg.String()) + log.Debug(pushMsg.OperationID, "Get super group msg from msg_transfer And push msg", pushMsg.String(), config.Config.Callback.CallbackBeforeSuperGroupOnlinePush.Enable) var pushToUserIDList []string if config.Config.Callback.CallbackBeforeSuperGroupOnlinePush.Enable { callbackResp := callbackBeforeSuperGroupOnlinePush(pushMsg.OperationID, pushMsg.PushToUserID, pushMsg.MsgData, &pushToUserIDList) From f202d5f54a7fde0c8742a72ae40066cdd793940d Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 1 Aug 2022 17:44:40 +0800 Subject: [PATCH 019/230] fix bug --- internal/api/group/group.go | 4 +++- internal/rpc/group/group.go | 4 ++-- pkg/common/constant/constant.go | 5 +++++ pkg/common/db/mongoModel.go | 3 ++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 81e3a4ad7..8d95af41a 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -12,6 +12,7 @@ import ( "Open_IM/pkg/utils" "context" "github.com/golang/protobuf/ptypes/wrappers" + "google.golang.org/grpc" "github.com/gin-gonic/gin" @@ -227,8 +228,9 @@ func GetGroupAllMemberList(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } + maxSizeOption := grpc.MaxCallRecvMsgSize(1024 * 1024 * constant.GroupRPCRecvSize) client := rpc.NewGroupClient(etcdConn) - RpcResp, err := client.GetGroupAllMember(context.Background(), req) + RpcResp, err := client.GetGroupAllMember(context.Background(), req, maxSizeOption) if err != nil { log.NewError(req.OperationID, "GetGroupAllMember failed err", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index a36da065b..d6d9e2a9f 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -61,8 +61,8 @@ func (s *groupServer) Run() { log.NewInfo("", "listen network success, ", address, listener) defer listener.Close() //grpc server - recvSize := 1024 * 1024 * 30 - sendSize := 1024 * 1024 * 30 + recvSize := 1024 * 1024 * constant.GroupRPCRecvSize + sendSize := 1024 * 1024 * constant.GroupRPCSendSize var options = []grpc.ServerOption{ grpc.MaxRecvMsgSize(recvSize), grpc.MaxSendMsgSize(sendSize), diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index ad5caf19f..25e2fe3dc 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -287,6 +287,11 @@ const ( Directly = 2 //直接进群 ) +const ( + GroupRPCRecvSize = 30 + GroupRPCSendSize = 30 +) + const FriendAcceptTip = "You have successfully become friends, so start chatting" func GroupIsBanChat(status int32) bool { diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index a5e0c37b0..fdecf5e8f 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -1074,7 +1074,8 @@ func (d *DataBases) GetSuperGroupByUserID(userID string) (UserToSuperGroup, erro ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cUserToSuperGroup) var user UserToSuperGroup - return user, c.FindOne(ctx, bson.M{"user_id": userID}).Decode(&user) + _ = c.FindOne(ctx, bson.M{"user_id": userID}).Decode(&user) + return user, nil } func (d *DataBases) DeleteSuperGroup(groupID string) error { From d99b0893df91841935f19b9ed74f4a2f320c595b Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 1 Aug 2022 19:13:26 +0800 Subject: [PATCH 020/230] fix bug --- internal/rpc/msg/send_msg.go | 54 +++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index e1fa4b0de..efd2d4d8e 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -4,6 +4,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" + rocksCache "Open_IM/pkg/common/db/rocks_cache" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" @@ -128,34 +129,41 @@ func messageVerification(data *pbChat.SendMsgReq) (bool, int32, string, []string case constant.GroupChatType: fallthrough case constant.SuperGroupChatType: - getGroupMemberIDListFromCacheReq := &pbCache.GetGroupMemberIDListFromCacheReq{OperationID: data.OperationID, GroupID: data.MsgData.GroupID} - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, data.OperationID) - if etcdConn == nil { - errMsg := data.OperationID + "getcdv3.GetConn == nil" - log.NewError(data.OperationID, errMsg) - //return returnMsg(&replay, pb, 201, errMsg, "", 0) - return false, 201, errMsg, nil - } - client := pbCache.NewCacheClient(etcdConn) - cacheResp, err := client.GetGroupMemberIDListFromCache(context.Background(), getGroupMemberIDListFromCacheReq) + groupInfo, err := rocksCache.GetGroupInfoFromCache(data.MsgData.GroupID) if err != nil { - log.NewError(data.OperationID, "GetGroupMemberIDListFromCache rpc call failed ", err.Error()) - //return returnMsg(&replay, pb, 201, "GetGroupMemberIDListFromCache failed", "", 0) return false, 201, err.Error(), nil } - if cacheResp.CommonResp.ErrCode != 0 { - log.NewError(data.OperationID, "GetGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) - //return returnMsg(&replay, pb, 201, "GetGroupMemberIDListFromCache logic failed", "", 0) - return false, cacheResp.CommonResp.ErrCode, cacheResp.CommonResp.ErrMsg, nil - } - if !token_verify.IsManagerUserID(data.MsgData.SendID) { - if !utils.IsContain(data.MsgData.SendID, cacheResp.UserIDList) { - //return returnMsg(&replay, pb, 202, "you are not in group", "", 0) - return false, 202, "you are not in group", nil + if groupInfo.GroupType == constant.SuperGroup { + return true, 0, "", nil + } else { + getGroupMemberIDListFromCacheReq := &pbCache.GetGroupMemberIDListFromCacheReq{OperationID: data.OperationID, GroupID: data.MsgData.GroupID} + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, data.OperationID) + if etcdConn == nil { + errMsg := data.OperationID + "getcdv3.GetConn == nil" + log.NewError(data.OperationID, errMsg) + //return returnMsg(&replay, pb, 201, errMsg, "", 0) + return false, 201, errMsg, nil } + client := pbCache.NewCacheClient(etcdConn) + cacheResp, err := client.GetGroupMemberIDListFromCache(context.Background(), getGroupMemberIDListFromCacheReq) + if err != nil { + log.NewError(data.OperationID, "GetGroupMemberIDListFromCache rpc call failed ", err.Error()) + //return returnMsg(&replay, pb, 201, "GetGroupMemberIDListFromCache failed", "", 0) + return false, 201, err.Error(), nil + } + if cacheResp.CommonResp.ErrCode != 0 { + log.NewError(data.OperationID, "GetGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) + //return returnMsg(&replay, pb, 201, "GetGroupMemberIDListFromCache logic failed", "", 0) + return false, cacheResp.CommonResp.ErrCode, cacheResp.CommonResp.ErrMsg, nil + } + if !token_verify.IsManagerUserID(data.MsgData.SendID) { + if !utils.IsContain(data.MsgData.SendID, cacheResp.UserIDList) { + //return returnMsg(&replay, pb, 202, "you are not in group", "", 0) + return false, 202, "you are not in group", nil + } + } + return true, 0, "", cacheResp.UserIDList } - return true, 0, "", cacheResp.UserIDList - default: return true, 0, "", nil } From 7057d7fffbef7b8abc08d6c2cc756582846f9ef1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 2 Aug 2022 18:11:40 +0800 Subject: [PATCH 021/230] pb add fields --- pkg/proto/sdk_ws/ws.pb.go | 603 ++++++++++++++++++++------------------ pkg/proto/sdk_ws/ws.proto | 2 + 2 files changed, 312 insertions(+), 293 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index d6c81186b..1c768edac 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -46,7 +46,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{0} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -204,7 +204,7 @@ func (m *GroupInfoForSet) Reset() { *m = GroupInfoForSet{} } func (m *GroupInfoForSet) String() string { return proto.CompactTextString(m) } func (*GroupInfoForSet) ProtoMessage() {} func (*GroupInfoForSet) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{1} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{1} } func (m *GroupInfoForSet) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoForSet.Unmarshal(m, b) @@ -309,7 +309,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{2} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{2} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -428,7 +428,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{3} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{3} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -504,7 +504,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} } func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (*UserInfo) ProtoMessage() {} func (*UserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{4} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{4} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -618,7 +618,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} } func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{5} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{5} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -703,7 +703,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} } func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{6} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{6} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -786,7 +786,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} } func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{7} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{7} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -908,7 +908,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} } func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{8} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{8} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -1053,7 +1053,7 @@ func (m *Department) Reset() { *m = Department{} } func (m *Department) String() string { return proto.CompactTextString(m) } func (*Department) ProtoMessage() {} func (*Department) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{9} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{9} } func (m *Department) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Department.Unmarshal(m, b) @@ -1164,7 +1164,7 @@ func (m *OrganizationUser) Reset() { *m = OrganizationUser{} } func (m *OrganizationUser) String() string { return proto.CompactTextString(m) } func (*OrganizationUser) ProtoMessage() {} func (*OrganizationUser) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{10} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{10} } func (m *OrganizationUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationUser.Unmarshal(m, b) @@ -1278,7 +1278,7 @@ func (m *DepartmentMember) Reset() { *m = DepartmentMember{} } func (m *DepartmentMember) String() string { return proto.CompactTextString(m) } func (*DepartmentMember) ProtoMessage() {} func (*DepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{11} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{11} } func (m *DepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DepartmentMember.Unmarshal(m, b) @@ -1359,7 +1359,7 @@ func (m *UserDepartmentMember) Reset() { *m = UserDepartmentMember{} } func (m *UserDepartmentMember) String() string { return proto.CompactTextString(m) } func (*UserDepartmentMember) ProtoMessage() {} func (*UserDepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{12} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{12} } func (m *UserDepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDepartmentMember.Unmarshal(m, b) @@ -1405,7 +1405,7 @@ func (m *UserInDepartment) Reset() { *m = UserInDepartment{} } func (m *UserInDepartment) String() string { return proto.CompactTextString(m) } func (*UserInDepartment) ProtoMessage() {} func (*UserInDepartment) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{13} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{13} } func (m *UserInDepartment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInDepartment.Unmarshal(m, b) @@ -1454,7 +1454,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{14} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{14} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -1513,7 +1513,7 @@ func (m *SeqList) Reset() { *m = SeqList{} } func (m *SeqList) String() string { return proto.CompactTextString(m) } func (*SeqList) ProtoMessage() {} func (*SeqList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{15} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{15} } func (m *SeqList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SeqList.Unmarshal(m, b) @@ -1551,7 +1551,7 @@ func (m *MsgDataList) Reset() { *m = MsgDataList{} } func (m *MsgDataList) String() string { return proto.CompactTextString(m) } func (*MsgDataList) ProtoMessage() {} func (*MsgDataList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{16} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{16} } func (m *MsgDataList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataList.Unmarshal(m, b) @@ -1592,7 +1592,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{17} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{17} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -1653,7 +1653,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{18} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{18} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1706,7 +1706,7 @@ func (m *MaxAndMinSeq) Reset() { *m = MaxAndMinSeq{} } func (m *MaxAndMinSeq) String() string { return proto.CompactTextString(m) } func (*MaxAndMinSeq) ProtoMessage() {} func (*MaxAndMinSeq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{19} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{19} } func (m *MaxAndMinSeq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MaxAndMinSeq.Unmarshal(m, b) @@ -1755,7 +1755,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{20} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{20} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1823,7 +1823,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{21} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{21} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1885,6 +1885,8 @@ type MsgData struct { OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,19,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` AtUserIDList []string `protobuf:"bytes,20,rep,name=atUserIDList" json:"atUserIDList,omitempty"` MsgDataList []byte `protobuf:"bytes,21,opt,name=msgDataList,proto3" json:"msgDataList,omitempty"` + AttachedInfo string `protobuf:"bytes,22,opt,name=attachedInfo" json:"attachedInfo,omitempty"` + Ex string `protobuf:"bytes,23,opt,name=ex" json:"ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1894,7 +1896,7 @@ func (m *MsgData) Reset() { *m = MsgData{} } func (m *MsgData) String() string { return proto.CompactTextString(m) } func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{22} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{22} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -2054,6 +2056,20 @@ func (m *MsgData) GetMsgDataList() []byte { return nil } +func (m *MsgData) GetAttachedInfo() string { + if m != nil { + return m.AttachedInfo + } + return "" +} + +func (m *MsgData) GetEx() string { + if m != nil { + return m.Ex + } + return "" +} + type OfflinePushInfo struct { Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"` Desc string `protobuf:"bytes,2,opt,name=desc" json:"desc,omitempty"` @@ -2069,7 +2085,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{23} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{23} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -2137,7 +2153,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} } func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (*TipsComm) ProtoMessage() {} func (*TipsComm) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{24} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{24} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -2194,7 +2210,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{25} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{25} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -2263,7 +2279,7 @@ func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoSetTips) ProtoMessage() {} func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{26} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{26} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -2318,7 +2334,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{27} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{27} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2374,7 +2390,7 @@ func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } func (*MemberQuitTips) ProtoMessage() {} func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{28} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{28} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -2429,7 +2445,7 @@ func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAc func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationAcceptedTips) ProtoMessage() {} func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{29} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{29} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -2484,7 +2500,7 @@ func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRe func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationRejectedTips) ProtoMessage() {} func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{30} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{30} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -2540,7 +2556,7 @@ func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferred func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } func (*GroupOwnerTransferredTips) ProtoMessage() {} func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{31} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{31} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -2603,7 +2619,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{32} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{32} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -2666,7 +2682,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{33} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{33} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -2728,7 +2744,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{34} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{34} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -2782,7 +2798,7 @@ func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } func (*GroupDismissedTips) ProtoMessage() {} func (*GroupDismissedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{35} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{35} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2838,7 +2854,7 @@ func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} } func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberMutedTips) ProtoMessage() {} func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{36} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{36} } func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) @@ -2907,7 +2923,7 @@ func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMut func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberCancelMutedTips) ProtoMessage() {} func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{37} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{37} } func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) @@ -2968,7 +2984,7 @@ func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} } func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMutedTips) ProtoMessage() {} func (*GroupMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{38} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{38} } func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) @@ -3022,7 +3038,7 @@ func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} } func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupCancelMutedTips) ProtoMessage() {} func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{39} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{39} } func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) @@ -3077,7 +3093,7 @@ func (m *GroupMemberInfoSetTips) Reset() { *m = GroupMemberInfoSetTips{} func (m *GroupMemberInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberInfoSetTips) ProtoMessage() {} func (*GroupMemberInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{40} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{40} } func (m *GroupMemberInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberInfoSetTips.Unmarshal(m, b) @@ -3137,7 +3153,7 @@ func (m *OrganizationChangedTips) Reset() { *m = OrganizationChangedTips func (m *OrganizationChangedTips) String() string { return proto.CompactTextString(m) } func (*OrganizationChangedTips) ProtoMessage() {} func (*OrganizationChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{41} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{41} } func (m *OrganizationChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationChangedTips.Unmarshal(m, b) @@ -3184,7 +3200,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} } func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{42} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{42} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -3237,7 +3253,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} } func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{43} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{43} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -3283,7 +3299,7 @@ func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationTips) ProtoMessage() {} func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{44} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{44} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -3323,7 +3339,7 @@ func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplication func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationApprovedTips) ProtoMessage() {} func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{45} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{45} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -3370,7 +3386,7 @@ func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplication func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationRejectedTips) ProtoMessage() {} func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{46} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{46} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -3418,7 +3434,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{47} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{47} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -3471,7 +3487,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{48} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{48} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -3509,7 +3525,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{49} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{49} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -3547,7 +3563,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{50} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{50} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -3585,7 +3601,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{51} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{51} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -3624,7 +3640,7 @@ func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*UserInfoUpdatedTips) ProtoMessage() {} func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{52} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{52} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -3663,7 +3679,7 @@ func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } func (*ConversationUpdateTips) ProtoMessage() {} func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{53} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{53} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -3703,7 +3719,7 @@ func (m *ConversationSetPrivateTips) Reset() { *m = ConversationSetPriva func (m *ConversationSetPrivateTips) String() string { return proto.CompactTextString(m) } func (*ConversationSetPrivateTips) ProtoMessage() {} func (*ConversationSetPrivateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{54} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{54} } func (m *ConversationSetPrivateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationSetPrivateTips.Unmarshal(m, b) @@ -3758,7 +3774,7 @@ func (m *DeleteMessageTips) Reset() { *m = DeleteMessageTips{} } func (m *DeleteMessageTips) String() string { return proto.CompactTextString(m) } func (*DeleteMessageTips) ProtoMessage() {} func (*DeleteMessageTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{55} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{55} } func (m *DeleteMessageTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteMessageTips.Unmarshal(m, b) @@ -3812,7 +3828,7 @@ func (m *RequestPagination) Reset() { *m = RequestPagination{} } func (m *RequestPagination) String() string { return proto.CompactTextString(m) } func (*RequestPagination) ProtoMessage() {} func (*RequestPagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{56} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{56} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -3858,7 +3874,7 @@ func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } func (*ResponsePagination) ProtoMessage() {} func (*ResponsePagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{57} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{57} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -3911,7 +3927,7 @@ func (m *SignalReq) Reset() { *m = SignalReq{} } func (m *SignalReq) String() string { return proto.CompactTextString(m) } func (*SignalReq) ProtoMessage() {} func (*SignalReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{58} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{58} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -4178,7 +4194,7 @@ func (m *SignalResp) Reset() { *m = SignalResp{} } func (m *SignalResp) String() string { return proto.CompactTextString(m) } func (*SignalResp) ProtoMessage() {} func (*SignalResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{59} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{59} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -4447,7 +4463,7 @@ func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } func (*InvitationInfo) ProtoMessage() {} func (*InvitationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{60} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{60} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -4550,7 +4566,7 @@ func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } func (*ParticipantMetaData) ProtoMessage() {} func (*ParticipantMetaData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{61} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{61} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -4605,7 +4621,7 @@ func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteReq) ProtoMessage() {} func (*SignalInviteReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{62} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{62} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -4666,7 +4682,7 @@ func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteReply) ProtoMessage() {} func (*SignalInviteReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{63} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{63} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -4721,7 +4737,7 @@ func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReq) ProtoMessage() {} func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{64} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{64} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -4782,7 +4798,7 @@ func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupRep func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReply) ProtoMessage() {} func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{65} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{65} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -4837,7 +4853,7 @@ func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } func (*SignalCancelReq) ProtoMessage() {} func (*SignalCancelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{66} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{66} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -4895,7 +4911,7 @@ func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } func (*SignalCancelReply) ProtoMessage() {} func (*SignalCancelReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{67} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{67} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -4930,7 +4946,7 @@ func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReq) ProtoMessage() {} func (*SignalAcceptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{68} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{68} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -4998,7 +5014,7 @@ func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReply) ProtoMessage() {} func (*SignalAcceptReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{69} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{69} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -5052,7 +5068,7 @@ func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReq) ProtoMessage() {} func (*SignalHungUpReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{70} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{70} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -5103,7 +5119,7 @@ func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReply) ProtoMessage() {} func (*SignalHungUpReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{71} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{71} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -5138,7 +5154,7 @@ func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } func (*SignalRejectReq) ProtoMessage() {} func (*SignalRejectReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{72} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{72} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -5203,7 +5219,7 @@ func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } func (*SignalRejectReply) ProtoMessage() {} func (*SignalRejectReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{73} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{73} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -5237,7 +5253,7 @@ func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } func (*DelMsgListReq) ProtoMessage() {} func (*DelMsgListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{74} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{74} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -5297,7 +5313,7 @@ func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } func (*DelMsgListResp) ProtoMessage() {} func (*DelMsgListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_63960bbd3e4ca6d2, []int{75} + return fileDescriptor_ws_860ddb8af4f21a5d, []int{75} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -5414,226 +5430,227 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_63960bbd3e4ca6d2) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_860ddb8af4f21a5d) } -var fileDescriptor_ws_63960bbd3e4ca6d2 = []byte{ - // 3479 bytes of a gzipped FileDescriptorProto +var fileDescriptor_ws_860ddb8af4f21a5d = []byte{ + // 3499 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3b, 0xcd, 0x6f, 0x24, 0x47, 0xf5, 0xbf, 0xee, 0xf1, 0x8c, 0x3d, 0x6f, 0xfc, 0x31, 0xee, 0xdd, 0x38, 0xf3, 0x33, 0x9b, 0xc5, 0x74, 0xac, 0x24, 0x2c, 0xc1, 0x1b, 0x6d, 0x08, 0x82, 0x7c, 0x2c, 0xf2, 0x47, 0xf6, 0x23, 0xd9, 0xb1, 0x9d, 0x9e, 0xdd, 0x04, 0x11, 0xa4, 0xa5, 0x3d, 0x5d, 0x1e, 0xf7, 0xba, 0xa7, 0xab, 0xdd, - 0x1f, 0xde, 0x35, 0x17, 0xa4, 0x20, 0x21, 0x6e, 0x5c, 0x40, 0x48, 0x5c, 0x90, 0xb8, 0x20, 0x50, - 0x14, 0x21, 0x04, 0x12, 0x07, 0x84, 0x10, 0xe2, 0xc6, 0x85, 0x03, 0x37, 0x0e, 0x48, 0x9c, 0xf9, - 0x07, 0x90, 0x90, 0x82, 0xaa, 0x5e, 0x75, 0x77, 0x55, 0x77, 0x8f, 0x3d, 0x6b, 0x59, 0xd9, 0x8d, - 0x96, 0xdb, 0xbc, 0xd7, 0xf5, 0x5e, 0xbd, 0xef, 0x7a, 0xf5, 0x31, 0x30, 0x17, 0x39, 0xfb, 0x77, - 0xef, 0x47, 0x97, 0xef, 0x47, 0x2b, 0x41, 0x48, 0x63, 0x6a, 0xcc, 0x47, 0x24, 0x3c, 0x24, 0xe1, - 0x5d, 0x3b, 0x70, 0xef, 0x06, 0x76, 0x68, 0x0f, 0xa3, 0xc5, 0xe7, 0xb7, 0x02, 0xe2, 0xdf, 0xbd, - 0xd9, 0xbd, 0x1c, 0xec, 0x0f, 0x2e, 0xf3, 0x51, 0x97, 0x53, 0xaa, 0xd0, 0x0e, 0x02, 0x12, 0x0a, - 0x5a, 0xf3, 0x1f, 0x13, 0xd0, 0xbc, 0x1e, 0xd2, 0x24, 0xb8, 0xe9, 0xef, 0x52, 0xa3, 0x03, 0x93, - 0x03, 0x0e, 0x6c, 0x74, 0xb4, 0x25, 0xed, 0x85, 0xa6, 0x95, 0x82, 0xc6, 0x05, 0x68, 0xf2, 0x9f, - 0x9b, 0xf6, 0x90, 0x74, 0x74, 0xfe, 0x2d, 0x47, 0x18, 0x26, 0x4c, 0xfb, 0x34, 0x76, 0x77, 0xdd, - 0xbe, 0x1d, 0xbb, 0xd4, 0xef, 0xd4, 0xf8, 0x00, 0x05, 0xc7, 0xc6, 0xb8, 0x7e, 0x1c, 0x52, 0x27, - 0xe9, 0xf3, 0x31, 0x13, 0x38, 0x46, 0xc6, 0xb1, 0xf9, 0x77, 0xed, 0x3e, 0xb9, 0x63, 0xdd, 0xea, - 0xd4, 0x71, 0x7e, 0x01, 0x1a, 0x4b, 0xd0, 0xa2, 0xf7, 0x7d, 0x12, 0xde, 0x89, 0x48, 0x78, 0x73, - 0xa3, 0xd3, 0xe0, 0x5f, 0x65, 0x94, 0x71, 0x11, 0xa0, 0x1f, 0x12, 0x3b, 0x26, 0xb7, 0xdd, 0x21, - 0xe9, 0x4c, 0x2e, 0x69, 0x2f, 0xcc, 0x58, 0x12, 0x86, 0x71, 0x18, 0x92, 0xe1, 0x0e, 0x09, 0xd7, - 0x69, 0xe2, 0xc7, 0x9d, 0x29, 0x3e, 0x40, 0x46, 0x19, 0xb3, 0xa0, 0x93, 0x07, 0x9d, 0x26, 0x67, - 0xad, 0x93, 0x07, 0xc6, 0x02, 0x34, 0xa2, 0xd8, 0x8e, 0x93, 0xa8, 0x03, 0x4b, 0xda, 0x0b, 0x75, - 0x4b, 0x40, 0xc6, 0x32, 0xcc, 0x70, 0xbe, 0x34, 0x95, 0xa6, 0xc5, 0x49, 0x54, 0x64, 0x66, 0xb1, - 0xdb, 0x47, 0x01, 0xe9, 0x4c, 0x73, 0x06, 0x39, 0xc2, 0xb8, 0x04, 0x6d, 0x9f, 0x10, 0xe7, 0x5d, - 0x12, 0xe6, 0x56, 0x9b, 0xe1, 0x83, 0x4a, 0x78, 0xe3, 0x39, 0x98, 0xf5, 0x28, 0xdd, 0xef, 0x72, - 0x51, 0x99, 0x9f, 0x3a, 0xb3, 0x7c, 0x64, 0x01, 0x6b, 0xbc, 0x08, 0xf3, 0x76, 0x10, 0x78, 0x47, - 0x88, 0xba, 0x16, 0xba, 0xc4, 0x77, 0x3a, 0x73, 0x7c, 0x68, 0xf9, 0x83, 0xf1, 0x65, 0x58, 0x90, - 0xfd, 0x73, 0x27, 0x70, 0x52, 0xdb, 0xb5, 0xb9, 0x69, 0x46, 0x7c, 0x35, 0x56, 0xc0, 0x50, 0xbe, - 0xa0, 0x09, 0xe6, 0xb9, 0x09, 0x2a, 0xbe, 0x98, 0x3f, 0xac, 0xc1, 0x5c, 0x16, 0x61, 0xd7, 0x68, - 0xd8, 0x23, 0xf1, 0x63, 0x1c, 0x67, 0x18, 0x03, 0x8d, 0x2c, 0x06, 0xae, 0x57, 0xf8, 0x89, 0xc5, - 0x56, 0xeb, 0xca, 0x67, 0x56, 0x06, 0x94, 0x0e, 0x3c, 0x82, 0x89, 0xb4, 0x93, 0xec, 0xae, 0xdc, - 0xf4, 0xe3, 0x97, 0xaf, 0xbc, 0x6b, 0x7b, 0x09, 0xa9, 0x70, 0xe2, 0x7a, 0xc9, 0x89, 0x53, 0x27, - 0xb3, 0x29, 0x7a, 0xf8, 0x66, 0x95, 0x87, 0x9b, 0x27, 0xf3, 0x29, 0x53, 0x99, 0x1f, 0xeb, 0x70, - 0x8e, 0xbb, 0x45, 0x60, 0x13, 0xcf, 0x3b, 0xa1, 0x04, 0x2c, 0x40, 0x23, 0x41, 0x67, 0xa3, 0x5f, - 0x04, 0xc4, 0x5c, 0x16, 0x52, 0x8f, 0xdc, 0x22, 0x87, 0xc4, 0xe3, 0x1e, 0xa9, 0x5b, 0x39, 0xc2, - 0x58, 0x84, 0xa9, 0x7b, 0xd4, 0xf5, 0x79, 0x60, 0x4d, 0xf0, 0x8f, 0x19, 0xcc, 0xbe, 0xf9, 0x6e, - 0x7f, 0xdf, 0x67, 0xbe, 0x46, 0x3f, 0x64, 0xb0, 0xec, 0xa2, 0x86, 0xea, 0xa2, 0xe7, 0x60, 0xd6, - 0x0e, 0x82, 0xae, 0xed, 0x0f, 0x48, 0x88, 0x93, 0x4e, 0x62, 0x3a, 0xa8, 0x58, 0x56, 0x10, 0xd8, - 0x4c, 0x3d, 0x9a, 0x84, 0x7d, 0xc2, 0xad, 0x5d, 0xb7, 0x24, 0x0c, 0xe3, 0x43, 0x03, 0x12, 0x4a, - 0x79, 0x8c, 0xa9, 0x5f, 0xc0, 0x8a, 0x90, 0x80, 0x2c, 0x24, 0x58, 0x21, 0x49, 0x62, 0xf2, 0xa6, - 0xef, 0x70, 0xa5, 0x5a, 0xa2, 0x90, 0xe4, 0x28, 0x56, 0x20, 0x5c, 0xff, 0xd0, 0x8d, 0xb3, 0x72, - 0x35, 0x8d, 0x05, 0x42, 0x41, 0x9a, 0xdf, 0xd3, 0x60, 0x76, 0x3b, 0xd9, 0xf1, 0xdc, 0x3e, 0x47, - 0x30, 0xe3, 0xe7, 0x26, 0xd6, 0x14, 0x13, 0xcb, 0x86, 0xd2, 0x47, 0x1b, 0xaa, 0xa6, 0x1a, 0x6a, - 0x01, 0x1a, 0x03, 0xe2, 0x3b, 0x24, 0x14, 0x86, 0x17, 0x90, 0x50, 0xa8, 0x9e, 0x2a, 0x64, 0xfe, - 0x49, 0x87, 0xa9, 0x4f, 0x58, 0x84, 0x25, 0x68, 0x05, 0x7b, 0xd4, 0x27, 0x9b, 0x09, 0x0b, 0x3e, - 0x21, 0x8b, 0x8c, 0x32, 0xce, 0x43, 0x7d, 0xc7, 0x0d, 0xe3, 0x3d, 0xee, 0xfd, 0x19, 0x0b, 0x01, - 0x86, 0x25, 0x43, 0xdb, 0x45, 0x97, 0x37, 0x2d, 0x04, 0x84, 0x42, 0x53, 0x99, 0x87, 0xd4, 0xa5, - 0xa0, 0x59, 0x5a, 0x0a, 0xca, 0x11, 0x04, 0x95, 0x11, 0x74, 0x09, 0xda, 0x03, 0x8f, 0xee, 0xd8, - 0x9e, 0x45, 0xfa, 0x87, 0xdd, 0x68, 0xb0, 0x15, 0xc4, 0xdc, 0xdd, 0x75, 0xab, 0x84, 0x37, 0xff, - 0xad, 0x01, 0x60, 0x6a, 0x71, 0x33, 0x16, 0xd6, 0x2b, 0xad, 0xbc, 0x5e, 0x2d, 0x40, 0x23, 0x24, - 0x43, 0x3b, 0xdc, 0x4f, 0xd3, 0x09, 0xa1, 0x82, 0xf0, 0xb5, 0x92, 0xf0, 0xaf, 0x01, 0xec, 0xf2, - 0x79, 0x18, 0x1f, 0x6e, 0x56, 0x96, 0xfc, 0xa5, 0x16, 0x60, 0x25, 0xf5, 0xa8, 0x25, 0x0d, 0x67, - 0xb9, 0x6a, 0x3b, 0x8e, 0x48, 0x89, 0x3a, 0xe6, 0x6a, 0x86, 0xa8, 0xc8, 0x88, 0xc6, 0x31, 0x19, - 0x31, 0x99, 0x05, 0xd0, 0xbf, 0x34, 0x68, 0xae, 0x79, 0x76, 0x7f, 0x7f, 0x4c, 0xd5, 0x55, 0x15, - 0xf5, 0x92, 0x8a, 0xd7, 0x61, 0x66, 0x87, 0xb1, 0x4b, 0x55, 0xe0, 0x56, 0x68, 0x5d, 0xf9, 0x5c, - 0x85, 0x96, 0x6a, 0x02, 0x59, 0x2a, 0x9d, 0xaa, 0xee, 0xc4, 0xc9, 0xea, 0xd6, 0x8f, 0x51, 0x37, - 0x5b, 0x13, 0xcc, 0x1f, 0xd7, 0x60, 0x9a, 0x97, 0x4e, 0x8b, 0x1c, 0x24, 0x24, 0x8a, 0x8d, 0x37, - 0x60, 0x2a, 0x49, 0x45, 0xd5, 0xc6, 0x15, 0x35, 0x23, 0x31, 0x5e, 0x15, 0x6b, 0x1e, 0xa7, 0xd7, - 0x39, 0xfd, 0x85, 0x0a, 0xfa, 0x6c, 0x11, 0xb5, 0xf2, 0xe1, 0x6c, 0xb5, 0xdb, 0xb3, 0x7d, 0xc7, - 0x23, 0x16, 0x89, 0x12, 0x2f, 0x16, 0xf5, 0x57, 0xc1, 0x61, 0xa4, 0x1d, 0x74, 0xa3, 0x81, 0x58, - 0x0b, 0x05, 0xc4, 0xac, 0x83, 0xe3, 0xd8, 0x27, 0x54, 0x3d, 0x47, 0xb0, 0xa4, 0x0e, 0xc9, 0x01, - 0xf7, 0x10, 0xa6, 0x60, 0x0a, 0xe6, 0x73, 0x0a, 0xab, 0x61, 0x20, 0x28, 0x38, 0xe6, 0x62, 0x84, - 0x39, 0x03, 0x6c, 0xb6, 0x24, 0x4c, 0xa9, 0xd7, 0x52, 0x8b, 0x35, 0x94, 0x8a, 0x75, 0xa9, 0xa4, - 0xb6, 0xaa, 0x4a, 0xea, 0xdf, 0x6b, 0x30, 0x83, 0x49, 0x98, 0xba, 0xe6, 0x22, 0xcb, 0x16, 0x3a, - 0x54, 0x62, 0x51, 0xc2, 0x30, 0x5d, 0x18, 0xb4, 0xa9, 0x96, 0x36, 0x05, 0xc7, 0x02, 0x9a, 0xc1, - 0xd7, 0x94, 0x12, 0x27, 0xa3, 0xd2, 0x59, 0xae, 0xcb, 0xa5, 0x4e, 0xc2, 0xb0, 0xe2, 0x19, 0x53, - 0x25, 0xc6, 0x32, 0x98, 0xd1, 0xc6, 0x34, 0x9b, 0x1f, 0xa3, 0x4c, 0xc2, 0x30, 0x2f, 0xc5, 0x34, - 0x9d, 0x1b, 0x4d, 0x9d, 0x23, 0x90, 0xb3, 0x98, 0x17, 0x97, 0xb8, 0x0c, 0x2e, 0xc5, 0x46, 0xf3, - 0xd8, 0xd8, 0x00, 0x25, 0x36, 0xd4, 0x14, 0x6d, 0x95, 0x52, 0x74, 0x19, 0x66, 0x90, 0x4f, 0x61, - 0x89, 0x53, 0x90, 0x6a, 0x84, 0xcd, 0x14, 0x23, 0x4c, 0x8d, 0x91, 0xd9, 0x11, 0x31, 0x32, 0x97, - 0xe5, 0xdd, 0xaf, 0x75, 0x80, 0x0d, 0x12, 0xd8, 0x61, 0x3c, 0x24, 0x7e, 0xcc, 0xd4, 0x73, 0x32, - 0x28, 0x73, 0xae, 0x82, 0x93, 0x57, 0x26, 0x5d, 0x5d, 0x99, 0x0c, 0x98, 0xe0, 0x06, 0x47, 0x6f, - 0xf2, 0xdf, 0xcc, 0x98, 0x81, 0x1d, 0x22, 0x37, 0x4c, 0x95, 0x0c, 0x66, 0x2b, 0x0f, 0x0d, 0x1d, - 0xb1, 0x56, 0xd5, 0x2d, 0x04, 0x58, 0x09, 0xc9, 0xe7, 0xe3, 0x9d, 0x7e, 0x03, 0x57, 0x12, 0x15, - 0x7b, 0xe2, 0xe6, 0xe4, 0x12, 0xb4, 0xa3, 0x64, 0x27, 0x57, 0x6e, 0x33, 0x19, 0x8a, 0xa4, 0x29, - 0xe1, 0x99, 0x51, 0x71, 0xd7, 0xc2, 0x06, 0xe1, 0xe2, 0x96, 0x23, 0x8a, 0xdd, 0x8a, 0xf9, 0xa1, - 0x0e, 0xed, 0xad, 0x70, 0x60, 0xfb, 0xee, 0xb7, 0xb3, 0xae, 0xfc, 0x54, 0x8b, 0xfc, 0x12, 0xb4, - 0x88, 0x3f, 0xf0, 0xdc, 0x68, 0x6f, 0x33, 0xb7, 0x9b, 0x8c, 0x92, 0x8d, 0x3d, 0x31, 0xaa, 0x0d, - 0xa8, 0x2b, 0x6d, 0xc0, 0x02, 0x34, 0x86, 0x74, 0xc7, 0xf5, 0xd2, 0xb8, 0x17, 0x10, 0x8f, 0x79, - 0xe2, 0x11, 0xde, 0x0f, 0x64, 0x31, 0x9f, 0x22, 0xf2, 0xd6, 0x60, 0xaa, 0xb2, 0x35, 0x68, 0xca, - 0xad, 0x81, 0x6a, 0x78, 0x28, 0x19, 0x1e, 0xcd, 0xd5, 0xca, 0xcc, 0xf5, 0x47, 0x0d, 0xda, 0xb9, - 0xb9, 0xb1, 0x37, 0x1e, 0x69, 0xae, 0x62, 0x04, 0xea, 0x15, 0x11, 0x98, 0xc5, 0x4d, 0x4d, 0x8e, - 0x1b, 0x16, 0x69, 0x34, 0x72, 0xa5, 0x0d, 0x4a, 0x06, 0xb3, 0xd9, 0x3c, 0x62, 0x4b, 0xc6, 0x42, - 0x48, 0xda, 0x8e, 0x36, 0x94, 0xed, 0x68, 0x71, 0x35, 0xfe, 0x9d, 0x06, 0xe7, 0x99, 0x97, 0x4b, - 0x6a, 0x6c, 0x41, 0x9b, 0x16, 0x22, 0x41, 0x2c, 0x57, 0xcf, 0x56, 0x2c, 0x37, 0xc5, 0xa0, 0xb1, - 0x4a, 0xc4, 0x8c, 0xa1, 0x53, 0x98, 0x44, 0xac, 0x5f, 0x55, 0x0c, 0x8b, 0xf2, 0x58, 0x25, 0x62, - 0xf3, 0xf7, 0x1a, 0xb4, 0x71, 0x81, 0x94, 0xf2, 0xfc, 0xcc, 0xc5, 0x7e, 0x0f, 0xce, 0x17, 0x67, - 0xbe, 0xe5, 0x46, 0x71, 0x47, 0x5f, 0xaa, 0x8d, 0x2b, 0x7a, 0x25, 0x03, 0x96, 0x6b, 0x4f, 0x6f, - 0x27, 0x9e, 0xd7, 0x25, 0x51, 0x64, 0x0f, 0xc8, 0xda, 0x51, 0x8f, 0x1c, 0xb0, 0x0f, 0x16, 0x39, - 0x18, 0x19, 0x43, 0xac, 0x5b, 0xe2, 0xed, 0x86, 0x4b, 0xfd, 0x2c, 0x84, 0x64, 0x14, 0x4b, 0xab, - 0x08, 0xf9, 0x74, 0x6a, 0x4b, 0x35, 0xb6, 0x10, 0x0b, 0xd0, 0xf8, 0x16, 0x4c, 0xf3, 0x4e, 0x40, - 0x4c, 0xd3, 0x99, 0xe0, 0x0a, 0xbc, 0x5e, 0xd9, 0x7b, 0x54, 0x4a, 0x85, 0x3d, 0x85, 0x80, 0xdf, - 0xf4, 0xe3, 0xf0, 0xc8, 0x52, 0x38, 0x2e, 0xbe, 0x0f, 0xf3, 0xa5, 0x21, 0x46, 0x1b, 0x6a, 0xfb, - 0xe4, 0x48, 0xe8, 0xc1, 0x7e, 0x1a, 0x2f, 0x41, 0xfd, 0x90, 0x6d, 0x34, 0x85, 0xf7, 0x17, 0x2b, - 0x24, 0x10, 0x32, 0x5b, 0x38, 0xf0, 0x55, 0xfd, 0x2b, 0x9a, 0xf9, 0x6c, 0xa6, 0x98, 0xac, 0xa3, - 0xa6, 0xe8, 0x68, 0xbe, 0x0d, 0xad, 0x6e, 0x34, 0xd8, 0xb0, 0x63, 0x9b, 0x0f, 0x7c, 0x1d, 0x5a, - 0xc3, 0x1c, 0xe4, 0x83, 0xab, 0xe7, 0x13, 0x44, 0x96, 0x3c, 0xdc, 0xfc, 0xab, 0x0e, 0x9d, 0x6a, - 0x53, 0x44, 0x01, 0x93, 0x81, 0x84, 0xe1, 0x3a, 0x75, 0x08, 0x57, 0xad, 0x6e, 0xa5, 0x20, 0xf3, - 0x1d, 0x09, 0x43, 0xb6, 0x86, 0x89, 0x56, 0x1d, 0x21, 0x63, 0x05, 0x26, 0xbc, 0xd4, 0x2d, 0xc7, - 0x4b, 0xc1, 0xc7, 0x19, 0x43, 0x68, 0x73, 0xeb, 0x4a, 0x0a, 0x09, 0x9f, 0xad, 0x8e, 0xed, 0xb3, - 0x28, 0x40, 0xa7, 0x49, 0x3c, 0xd0, 0x71, 0x25, 0xd6, 0x8b, 0x7d, 0x78, 0xaa, 0x72, 0x68, 0x85, - 0x03, 0xbf, 0xa4, 0x3a, 0xf0, 0xe2, 0x68, 0x55, 0x8a, 0x4e, 0x0c, 0xc0, 0xb8, 0x4e, 0xe2, 0xae, - 0xfd, 0x60, 0xd5, 0x77, 0xba, 0xae, 0xdf, 0x23, 0x07, 0x2c, 0xda, 0x97, 0xa0, 0x25, 0x8e, 0x0d, - 0x32, 0x37, 0x35, 0x2d, 0x19, 0x35, 0xf2, 0x34, 0xa1, 0x90, 0x0f, 0xb5, 0x52, 0x3e, 0x98, 0x57, - 0x61, 0x5a, 0x9e, 0x8e, 0x2f, 0x22, 0xf6, 0x83, 0x1e, 0x39, 0xe0, 0x0a, 0xcd, 0x58, 0x02, 0xe2, - 0x78, 0x3e, 0x42, 0xec, 0x30, 0x04, 0x64, 0xfe, 0x45, 0x87, 0x73, 0x25, 0x91, 0xa3, 0xe0, 0x61, - 0xf9, 0xc8, 0xf1, 0x52, 0x1b, 0x15, 0x2f, 0x13, 0x4a, 0xbc, 0xec, 0xc3, 0x3c, 0x3a, 0x49, 0x9a, - 0xba, 0x53, 0xe7, 0x01, 0xf0, 0x46, 0x55, 0xc3, 0x5f, 0x16, 0x52, 0xf8, 0x5e, 0xc2, 0xa2, 0xf3, - 0xcb, 0x7c, 0x17, 0x09, 0x2c, 0x54, 0x0f, 0xae, 0x70, 0xff, 0x2b, 0xaa, 0xfb, 0x3f, 0x5b, 0xe5, - 0x7e, 0x59, 0x12, 0xc9, 0xff, 0x07, 0x30, 0xc7, 0x8a, 0x6a, 0x8f, 0xf8, 0x4e, 0x37, 0x1a, 0x70, - 0x43, 0x2e, 0x41, 0x0b, 0xe9, 0xbb, 0xd1, 0x20, 0xdf, 0x00, 0x4a, 0x28, 0x36, 0xa2, 0xef, 0xb9, - 0xac, 0x78, 0xf2, 0x11, 0xa2, 0xe8, 0x49, 0x28, 0xb6, 0x40, 0x46, 0x44, 0x9c, 0xb0, 0x30, 0xeb, - 0xd6, 0xac, 0x0c, 0x36, 0x3f, 0x68, 0xc0, 0xa4, 0x88, 0x46, 0xbe, 0x28, 0xb2, 0x3d, 0x77, 0x56, - 0x56, 0x11, 0xc2, 0xbe, 0xb6, 0x7f, 0x98, 0x87, 0x17, 0x42, 0xf2, 0xf1, 0x56, 0x4d, 0x3d, 0xde, - 0x2a, 0xc8, 0x34, 0x51, 0x96, 0xa9, 0xa0, 0x57, 0xbd, 0xac, 0x17, 0x6b, 0xe3, 0x78, 0x67, 0xb3, - 0xed, 0xd9, 0xf1, 0x2e, 0x0d, 0x87, 0x62, 0x0b, 0x5d, 0xb7, 0x4a, 0x78, 0xd6, 0x3a, 0x22, 0x2e, - 0xeb, 0xfd, 0x71, 0x09, 0x2f, 0x60, 0x59, 0xa7, 0x8d, 0x98, 0x74, 0x0f, 0x80, 0xe7, 0x1c, 0x2a, - 0x12, 0x65, 0x8b, 0x22, 0x97, 0xfa, 0xbc, 0x0b, 0xc5, 0x56, 0x5f, 0x46, 0x31, 0xcd, 0x87, 0xd1, - 0xe0, 0x5a, 0x48, 0x87, 0x62, 0x7b, 0x95, 0x82, 0x5c, 0x73, 0xea, 0xc7, 0x69, 0x07, 0x8b, 0x27, - 0x1c, 0x32, 0x8a, 0xd1, 0x0a, 0x90, 0xf7, 0xf9, 0xd3, 0x56, 0x0a, 0xb2, 0x58, 0x8a, 0xc8, 0x81, - 0x68, 0xde, 0xd9, 0x4f, 0xc5, 0x73, 0x73, 0xaa, 0xe7, 0x0a, 0xdd, 0x58, 0x9b, 0x7f, 0x95, 0xbb, - 0xb1, 0xbc, 0xc5, 0x99, 0x57, 0x5a, 0x9c, 0x55, 0x98, 0xa4, 0x01, 0x4b, 0xff, 0xa8, 0x63, 0xf0, - 0x74, 0x79, 0x7e, 0x74, 0x81, 0x5a, 0xd9, 0xc2, 0x91, 0x98, 0x18, 0x29, 0x9d, 0x71, 0x0b, 0xe6, - 0xe8, 0xee, 0xae, 0xe7, 0xfa, 0x64, 0x3b, 0x89, 0xf6, 0xf8, 0x56, 0xfb, 0x1c, 0x0f, 0x76, 0xb3, - 0xaa, 0x89, 0x50, 0x47, 0x5a, 0x45, 0x52, 0xd6, 0xf9, 0xd9, 0x31, 0x6e, 0x72, 0x78, 0x81, 0x3b, - 0xcf, 0x0b, 0x9c, 0x82, 0xe3, 0xe7, 0x84, 0x52, 0xa1, 0x7f, 0x8a, 0x1b, 0x4e, 0x46, 0x2d, 0xbe, - 0x0a, 0xd3, 0xb2, 0xb0, 0x15, 0x89, 0x79, 0x5e, 0x4e, 0xcc, 0x29, 0x39, 0xef, 0x7e, 0xa4, 0xc1, - 0x5c, 0x41, 0x4c, 0x36, 0x3a, 0x76, 0x63, 0x8f, 0x08, 0x0e, 0x08, 0xb0, 0x9d, 0x8e, 0x43, 0xa2, - 0xbe, 0x48, 0x04, 0xfe, 0x5b, 0xf4, 0x8c, 0xb5, 0x6c, 0xfb, 0x6d, 0xc2, 0xb4, 0xbb, 0xd5, 0x63, - 0x8c, 0x7a, 0x34, 0xf1, 0x9d, 0xec, 0xd0, 0x5c, 0xc2, 0xf1, 0x2d, 0xf8, 0x56, 0x6f, 0xcd, 0x76, - 0x06, 0x04, 0xaf, 0x50, 0xea, 0x5c, 0x26, 0x15, 0x69, 0x3a, 0x30, 0x75, 0xdb, 0x0d, 0xa2, 0x75, - 0x3a, 0x1c, 0x32, 0x77, 0x3a, 0x24, 0x66, 0x3d, 0xb9, 0xc6, 0x95, 0x17, 0x10, 0xb3, 0x8c, 0x43, - 0x76, 0xed, 0xc4, 0x8b, 0xd9, 0xd0, 0x34, 0xfd, 0x25, 0x14, 0x3f, 0x0e, 0x88, 0xa8, 0xbf, 0x81, - 0xd4, 0x28, 0xa7, 0x84, 0x31, 0xff, 0xac, 0x43, 0x9b, 0x57, 0xb7, 0x75, 0x1e, 0x3c, 0x0e, 0x27, - 0xba, 0x02, 0x75, 0x9e, 0xcc, 0xa2, 0x3b, 0x3c, 0xfe, 0x0c, 0x05, 0x87, 0x1a, 0x57, 0xa1, 0x41, - 0x03, 0xde, 0x52, 0x62, 0xe9, 0x7b, 0x6e, 0x14, 0x91, 0x7a, 0x4c, 0x6e, 0x09, 0x2a, 0xe3, 0x1a, - 0xc0, 0x30, 0xef, 0x20, 0xb1, 0x11, 0x18, 0x97, 0x87, 0x44, 0xc9, 0x8c, 0x9b, 0xad, 0x71, 0xd9, - 0x59, 0x79, 0xcd, 0x52, 0x91, 0xc6, 0x26, 0xcc, 0x72, 0xb1, 0xb7, 0xd2, 0xc3, 0x34, 0xee, 0x83, - 0xf1, 0x67, 0x2c, 0x50, 0x9b, 0x3f, 0xd3, 0x84, 0x19, 0xd9, 0xd7, 0x1e, 0x41, 0xdb, 0xe7, 0x26, - 0xd1, 0x4e, 0x65, 0x92, 0x45, 0x98, 0x1a, 0x26, 0xd2, 0xd9, 0x5e, 0xcd, 0xca, 0xe0, 0xdc, 0x45, - 0xb5, 0xb1, 0x5d, 0x64, 0xfe, 0x5c, 0x83, 0xce, 0x5b, 0xd4, 0xf5, 0xf9, 0x87, 0xd5, 0x20, 0xf0, - 0xc4, 0x95, 0xca, 0xa9, 0x7d, 0xfe, 0x35, 0x68, 0xda, 0xc8, 0xc6, 0x8f, 0x85, 0xdb, 0xc7, 0x38, - 0xaf, 0xcb, 0x69, 0xa4, 0x43, 0x93, 0x9a, 0x7c, 0x68, 0x62, 0x7e, 0xa4, 0xc1, 0x2c, 0x1a, 0xe5, - 0x9d, 0xc4, 0x8d, 0x4f, 0x2d, 0xdf, 0x1a, 0x4c, 0x1d, 0x24, 0x6e, 0x7c, 0x8a, 0xa8, 0xcc, 0xe8, - 0xca, 0xf1, 0x54, 0xab, 0x88, 0x27, 0xf3, 0x57, 0x1a, 0x5c, 0x28, 0x9a, 0x75, 0xb5, 0xdf, 0x27, - 0xc1, 0xa3, 0x4c, 0x29, 0xe5, 0xd0, 0x68, 0xa2, 0x70, 0x68, 0x54, 0x29, 0xb2, 0x45, 0xee, 0x91, - 0xfe, 0xe3, 0x2b, 0xf2, 0x77, 0x75, 0xf8, 0xff, 0xeb, 0x59, 0xe2, 0xdd, 0x0e, 0x6d, 0x3f, 0xda, - 0x25, 0x61, 0xf8, 0x08, 0xe5, 0xbd, 0x05, 0x33, 0x3e, 0xb9, 0x9f, 0xcb, 0x24, 0xd2, 0x71, 0x5c, - 0x36, 0x2a, 0xf1, 0x78, 0xb5, 0xcb, 0xfc, 0x8f, 0x06, 0x6d, 0xe4, 0xf3, 0xb6, 0xdb, 0xdf, 0x7f, - 0x84, 0xca, 0x6f, 0xc2, 0xec, 0x3e, 0x97, 0x80, 0x41, 0xa7, 0x28, 0xdb, 0x05, 0xea, 0x31, 0xd5, - 0xff, 0x58, 0x83, 0xf9, 0xf4, 0x26, 0xf7, 0xd0, 0x7d, 0x94, 0xc1, 0xba, 0x0d, 0x73, 0x78, 0x6a, - 0x7e, 0x5a, 0x03, 0x14, 0xc9, 0xc7, 0xb4, 0xc0, 0x6f, 0x35, 0x98, 0x43, 0x4e, 0x6f, 0xfa, 0x31, - 0x09, 0x4f, 0xad, 0xff, 0x0d, 0x68, 0x11, 0x3f, 0x0e, 0x6d, 0xff, 0x34, 0x15, 0x52, 0x26, 0x1d, - 0xb3, 0x48, 0x7e, 0xa4, 0x81, 0xc1, 0x59, 0x6d, 0xb8, 0xd1, 0xd0, 0x8d, 0xa2, 0x47, 0xe8, 0xba, - 0xf1, 0x04, 0xfe, 0x89, 0x0e, 0xe7, 0x25, 0x2e, 0xdd, 0x24, 0x7e, 0xdc, 0x45, 0x36, 0x36, 0xa0, - 0xc9, 0x7a, 0x04, 0xf9, 0x4e, 0x73, 0xdc, 0x89, 0x72, 0x42, 0xd6, 0xc5, 0x72, 0xa0, 0x47, 0xfa, - 0xd4, 0x77, 0x22, 0xde, 0x1c, 0xcd, 0x58, 0x0a, 0x8e, 0x95, 0xa1, 0x45, 0x89, 0xcd, 0xba, 0xed, - 0xf7, 0x89, 0xf7, 0xc4, 0x98, 0xc8, 0xfc, 0xa5, 0x06, 0xb3, 0x38, 0xe4, 0xf1, 0x57, 0x99, 0xad, - 0xf5, 0x18, 0xc8, 0x9f, 0x1a, 0x2f, 0xb1, 0xf0, 0x5a, 0x90, 0xb8, 0xc8, 0x7d, 0xf5, 0xe3, 0x1b, - 0x5a, 0x37, 0xa0, 0xd5, 0xdf, 0xb3, 0xfd, 0xc1, 0xa9, 0x82, 0x4b, 0x26, 0x35, 0x63, 0x78, 0x5a, - 0x3e, 0x80, 0x5f, 0xc7, 0x4f, 0x5c, 0xfd, 0x97, 0x0b, 0xaa, 0x1c, 0xfb, 0x66, 0xe1, 0xe1, 0x8c, - 0xbe, 0x0f, 0xf3, 0x78, 0xeb, 0x2b, 0xf5, 0x84, 0x46, 0x07, 0x26, 0x6d, 0x07, 0x8f, 0x21, 0x34, - 0x4e, 0x94, 0x82, 0xea, 0xab, 0x00, 0xf1, 0xc6, 0x2c, 0x7f, 0x15, 0x70, 0x11, 0xc0, 0x76, 0x9c, - 0xf7, 0x68, 0xe8, 0xb8, 0x7e, 0xda, 0xe0, 0x4b, 0x18, 0xf3, 0x2d, 0x98, 0xbe, 0x16, 0xd2, 0xe1, - 0x6d, 0xe9, 0xfe, 0xf6, 0xd8, 0x1b, 0x66, 0xf9, 0xee, 0x57, 0x57, 0xef, 0x7e, 0xcd, 0x6f, 0xc2, - 0x53, 0x25, 0xc1, 0xb9, 0xb1, 0xd6, 0xf1, 0x5a, 0x3a, 0x9d, 0x44, 0x84, 0x4c, 0xd5, 0xb9, 0x9c, - 0x2c, 0x8b, 0xa5, 0x10, 0x99, 0x1f, 0x68, 0xf0, 0x4c, 0x89, 0xfd, 0x6a, 0x10, 0x84, 0xf4, 0x50, - 0xf8, 0xe4, 0x2c, 0xa6, 0x51, 0x9b, 0x5f, 0xbd, 0xd8, 0xfc, 0x56, 0x0a, 0xa1, 0x34, 0xec, 0x9f, - 0x80, 0x10, 0xbf, 0xd0, 0x60, 0x4e, 0x08, 0xe1, 0x38, 0x62, 0xda, 0x57, 0xa0, 0x81, 0x0f, 0x63, - 0xc4, 0x84, 0xcf, 0x54, 0x4e, 0x98, 0x3e, 0xe8, 0xb1, 0xc4, 0xe0, 0x72, 0x44, 0xea, 0x55, 0x19, - 0xf5, 0xd5, 0x2c, 0xd8, 0xc7, 0x7e, 0xba, 0x22, 0x08, 0xcc, 0xaf, 0xa7, 0xc1, 0xbc, 0x41, 0x3c, - 0x72, 0x96, 0x36, 0x32, 0xef, 0xc0, 0x2c, 0x7f, 0xa5, 0x93, 0xdb, 0xe0, 0x4c, 0xd8, 0xbe, 0x07, - 0x6d, 0xce, 0xf6, 0xcc, 0xe5, 0xcd, 0xb2, 0x83, 0xd9, 0x47, 0x2e, 0x25, 0x67, 0xc2, 0xfd, 0x8b, - 0x70, 0x2e, 0xb5, 0x3d, 0xbe, 0x6e, 0x45, 0xde, 0x23, 0xee, 0xe9, 0xcc, 0x97, 0x60, 0x61, 0x9d, - 0xfa, 0x87, 0x24, 0x8c, 0x94, 0x07, 0xb1, 0x48, 0xa1, 0x24, 0xbf, 0x80, 0xcc, 0x7b, 0xb0, 0x28, - 0x53, 0xf4, 0x48, 0xbc, 0x1d, 0xba, 0x87, 0x12, 0x95, 0x38, 0xa0, 0xd6, 0x94, 0x03, 0xea, 0xfc, - 0x40, 0x5b, 0x57, 0x0e, 0xb4, 0x2f, 0x40, 0xd3, 0x8d, 0x04, 0x03, 0x1e, 0x54, 0x53, 0x56, 0x8e, - 0x30, 0x6d, 0x98, 0x47, 0xf3, 0x8b, 0x0b, 0x23, 0x3e, 0xc5, 0x22, 0x4c, 0x61, 0x4c, 0x65, 0x93, - 0x64, 0xf0, 0xc8, 0xeb, 0x97, 0x91, 0x97, 0x8d, 0x66, 0x0f, 0xe6, 0xc5, 0xa3, 0x9a, 0x6d, 0x7b, - 0xe0, 0xfa, 0x58, 0x64, 0x2f, 0x02, 0x04, 0xf6, 0x20, 0x7d, 0xc6, 0x87, 0xd7, 0x66, 0x12, 0x86, - 0x7d, 0x8f, 0xf6, 0xe8, 0x7d, 0xf1, 0x5d, 0xc7, 0xef, 0x39, 0xc6, 0x7c, 0x17, 0x0c, 0x8b, 0x44, - 0x01, 0xf5, 0x23, 0x22, 0x71, 0x5d, 0x82, 0xd6, 0x7a, 0x12, 0x86, 0xc4, 0x67, 0x53, 0xa5, 0xef, - 0xd4, 0x64, 0x14, 0xe3, 0xdb, 0xcb, 0xf9, 0xe2, 0x11, 0xbb, 0x84, 0x31, 0x7f, 0x5a, 0x83, 0x66, - 0xcf, 0x1d, 0xf8, 0xb6, 0x67, 0x91, 0x03, 0xe3, 0x75, 0x68, 0xe0, 0x96, 0x45, 0x44, 0x4a, 0xd5, - 0x91, 0x2f, 0x8e, 0xc6, 0xbd, 0x99, 0x45, 0x0e, 0x6e, 0xfc, 0x9f, 0x25, 0x68, 0x8c, 0x77, 0xd2, - 0xa7, 0x47, 0x37, 0xf1, 0x08, 0x4a, 0xac, 0x5f, 0x9f, 0x3f, 0x81, 0x89, 0x18, 0x8d, 0xbc, 0x54, - 0x0e, 0x4c, 0xa0, 0x3e, 0x6f, 0x69, 0x44, 0x79, 0x18, 0x2d, 0x10, 0x76, 0x3e, 0x42, 0x20, 0xa4, - 0x61, 0xd4, 0x36, 0x3f, 0xa4, 0x11, 0x2b, 0xf5, 0x68, 0x6a, 0x3c, 0xcb, 0x11, 0xd4, 0x48, 0xc3, - 0xa8, 0xf7, 0x12, 0x7f, 0x70, 0x27, 0x10, 0x67, 0x87, 0xa3, 0xa9, 0x6f, 0xf0, 0x61, 0x82, 0x1a, - 0x69, 0x18, 0x75, 0xc8, 0x8b, 0x37, 0x37, 0xfa, 0x71, 0xd4, 0x58, 0xe3, 0x05, 0x35, 0xd2, 0xac, - 0x35, 0x61, 0x32, 0xb0, 0x8f, 0x3c, 0x6a, 0x3b, 0xe6, 0x87, 0x35, 0x80, 0x74, 0x60, 0xc4, 0x1b, - 0x1d, 0xc5, 0x45, 0xcb, 0x27, 0xba, 0x28, 0xf0, 0x8e, 0x24, 0x27, 0xf5, 0xaa, 0x9d, 0xf4, 0x85, - 0x71, 0x9d, 0x84, 0xdc, 0x0a, 0x6e, 0xba, 0x5a, 0x70, 0xd3, 0xf2, 0x89, 0x6e, 0x12, 0x42, 0x09, - 0x47, 0x5d, 0x2d, 0x38, 0x6a, 0xf9, 0x44, 0x47, 0x09, 0x7a, 0xe1, 0xaa, 0xab, 0x05, 0x57, 0x2d, - 0x9f, 0xe8, 0x2a, 0x41, 0x2f, 0x9c, 0x75, 0xb5, 0xe0, 0xac, 0xe5, 0x13, 0x9d, 0x25, 0xe8, 0xcb, - 0xee, 0xfa, 0x9b, 0x0e, 0xb3, 0xdc, 0x64, 0x78, 0x0b, 0xeb, 0xef, 0xd2, 0xf2, 0x93, 0x3c, 0xad, - 0xe2, 0x49, 0x9e, 0xf1, 0x22, 0xcc, 0x23, 0x82, 0x48, 0xd7, 0x25, 0x3a, 0xbf, 0x2e, 0x29, 0x7f, - 0xe0, 0x17, 0x44, 0x49, 0x14, 0xd3, 0xe1, 0x86, 0x1d, 0xdb, 0x69, 0xf3, 0x95, 0x63, 0xe4, 0xeb, - 0xbb, 0x89, 0xd2, 0xeb, 0xf4, 0x90, 0xd2, 0x61, 0x76, 0x2f, 0x27, 0x20, 0x46, 0x11, 0xbb, 0x43, - 0x42, 0x93, 0x58, 0x94, 0x89, 0x14, 0xc4, 0x77, 0x54, 0x8e, 0x6b, 0xf3, 0x4b, 0x2f, 0xf1, 0xc8, - 0x28, 0x43, 0xf0, 0xca, 0x96, 0x5f, 0xe2, 0x89, 0xd7, 0xe3, 0x39, 0x66, 0x8c, 0x0b, 0x37, 0xfe, - 0x47, 0x04, 0x37, 0x76, 0xe5, 0xc7, 0x47, 0x75, 0x4b, 0xc1, 0x99, 0xff, 0xd4, 0xe0, 0xdc, 0xb6, - 0x1d, 0xc6, 0x6e, 0xdf, 0x0d, 0x6c, 0x3f, 0xee, 0x92, 0xd8, 0xe6, 0x7a, 0x2a, 0x4f, 0x42, 0xb5, - 0x87, 0x7b, 0x12, 0xba, 0x0d, 0x73, 0x03, 0x75, 0x07, 0xf2, 0x90, 0x9b, 0x87, 0x22, 0xb9, 0xf2, - 0xbe, 0xb5, 0xf6, 0xd0, 0xef, 0x5b, 0xcd, 0xef, 0xeb, 0x30, 0x57, 0x28, 0xaf, 0xc7, 0xae, 0x4d, - 0xab, 0x00, 0x6e, 0x16, 0x6a, 0xc7, 0x1c, 0xd0, 0xab, 0xf1, 0x68, 0x49, 0x44, 0x55, 0xb7, 0x7d, - 0xb5, 0xd3, 0xdf, 0xf6, 0xdd, 0x80, 0x56, 0x90, 0x3b, 0xe9, 0x98, 0xfd, 0x51, 0x85, 0x2b, 0x2d, - 0x99, 0xd4, 0x7c, 0x1f, 0xe6, 0x4b, 0x55, 0x8c, 0x5f, 0xdb, 0xd1, 0x7d, 0xe2, 0x67, 0xd7, 0x76, - 0x0c, 0x90, 0x02, 0x5a, 0x2f, 0x06, 0xb4, 0xe7, 0x1e, 0xca, 0x8f, 0xed, 0x05, 0x68, 0xfe, 0x40, - 0x87, 0x85, 0xea, 0x15, 0xe8, 0x49, 0x35, 0xf7, 0x0e, 0x74, 0x46, 0x55, 0xfb, 0x33, 0xb3, 0x7a, - 0x1e, 0xdd, 0xd9, 0x5a, 0xfd, 0xa4, 0x9a, 0xfb, 0x5c, 0x1a, 0xdd, 0xd2, 0x72, 0x68, 0xfe, 0x26, - 0xb3, 0x4f, 0xd6, 0x8d, 0x3c, 0xa1, 0xf6, 0x31, 0x2e, 0x41, 0x1b, 0xd5, 0x94, 0x9e, 0x87, 0x60, - 0x73, 0x5b, 0xc2, 0xe7, 0x95, 0x42, 0x6a, 0x0d, 0xce, 0x2c, 0x66, 0xff, 0xa0, 0xa5, 0x3e, 0xc9, - 0x7a, 0xbc, 0x4f, 0x95, 0x4f, 0xf2, 0x48, 0x93, 0x1a, 0x1f, 0x29, 0xd2, 0xb2, 0xde, 0xf3, 0x7f, - 0x91, 0x76, 0x72, 0xa4, 0x65, 0xb6, 0x94, 0x9a, 0x40, 0xf3, 0x3b, 0x30, 0xb3, 0x41, 0xbc, 0x6e, - 0x34, 0x48, 0xdf, 0xaf, 0x9e, 0xe9, 0x66, 0xb2, 0xf8, 0xca, 0x6f, 0xa2, 0xfc, 0xca, 0x6f, 0x0d, - 0x66, 0x65, 0x01, 0x4e, 0xf3, 0x3e, 0x73, 0xed, 0xc2, 0x37, 0x16, 0x57, 0xc4, 0xff, 0x9e, 0x5f, - 0x2b, 0x19, 0x71, 0xa7, 0xc1, 0xff, 0x29, 0xf9, 0xf2, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xf7, - 0x54, 0x7e, 0x19, 0x50, 0x3d, 0x00, 0x00, + 0x1f, 0xde, 0x35, 0x17, 0x24, 0x90, 0x10, 0x37, 0x2e, 0x20, 0x24, 0x2e, 0x48, 0x5c, 0x10, 0x28, + 0x8a, 0x10, 0x02, 0xc4, 0x01, 0x21, 0x84, 0xb8, 0x71, 0xe1, 0xc0, 0x8d, 0x03, 0x12, 0x67, 0xfe, + 0x01, 0x24, 0xa4, 0xa0, 0xaa, 0x57, 0xdd, 0x5d, 0xd5, 0xdd, 0x63, 0xcf, 0x5a, 0x56, 0x76, 0xa3, + 0xe5, 0x36, 0xef, 0x75, 0xbd, 0x57, 0xef, 0xbb, 0x5e, 0x7d, 0x0c, 0xcc, 0x45, 0xce, 0xfe, 0xdd, + 0xfb, 0xd1, 0xe5, 0xfb, 0xd1, 0x4a, 0x10, 0xd2, 0x98, 0x1a, 0xf3, 0x11, 0x09, 0x0f, 0x49, 0x78, + 0xd7, 0x0e, 0xdc, 0xbb, 0x81, 0x1d, 0xda, 0xc3, 0x68, 0xf1, 0xf9, 0xad, 0x80, 0xf8, 0x77, 0x6f, + 0x76, 0x2f, 0x07, 0xfb, 0x83, 0xcb, 0x7c, 0xd4, 0xe5, 0x94, 0x2a, 0xb4, 0x83, 0x80, 0x84, 0x82, + 0xd6, 0xfc, 0xc7, 0x04, 0x34, 0xaf, 0x87, 0x34, 0x09, 0x6e, 0xfa, 0xbb, 0xd4, 0xe8, 0xc0, 0xe4, + 0x80, 0x03, 0x1b, 0x1d, 0x6d, 0x49, 0x7b, 0xa1, 0x69, 0xa5, 0xa0, 0x71, 0x01, 0x9a, 0xfc, 0xe7, + 0xa6, 0x3d, 0x24, 0x1d, 0x9d, 0x7f, 0xcb, 0x11, 0x86, 0x09, 0xd3, 0x3e, 0x8d, 0xdd, 0x5d, 0xb7, + 0x6f, 0xc7, 0x2e, 0xf5, 0x3b, 0x35, 0x3e, 0x40, 0xc1, 0xb1, 0x31, 0xae, 0x1f, 0x87, 0xd4, 0x49, + 0xfa, 0x7c, 0xcc, 0x04, 0x8e, 0x91, 0x71, 0x6c, 0xfe, 0x5d, 0xbb, 0x4f, 0xee, 0x58, 0xb7, 0x3a, + 0x75, 0x9c, 0x5f, 0x80, 0xc6, 0x12, 0xb4, 0xe8, 0x7d, 0x9f, 0x84, 0x77, 0x22, 0x12, 0xde, 0xdc, + 0xe8, 0x34, 0xf8, 0x57, 0x19, 0x65, 0x5c, 0x04, 0xe8, 0x87, 0xc4, 0x8e, 0xc9, 0x6d, 0x77, 0x48, + 0x3a, 0x93, 0x4b, 0xda, 0x0b, 0x33, 0x96, 0x84, 0x61, 0x1c, 0x86, 0x64, 0xb8, 0x43, 0xc2, 0x75, + 0x9a, 0xf8, 0x71, 0x67, 0x8a, 0x0f, 0x90, 0x51, 0xc6, 0x2c, 0xe8, 0xe4, 0x41, 0xa7, 0xc9, 0x59, + 0xeb, 0xe4, 0x81, 0xb1, 0x00, 0x8d, 0x28, 0xb6, 0xe3, 0x24, 0xea, 0xc0, 0x92, 0xf6, 0x42, 0xdd, + 0x12, 0x90, 0xb1, 0x0c, 0x33, 0x9c, 0x2f, 0x4d, 0xa5, 0x69, 0x71, 0x12, 0x15, 0x99, 0x59, 0xec, + 0xf6, 0x51, 0x40, 0x3a, 0xd3, 0x9c, 0x41, 0x8e, 0x30, 0x2e, 0x41, 0xdb, 0x27, 0xc4, 0x79, 0x97, + 0x84, 0xb9, 0xd5, 0x66, 0xf8, 0xa0, 0x12, 0xde, 0x78, 0x0e, 0x66, 0x3d, 0x4a, 0xf7, 0xbb, 0x5c, + 0x54, 0xe6, 0xa7, 0xce, 0x2c, 0x1f, 0x59, 0xc0, 0x1a, 0x2f, 0xc2, 0xbc, 0x1d, 0x04, 0xde, 0x11, + 0xa2, 0xae, 0x85, 0x2e, 0xf1, 0x9d, 0xce, 0x1c, 0x1f, 0x5a, 0xfe, 0x60, 0x7c, 0x11, 0x16, 0x64, + 0xff, 0xdc, 0x09, 0x9c, 0xd4, 0x76, 0x6d, 0x6e, 0x9a, 0x11, 0x5f, 0x8d, 0x15, 0x30, 0x94, 0x2f, + 0x68, 0x82, 0x79, 0x6e, 0x82, 0x8a, 0x2f, 0xe6, 0x0f, 0x6a, 0x30, 0x97, 0x45, 0xd8, 0x35, 0x1a, + 0xf6, 0x48, 0xfc, 0x18, 0xc7, 0x19, 0xc6, 0x40, 0x23, 0x8b, 0x81, 0xeb, 0x15, 0x7e, 0x62, 0xb1, + 0xd5, 0xba, 0xf2, 0xa9, 0x95, 0x01, 0xa5, 0x03, 0x8f, 0x60, 0x22, 0xed, 0x24, 0xbb, 0x2b, 0x37, + 0xfd, 0xf8, 0xe5, 0x2b, 0xef, 0xda, 0x5e, 0x42, 0x2a, 0x9c, 0xb8, 0x5e, 0x72, 0xe2, 0xd4, 0xc9, + 0x6c, 0x8a, 0x1e, 0xbe, 0x59, 0xe5, 0xe1, 0xe6, 0xc9, 0x7c, 0xca, 0x54, 0xe6, 0x47, 0x3a, 0x9c, + 0xe3, 0x6e, 0x11, 0xd8, 0xc4, 0xf3, 0x4e, 0x28, 0x01, 0x0b, 0xd0, 0x48, 0xd0, 0xd9, 0xe8, 0x17, + 0x01, 0x31, 0x97, 0x85, 0xd4, 0x23, 0xb7, 0xc8, 0x21, 0xf1, 0xb8, 0x47, 0xea, 0x56, 0x8e, 0x30, + 0x16, 0x61, 0xea, 0x1e, 0x75, 0x7d, 0x1e, 0x58, 0x13, 0xfc, 0x63, 0x06, 0xb3, 0x6f, 0xbe, 0xdb, + 0xdf, 0xf7, 0x99, 0xaf, 0xd1, 0x0f, 0x19, 0x2c, 0xbb, 0xa8, 0xa1, 0xba, 0xe8, 0x39, 0x98, 0xb5, + 0x83, 0xa0, 0x6b, 0xfb, 0x03, 0x12, 0xe2, 0xa4, 0x93, 0x98, 0x0e, 0x2a, 0x96, 0x15, 0x04, 0x36, + 0x53, 0x8f, 0x26, 0x61, 0x9f, 0x70, 0x6b, 0xd7, 0x2d, 0x09, 0xc3, 0xf8, 0xd0, 0x80, 0x84, 0x52, + 0x1e, 0x63, 0xea, 0x17, 0xb0, 0x22, 0x24, 0x20, 0x0b, 0x09, 0x56, 0x48, 0x92, 0x98, 0xbc, 0xe9, + 0x3b, 0x5c, 0xa9, 0x96, 0x28, 0x24, 0x39, 0x8a, 0x15, 0x08, 0xd7, 0x3f, 0x74, 0xe3, 0xac, 0x5c, + 0x4d, 0x63, 0x81, 0x50, 0x90, 0xe6, 0x77, 0x35, 0x98, 0xdd, 0x4e, 0x76, 0x3c, 0xb7, 0xcf, 0x11, + 0xcc, 0xf8, 0xb9, 0x89, 0x35, 0xc5, 0xc4, 0xb2, 0xa1, 0xf4, 0xd1, 0x86, 0xaa, 0xa9, 0x86, 0x5a, + 0x80, 0xc6, 0x80, 0xf8, 0x0e, 0x09, 0x85, 0xe1, 0x05, 0x24, 0x14, 0xaa, 0xa7, 0x0a, 0x99, 0x7f, + 0xd2, 0x61, 0xea, 0x63, 0x16, 0x61, 0x09, 0x5a, 0xc1, 0x1e, 0xf5, 0xc9, 0x66, 0xc2, 0x82, 0x4f, + 0xc8, 0x22, 0xa3, 0x8c, 0xf3, 0x50, 0xdf, 0x71, 0xc3, 0x78, 0x8f, 0x7b, 0x7f, 0xc6, 0x42, 0x80, + 0x61, 0xc9, 0xd0, 0x76, 0xd1, 0xe5, 0x4d, 0x0b, 0x01, 0xa1, 0xd0, 0x54, 0xe6, 0x21, 0x75, 0x29, + 0x68, 0x96, 0x96, 0x82, 0x72, 0x04, 0x41, 0x65, 0x04, 0x5d, 0x82, 0xf6, 0xc0, 0xa3, 0x3b, 0xb6, + 0x67, 0x91, 0xfe, 0x61, 0x37, 0x1a, 0x6c, 0x05, 0x31, 0x77, 0x77, 0xdd, 0x2a, 0xe1, 0xcd, 0x7f, + 0x6b, 0x00, 0x98, 0x5a, 0xdc, 0x8c, 0x85, 0xf5, 0x4a, 0x2b, 0xaf, 0x57, 0x0b, 0xd0, 0x08, 0xc9, + 0xd0, 0x0e, 0xf7, 0xd3, 0x74, 0x42, 0xa8, 0x20, 0x7c, 0xad, 0x24, 0xfc, 0x6b, 0x00, 0xbb, 0x7c, + 0x1e, 0xc6, 0x87, 0x9b, 0x95, 0x25, 0x7f, 0xa9, 0x05, 0x58, 0x49, 0x3d, 0x6a, 0x49, 0xc3, 0x59, + 0xae, 0xda, 0x8e, 0x23, 0x52, 0xa2, 0x8e, 0xb9, 0x9a, 0x21, 0x2a, 0x32, 0xa2, 0x71, 0x4c, 0x46, + 0x4c, 0x66, 0x01, 0xf4, 0x2f, 0x0d, 0x9a, 0x6b, 0x9e, 0xdd, 0xdf, 0x1f, 0x53, 0x75, 0x55, 0x45, + 0xbd, 0xa4, 0xe2, 0x75, 0x98, 0xd9, 0x61, 0xec, 0x52, 0x15, 0xb8, 0x15, 0x5a, 0x57, 0x3e, 0x53, + 0xa1, 0xa5, 0x9a, 0x40, 0x96, 0x4a, 0xa7, 0xaa, 0x3b, 0x71, 0xb2, 0xba, 0xf5, 0x63, 0xd4, 0xcd, + 0xd6, 0x04, 0xf3, 0x47, 0x35, 0x98, 0xe6, 0xa5, 0xd3, 0x22, 0x07, 0x09, 0x89, 0x62, 0xe3, 0x0d, + 0x98, 0x4a, 0x52, 0x51, 0xb5, 0x71, 0x45, 0xcd, 0x48, 0x8c, 0x57, 0xc5, 0x9a, 0xc7, 0xe9, 0x75, + 0x4e, 0x7f, 0xa1, 0x82, 0x3e, 0x5b, 0x44, 0xad, 0x7c, 0x38, 0x5b, 0xed, 0xf6, 0x6c, 0xdf, 0xf1, + 0x88, 0x45, 0xa2, 0xc4, 0x8b, 0x45, 0xfd, 0x55, 0x70, 0x18, 0x69, 0x07, 0xdd, 0x68, 0x20, 0xd6, + 0x42, 0x01, 0x31, 0xeb, 0xe0, 0x38, 0xf6, 0x09, 0x55, 0xcf, 0x11, 0x2c, 0xa9, 0x43, 0x72, 0xc0, + 0x3d, 0x84, 0x29, 0x98, 0x82, 0xf9, 0x9c, 0xc2, 0x6a, 0x18, 0x08, 0x0a, 0x8e, 0xb9, 0x18, 0x61, + 0xce, 0x00, 0x9b, 0x2d, 0x09, 0x53, 0xea, 0xb5, 0xd4, 0x62, 0x0d, 0xa5, 0x62, 0x5d, 0x2a, 0xa9, + 0xad, 0xaa, 0x92, 0xfa, 0xf7, 0x1a, 0xcc, 0x60, 0x12, 0xa6, 0xae, 0xb9, 0xc8, 0xb2, 0x85, 0x0e, + 0x95, 0x58, 0x94, 0x30, 0x4c, 0x17, 0x06, 0x6d, 0xaa, 0xa5, 0x4d, 0xc1, 0xb1, 0x80, 0x66, 0xf0, + 0x35, 0xa5, 0xc4, 0xc9, 0xa8, 0x74, 0x96, 0xeb, 0x72, 0xa9, 0x93, 0x30, 0xac, 0x78, 0xc6, 0x54, + 0x89, 0xb1, 0x0c, 0x66, 0xb4, 0x31, 0xcd, 0xe6, 0xc7, 0x28, 0x93, 0x30, 0xcc, 0x4b, 0x31, 0x4d, + 0xe7, 0x46, 0x53, 0xe7, 0x08, 0xe4, 0x2c, 0xe6, 0xc5, 0x25, 0x2e, 0x83, 0x4b, 0xb1, 0xd1, 0x3c, + 0x36, 0x36, 0x40, 0x89, 0x0d, 0x35, 0x45, 0x5b, 0xa5, 0x14, 0x5d, 0x86, 0x19, 0xe4, 0x53, 0x58, + 0xe2, 0x14, 0xa4, 0x1a, 0x61, 0x33, 0xc5, 0x08, 0x53, 0x63, 0x64, 0x76, 0x44, 0x8c, 0xcc, 0x65, + 0x79, 0xf7, 0x2b, 0x1d, 0x60, 0x83, 0x04, 0x76, 0x18, 0x0f, 0x89, 0x1f, 0x33, 0xf5, 0x9c, 0x0c, + 0xca, 0x9c, 0xab, 0xe0, 0xe4, 0x95, 0x49, 0x57, 0x57, 0x26, 0x03, 0x26, 0xb8, 0xc1, 0xd1, 0x9b, + 0xfc, 0x37, 0x33, 0x66, 0x60, 0x87, 0xc8, 0x0d, 0x53, 0x25, 0x83, 0xd9, 0xca, 0x43, 0x43, 0x47, + 0xac, 0x55, 0x75, 0x0b, 0x01, 0x56, 0x42, 0xf2, 0xf9, 0x78, 0xa7, 0xdf, 0xc0, 0x95, 0x44, 0xc5, + 0x9e, 0xb8, 0x39, 0xb9, 0x04, 0xed, 0x28, 0xd9, 0xc9, 0x95, 0xdb, 0x4c, 0x86, 0x22, 0x69, 0x4a, + 0x78, 0x66, 0x54, 0xdc, 0xb5, 0xb0, 0x41, 0xb8, 0xb8, 0xe5, 0x88, 0x62, 0xb7, 0x62, 0x7e, 0xa0, + 0x43, 0x7b, 0x2b, 0x1c, 0xd8, 0xbe, 0xfb, 0xcd, 0xac, 0x2b, 0x3f, 0xd5, 0x22, 0xbf, 0x04, 0x2d, + 0xe2, 0x0f, 0x3c, 0x37, 0xda, 0xdb, 0xcc, 0xed, 0x26, 0xa3, 0x64, 0x63, 0x4f, 0x8c, 0x6a, 0x03, + 0xea, 0x4a, 0x1b, 0xb0, 0x00, 0x8d, 0x21, 0xdd, 0x71, 0xbd, 0x34, 0xee, 0x05, 0xc4, 0x63, 0x9e, + 0x78, 0x84, 0xf7, 0x03, 0x59, 0xcc, 0xa7, 0x88, 0xbc, 0x35, 0x98, 0xaa, 0x6c, 0x0d, 0x9a, 0x72, + 0x6b, 0xa0, 0x1a, 0x1e, 0x4a, 0x86, 0x47, 0x73, 0xb5, 0x32, 0x73, 0xfd, 0x51, 0x83, 0x76, 0x6e, + 0x6e, 0xec, 0x8d, 0x47, 0x9a, 0xab, 0x18, 0x81, 0x7a, 0x45, 0x04, 0x66, 0x71, 0x53, 0x93, 0xe3, + 0x86, 0x45, 0x1a, 0x8d, 0x5c, 0x69, 0x83, 0x92, 0xc1, 0x6c, 0x36, 0x8f, 0xd8, 0x92, 0xb1, 0x10, + 0x92, 0xb6, 0xa3, 0x0d, 0x65, 0x3b, 0x5a, 0x5c, 0x8d, 0x7f, 0xa7, 0xc1, 0x79, 0xe6, 0xe5, 0x92, + 0x1a, 0x5b, 0xd0, 0xa6, 0x85, 0x48, 0x10, 0xcb, 0xd5, 0xb3, 0x15, 0xcb, 0x4d, 0x31, 0x68, 0xac, + 0x12, 0x31, 0x63, 0xe8, 0x14, 0x26, 0x11, 0xeb, 0x57, 0x15, 0xc3, 0xa2, 0x3c, 0x56, 0x89, 0xd8, + 0xfc, 0xbd, 0x06, 0x6d, 0x5c, 0x20, 0xa5, 0x3c, 0x3f, 0x73, 0xb1, 0xdf, 0x83, 0xf3, 0xc5, 0x99, + 0x6f, 0xb9, 0x51, 0xdc, 0xd1, 0x97, 0x6a, 0xe3, 0x8a, 0x5e, 0xc9, 0x80, 0xe5, 0xda, 0xd3, 0xdb, + 0x89, 0xe7, 0x75, 0x49, 0x14, 0xd9, 0x03, 0xb2, 0x76, 0xd4, 0x23, 0x07, 0xec, 0x83, 0x45, 0x0e, + 0x46, 0xc6, 0x10, 0xeb, 0x96, 0x78, 0xbb, 0xe1, 0x52, 0x3f, 0x0b, 0x21, 0x19, 0xc5, 0xd2, 0x2a, + 0x42, 0x3e, 0x9d, 0xda, 0x52, 0x8d, 0x2d, 0xc4, 0x02, 0x34, 0xbe, 0x01, 0xd3, 0xbc, 0x13, 0x10, + 0xd3, 0x74, 0x26, 0xb8, 0x02, 0xaf, 0x57, 0xf6, 0x1e, 0x95, 0x52, 0x61, 0x4f, 0x21, 0xe0, 0x37, + 0xfd, 0x38, 0x3c, 0xb2, 0x14, 0x8e, 0x8b, 0xef, 0xc3, 0x7c, 0x69, 0x88, 0xd1, 0x86, 0xda, 0x3e, + 0x39, 0x12, 0x7a, 0xb0, 0x9f, 0xc6, 0x4b, 0x50, 0x3f, 0x64, 0x1b, 0x4d, 0xe1, 0xfd, 0xc5, 0x0a, + 0x09, 0x84, 0xcc, 0x16, 0x0e, 0x7c, 0x55, 0xff, 0x92, 0x66, 0x3e, 0x9b, 0x29, 0x26, 0xeb, 0xa8, + 0x29, 0x3a, 0x9a, 0x6f, 0x43, 0xab, 0x1b, 0x0d, 0x36, 0xec, 0xd8, 0xe6, 0x03, 0x5f, 0x87, 0xd6, + 0x30, 0x07, 0xf9, 0xe0, 0xea, 0xf9, 0x04, 0x91, 0x25, 0x0f, 0x37, 0xff, 0xaa, 0x43, 0xa7, 0xda, + 0x14, 0x51, 0xc0, 0x64, 0x20, 0x61, 0xb8, 0x4e, 0x1d, 0xc2, 0x55, 0xab, 0x5b, 0x29, 0xc8, 0x7c, + 0x47, 0xc2, 0x90, 0xad, 0x61, 0xa2, 0x55, 0x47, 0xc8, 0x58, 0x81, 0x09, 0x2f, 0x75, 0xcb, 0xf1, + 0x52, 0xf0, 0x71, 0xc6, 0x10, 0xda, 0xdc, 0xba, 0x92, 0x42, 0xc2, 0x67, 0xab, 0x63, 0xfb, 0x2c, + 0x0a, 0xd0, 0x69, 0x12, 0x0f, 0x74, 0x5c, 0x89, 0xf5, 0x62, 0x1f, 0x9e, 0xaa, 0x1c, 0x5a, 0xe1, + 0xc0, 0x2f, 0xa8, 0x0e, 0xbc, 0x38, 0x5a, 0x95, 0xa2, 0x13, 0x03, 0x30, 0xae, 0x93, 0xb8, 0x6b, + 0x3f, 0x58, 0xf5, 0x9d, 0xae, 0xeb, 0xf7, 0xc8, 0x01, 0x8b, 0xf6, 0x25, 0x68, 0x89, 0x63, 0x83, + 0xcc, 0x4d, 0x4d, 0x4b, 0x46, 0x8d, 0x3c, 0x4d, 0x28, 0xe4, 0x43, 0xad, 0x94, 0x0f, 0xe6, 0x55, + 0x98, 0x96, 0xa7, 0xe3, 0x8b, 0x88, 0xfd, 0xa0, 0x47, 0x0e, 0xb8, 0x42, 0x33, 0x96, 0x80, 0x38, + 0x9e, 0x8f, 0x10, 0x3b, 0x0c, 0x01, 0x99, 0x7f, 0xd1, 0xe1, 0x5c, 0x49, 0xe4, 0x28, 0x78, 0x58, + 0x3e, 0x72, 0xbc, 0xd4, 0x46, 0xc5, 0xcb, 0x84, 0x12, 0x2f, 0xfb, 0x30, 0x8f, 0x4e, 0x92, 0xa6, + 0xee, 0xd4, 0x79, 0x00, 0xbc, 0x51, 0xd5, 0xf0, 0x97, 0x85, 0x14, 0xbe, 0x97, 0xb0, 0xe8, 0xfc, + 0x32, 0xdf, 0x45, 0x02, 0x0b, 0xd5, 0x83, 0x2b, 0xdc, 0xff, 0x8a, 0xea, 0xfe, 0x4f, 0x57, 0xb9, + 0x5f, 0x96, 0x44, 0xf2, 0xff, 0x01, 0xcc, 0xb1, 0xa2, 0xda, 0x23, 0xbe, 0xd3, 0x8d, 0x06, 0xdc, + 0x90, 0x4b, 0xd0, 0x42, 0xfa, 0x6e, 0x34, 0xc8, 0x37, 0x80, 0x12, 0x8a, 0x8d, 0xe8, 0x7b, 0x2e, + 0x2b, 0x9e, 0x7c, 0x84, 0x28, 0x7a, 0x12, 0x8a, 0x2d, 0x90, 0x11, 0x11, 0x27, 0x2c, 0xcc, 0xba, + 0x35, 0x2b, 0x83, 0xcd, 0xdf, 0x36, 0x60, 0x52, 0x44, 0x23, 0x5f, 0x14, 0xd9, 0x9e, 0x3b, 0x2b, + 0xab, 0x08, 0x61, 0x5f, 0xdb, 0x3f, 0xcc, 0xc3, 0x0b, 0x21, 0xf9, 0x78, 0xab, 0xa6, 0x1e, 0x6f, + 0x15, 0x64, 0x9a, 0x28, 0xcb, 0x54, 0xd0, 0xab, 0x5e, 0xd6, 0x8b, 0xb5, 0x71, 0xbc, 0xb3, 0xd9, + 0xf6, 0xec, 0x78, 0x97, 0x86, 0x43, 0xb1, 0x85, 0xae, 0x5b, 0x25, 0x3c, 0x6b, 0x1d, 0x11, 0x97, + 0xf5, 0xfe, 0xb8, 0x84, 0x17, 0xb0, 0xac, 0xd3, 0x46, 0x4c, 0xba, 0x07, 0xc0, 0x73, 0x0e, 0x15, + 0x89, 0xb2, 0x45, 0x91, 0x4b, 0x7d, 0xde, 0x85, 0x62, 0xab, 0x2f, 0xa3, 0x98, 0xe6, 0xc3, 0x68, + 0x70, 0x2d, 0xa4, 0x43, 0xb1, 0xbd, 0x4a, 0x41, 0xae, 0x39, 0xf5, 0xe3, 0xb4, 0x83, 0xc5, 0x13, + 0x0e, 0x19, 0xc5, 0x68, 0x05, 0xc8, 0xfb, 0xfc, 0x69, 0x2b, 0x05, 0x59, 0x2c, 0x45, 0xe4, 0x40, + 0x34, 0xef, 0xec, 0xa7, 0xe2, 0xb9, 0x39, 0xd5, 0x73, 0x85, 0x6e, 0xac, 0xcd, 0xbf, 0xca, 0xdd, + 0x58, 0xde, 0xe2, 0xcc, 0x2b, 0x2d, 0xce, 0x2a, 0x4c, 0xd2, 0x80, 0xa5, 0x7f, 0xd4, 0x31, 0x78, + 0xba, 0x3c, 0x3f, 0xba, 0x40, 0xad, 0x6c, 0xe1, 0x48, 0x4c, 0x8c, 0x94, 0xce, 0xb8, 0x05, 0x73, + 0x74, 0x77, 0xd7, 0x73, 0x7d, 0xb2, 0x9d, 0x44, 0x7b, 0x7c, 0xab, 0x7d, 0x8e, 0x07, 0xbb, 0x59, + 0xd5, 0x44, 0xa8, 0x23, 0xad, 0x22, 0x29, 0xeb, 0xfc, 0xec, 0x18, 0x37, 0x39, 0xbc, 0xc0, 0x9d, + 0xe7, 0x05, 0x4e, 0xc1, 0xf1, 0x73, 0x42, 0xa9, 0xd0, 0x3f, 0xc5, 0x0d, 0x27, 0xa3, 0x90, 0x4b, + 0x6c, 0xf7, 0xf7, 0x08, 0x3f, 0x34, 0xea, 0x2c, 0x60, 0xff, 0x28, 0xe3, 0x44, 0x77, 0xf7, 0x74, + 0xda, 0xdd, 0x2d, 0xbe, 0x0a, 0xd3, 0xb2, 0x82, 0x15, 0xc9, 0x7c, 0x5e, 0x4e, 0xe6, 0x29, 0x39, + 0x57, 0x7f, 0xa8, 0xc1, 0x5c, 0x41, 0x35, 0x36, 0x3a, 0x76, 0x63, 0x8f, 0x08, 0x0e, 0x08, 0xb0, + 0xdd, 0x91, 0x43, 0xa2, 0xbe, 0x48, 0x1e, 0xfe, 0x5b, 0x48, 0x52, 0xcb, 0xb6, 0xec, 0x26, 0x4c, + 0xbb, 0x5b, 0x3d, 0xc6, 0xa8, 0x47, 0x13, 0xdf, 0xc9, 0x0e, 0xda, 0x25, 0x1c, 0xdf, 0xb6, 0x6f, + 0xf5, 0xd6, 0x6c, 0x67, 0x40, 0xf0, 0xda, 0xa5, 0xce, 0x65, 0x52, 0x91, 0xa6, 0x03, 0x53, 0xb7, + 0xdd, 0x20, 0x5a, 0xa7, 0xc3, 0x21, 0x0b, 0x01, 0x87, 0xc4, 0xac, 0x8f, 0xd7, 0xb8, 0xc1, 0x04, + 0xc4, 0xac, 0xe9, 0x90, 0x5d, 0x3b, 0xf1, 0x62, 0x36, 0x34, 0x2d, 0x19, 0x12, 0x8a, 0x1f, 0x21, + 0x44, 0xd4, 0xdf, 0x40, 0x6a, 0x94, 0x53, 0xc2, 0x98, 0x7f, 0xd6, 0xa1, 0xcd, 0x2b, 0xe2, 0x3a, + 0x0f, 0x38, 0x87, 0x13, 0x5d, 0x81, 0x3a, 0x2f, 0x00, 0xa2, 0xa3, 0x3c, 0xfe, 0xdc, 0x05, 0x87, + 0x1a, 0x57, 0xa1, 0x41, 0x03, 0xde, 0x86, 0x62, 0xb9, 0x7c, 0x6e, 0x14, 0x91, 0x7a, 0xb4, 0x6e, + 0x09, 0x2a, 0xe3, 0x1a, 0xc0, 0x30, 0xef, 0x3a, 0xb1, 0x79, 0x18, 0x97, 0x87, 0x44, 0xc9, 0x8c, + 0x9b, 0xad, 0x8b, 0xd9, 0xf9, 0x7a, 0xcd, 0x52, 0x91, 0xc6, 0x26, 0xcc, 0x72, 0xb1, 0xb7, 0xd2, + 0x03, 0x38, 0xee, 0x83, 0xf1, 0x67, 0x2c, 0x50, 0x9b, 0x3f, 0xd5, 0x84, 0x19, 0xd9, 0xd7, 0x1e, + 0x41, 0xdb, 0xe7, 0x26, 0xd1, 0x4e, 0x65, 0x92, 0x45, 0x98, 0x1a, 0x26, 0xd2, 0x79, 0x60, 0xcd, + 0xca, 0xe0, 0xdc, 0x45, 0xb5, 0xb1, 0x5d, 0x64, 0xfe, 0x4c, 0x83, 0xce, 0x5b, 0xd4, 0xf5, 0xf9, + 0x87, 0xd5, 0x20, 0xf0, 0xc4, 0x35, 0xcc, 0xa9, 0x7d, 0xfe, 0x15, 0x68, 0xda, 0xc8, 0xc6, 0x8f, + 0x85, 0xdb, 0xc7, 0x38, 0xe3, 0xcb, 0x69, 0xa4, 0x83, 0x96, 0x9a, 0x7c, 0xd0, 0x62, 0x7e, 0xa8, + 0xc1, 0x2c, 0x1a, 0xe5, 0x9d, 0xc4, 0x8d, 0x4f, 0x2d, 0xdf, 0x1a, 0x4c, 0x1d, 0x24, 0x6e, 0x7c, + 0x8a, 0xa8, 0xcc, 0xe8, 0xca, 0xf1, 0x54, 0xab, 0x88, 0x27, 0xf3, 0x97, 0x1a, 0x5c, 0x28, 0x9a, + 0x75, 0xb5, 0xdf, 0x27, 0xc1, 0xa3, 0x4c, 0x29, 0xe5, 0xa0, 0x69, 0xa2, 0x70, 0xd0, 0x54, 0x29, + 0xb2, 0x45, 0xee, 0x91, 0xfe, 0xe3, 0x2b, 0xf2, 0x77, 0x74, 0xf8, 0xff, 0xeb, 0x59, 0xe2, 0xdd, + 0x0e, 0x6d, 0x3f, 0xda, 0x25, 0x61, 0xf8, 0x08, 0xe5, 0xbd, 0x05, 0x33, 0x3e, 0xb9, 0x9f, 0xcb, + 0x24, 0xd2, 0x71, 0x5c, 0x36, 0x2a, 0xf1, 0x78, 0xb5, 0xcb, 0xfc, 0x8f, 0x06, 0x6d, 0xe4, 0xf3, + 0xb6, 0xdb, 0xdf, 0x7f, 0x84, 0xca, 0x6f, 0xc2, 0xec, 0x3e, 0x97, 0x80, 0x41, 0xa7, 0x28, 0xdb, + 0x05, 0xea, 0x31, 0xd5, 0xff, 0x48, 0x83, 0xf9, 0xf4, 0xf6, 0xf7, 0xd0, 0x7d, 0x94, 0xc1, 0xba, + 0x0d, 0x73, 0x78, 0xd2, 0x7e, 0x5a, 0x03, 0x14, 0xc9, 0xc7, 0xb4, 0xc0, 0x6f, 0x34, 0x98, 0x43, + 0x4e, 0x6f, 0xfa, 0x31, 0x09, 0x4f, 0xad, 0xff, 0x0d, 0x68, 0x11, 0x3f, 0x0e, 0x6d, 0xff, 0x34, + 0x15, 0x52, 0x26, 0x1d, 0xb3, 0x48, 0x7e, 0xa8, 0x81, 0xc1, 0x59, 0x6d, 0xb8, 0xd1, 0xd0, 0x8d, + 0xa2, 0x47, 0xe8, 0xba, 0xf1, 0x04, 0xfe, 0xb1, 0x0e, 0xe7, 0x25, 0x2e, 0xdd, 0x24, 0x7e, 0xdc, + 0x45, 0x36, 0x36, 0xa0, 0xc9, 0x7a, 0x04, 0xf9, 0x1e, 0x74, 0xdc, 0x89, 0x72, 0x42, 0xd6, 0xc5, + 0x72, 0xa0, 0x47, 0xfa, 0xd4, 0x77, 0x22, 0xde, 0x1c, 0xcd, 0x58, 0x0a, 0x8e, 0x95, 0xa1, 0x45, + 0x89, 0xcd, 0xba, 0xed, 0xf7, 0x89, 0xf7, 0xc4, 0x98, 0xc8, 0xfc, 0x85, 0x06, 0xb3, 0x38, 0xe4, + 0xf1, 0x57, 0x99, 0xad, 0xf5, 0x18, 0xc8, 0x9f, 0x18, 0x2f, 0xb1, 0xf0, 0x5a, 0x90, 0xb8, 0xc8, + 0x7d, 0xf5, 0xe3, 0x1b, 0x5a, 0x37, 0xa0, 0xd5, 0xdf, 0xb3, 0xfd, 0xc1, 0xa9, 0x82, 0x4b, 0x26, + 0x35, 0x63, 0x78, 0x5a, 0x3e, 0xb4, 0x5f, 0xc7, 0x4f, 0x5c, 0xfd, 0x97, 0x0b, 0xaa, 0x1c, 0xfb, + 0xce, 0xe1, 0xe1, 0x8c, 0xbe, 0x0f, 0xf3, 0x78, 0x53, 0x2c, 0xf5, 0x84, 0x46, 0x07, 0x26, 0x6d, + 0x07, 0x8f, 0x2e, 0x34, 0x4e, 0x94, 0x82, 0xea, 0x4b, 0x02, 0xf1, 0x2e, 0x2d, 0x7f, 0x49, 0x70, + 0x11, 0xc0, 0x76, 0x9c, 0xf7, 0x68, 0xe8, 0xb8, 0x7e, 0xda, 0xe0, 0x4b, 0x18, 0xf3, 0x2d, 0x98, + 0xbe, 0x16, 0xd2, 0xe1, 0x6d, 0xe9, 0xce, 0xf7, 0xd8, 0x5b, 0x69, 0xf9, 0xbe, 0x58, 0x57, 0xef, + 0x8b, 0xcd, 0xaf, 0xc3, 0x53, 0x25, 0xc1, 0xb9, 0xb1, 0xd6, 0xf1, 0x2a, 0x3b, 0x9d, 0x44, 0x84, + 0x4c, 0xd5, 0x59, 0x9e, 0x2c, 0x8b, 0xa5, 0x10, 0x99, 0xdf, 0xd6, 0xe0, 0x99, 0x12, 0xfb, 0xd5, + 0x20, 0x08, 0xe9, 0xa1, 0xf0, 0xc9, 0x59, 0x4c, 0xa3, 0x36, 0xbf, 0x7a, 0xb1, 0xf9, 0xad, 0x14, + 0x42, 0x69, 0xd8, 0x3f, 0x06, 0x21, 0x7e, 0xae, 0xc1, 0x9c, 0x10, 0xc2, 0x71, 0xc4, 0xb4, 0xaf, + 0x40, 0x03, 0x1f, 0xd3, 0x88, 0x09, 0x9f, 0xa9, 0x9c, 0x30, 0x7d, 0x04, 0x64, 0x89, 0xc1, 0xe5, + 0x88, 0xd4, 0xab, 0x32, 0xea, 0xcb, 0x59, 0xb0, 0x8f, 0xfd, 0xdc, 0x45, 0x10, 0x98, 0x5f, 0x4d, + 0x83, 0x79, 0x83, 0x78, 0xe4, 0x2c, 0x6d, 0x64, 0xde, 0x81, 0x59, 0xfe, 0xb2, 0x27, 0xb7, 0xc1, + 0x99, 0xb0, 0x7d, 0x0f, 0xda, 0x9c, 0xed, 0x99, 0xcb, 0x9b, 0x65, 0x07, 0xb3, 0x8f, 0x5c, 0x4a, + 0xce, 0x84, 0xfb, 0xe7, 0xe1, 0x5c, 0x6a, 0x7b, 0x7c, 0x11, 0x8b, 0xbc, 0x47, 0xdc, 0xed, 0x99, + 0x2f, 0xc1, 0xc2, 0x3a, 0xf5, 0x0f, 0x49, 0x18, 0x29, 0x8f, 0x68, 0x91, 0x42, 0x49, 0x7e, 0x01, + 0x99, 0xf7, 0x60, 0x51, 0xa6, 0xe8, 0x91, 0x78, 0x3b, 0x74, 0x0f, 0x25, 0x2a, 0x71, 0xa8, 0xad, + 0x29, 0x87, 0xda, 0xf9, 0x21, 0xb8, 0xae, 0x1c, 0x82, 0x5f, 0x80, 0xa6, 0x1b, 0x09, 0x06, 0x3c, + 0xa8, 0xa6, 0xac, 0x1c, 0x61, 0xda, 0x30, 0x8f, 0xe6, 0x17, 0x97, 0x4c, 0x7c, 0x8a, 0x45, 0x98, + 0xc2, 0x98, 0xca, 0x26, 0xc9, 0xe0, 0x91, 0x57, 0x36, 0x23, 0x2f, 0x28, 0xcd, 0x1e, 0xcc, 0x8b, + 0x87, 0x38, 0xdb, 0xf6, 0xc0, 0xf5, 0xb1, 0xc8, 0x5e, 0x04, 0x08, 0xec, 0x41, 0xfa, 0xf4, 0x0f, + 0xaf, 0xda, 0x24, 0x0c, 0xfb, 0x1e, 0xed, 0xd1, 0xfb, 0xe2, 0xbb, 0x8e, 0xdf, 0x73, 0x8c, 0xf9, + 0x2e, 0x18, 0x16, 0x89, 0x02, 0xea, 0x47, 0x44, 0xe2, 0xba, 0x04, 0xad, 0xf5, 0x24, 0x0c, 0x89, + 0xcf, 0xa6, 0x4a, 0xdf, 0xb6, 0xc9, 0x28, 0xc6, 0xb7, 0x97, 0xf3, 0xc5, 0x63, 0x79, 0x09, 0x63, + 0xfe, 0xa4, 0x06, 0xcd, 0x9e, 0x3b, 0xf0, 0x6d, 0xcf, 0x22, 0x07, 0xc6, 0xeb, 0xd0, 0xc0, 0x2d, + 0x8b, 0x88, 0x94, 0xaa, 0x63, 0x62, 0x1c, 0x8d, 0x7b, 0x33, 0x8b, 0x1c, 0xdc, 0xf8, 0x3f, 0x4b, + 0xd0, 0x18, 0xef, 0xa4, 0xcf, 0x95, 0x6e, 0xe2, 0x11, 0x94, 0x58, 0xbf, 0x3e, 0x7b, 0x02, 0x13, + 0x31, 0x1a, 0x79, 0xa9, 0x1c, 0x98, 0x40, 0x7d, 0xde, 0xd2, 0x88, 0xf2, 0x30, 0x5a, 0x20, 0xec, + 0x7c, 0x84, 0x40, 0x48, 0xc3, 0xa8, 0x6d, 0x7e, 0x48, 0x23, 0x56, 0xea, 0xd1, 0xd4, 0x78, 0x96, + 0x23, 0xa8, 0x91, 0x86, 0x51, 0xef, 0x25, 0xfe, 0xe0, 0x4e, 0x20, 0xce, 0x0e, 0x47, 0x53, 0xdf, + 0xe0, 0xc3, 0x04, 0x35, 0xd2, 0x30, 0xea, 0x90, 0x17, 0x6f, 0x6e, 0xf4, 0xe3, 0xa8, 0xb1, 0xc6, + 0x0b, 0x6a, 0xa4, 0x59, 0x6b, 0xc2, 0x64, 0x60, 0x1f, 0x79, 0xd4, 0x76, 0xcc, 0x0f, 0x6a, 0x00, + 0xe9, 0xc0, 0x88, 0x37, 0x3a, 0x8a, 0x8b, 0x96, 0x4f, 0x74, 0x51, 0xe0, 0x1d, 0x49, 0x4e, 0xea, + 0x55, 0x3b, 0xe9, 0x73, 0xe3, 0x3a, 0x09, 0xb9, 0x15, 0xdc, 0x74, 0xb5, 0xe0, 0xa6, 0xe5, 0x13, + 0xdd, 0x24, 0x84, 0x12, 0x8e, 0xba, 0x5a, 0x70, 0xd4, 0xf2, 0x89, 0x8e, 0x12, 0xf4, 0xc2, 0x55, + 0x57, 0x0b, 0xae, 0x5a, 0x3e, 0xd1, 0x55, 0x82, 0x5e, 0x38, 0xeb, 0x6a, 0xc1, 0x59, 0xcb, 0x27, + 0x3a, 0x4b, 0xd0, 0x97, 0xdd, 0xf5, 0x37, 0x1d, 0x66, 0xb9, 0xc9, 0xf0, 0xe6, 0xd6, 0xdf, 0xa5, + 0xe5, 0x67, 0x7c, 0x5a, 0xc5, 0x33, 0x3e, 0xe3, 0x45, 0x98, 0x47, 0x04, 0x91, 0xae, 0x58, 0x74, + 0x7e, 0xc5, 0x52, 0xfe, 0xc0, 0x2f, 0x95, 0x92, 0x28, 0xa6, 0xc3, 0x0d, 0x3b, 0xb6, 0xd3, 0xe6, + 0x2b, 0xc7, 0xc8, 0x57, 0x7e, 0x13, 0xa5, 0x17, 0xed, 0x21, 0xa5, 0xc3, 0xec, 0x2e, 0x4f, 0x40, + 0x8c, 0x22, 0x76, 0x87, 0x84, 0x26, 0xb1, 0x28, 0x13, 0x29, 0x88, 0x6f, 0xaf, 0x1c, 0xd7, 0xe6, + 0x17, 0x65, 0xe2, 0x61, 0x52, 0x86, 0xe0, 0x95, 0x2d, 0xbf, 0xf8, 0x13, 0x2f, 0xce, 0x73, 0xcc, + 0x18, 0x97, 0x74, 0xfc, 0xcf, 0x0b, 0x6e, 0xec, 0xca, 0x0f, 0x96, 0xea, 0x96, 0x82, 0x33, 0xff, + 0xa9, 0xc1, 0xb9, 0x6d, 0x3b, 0x8c, 0xdd, 0xbe, 0x1b, 0xd8, 0x7e, 0xdc, 0x25, 0xb1, 0xcd, 0xf5, + 0x54, 0x9e, 0x91, 0x6a, 0x0f, 0xf7, 0x8c, 0x74, 0x1b, 0xe6, 0x06, 0xea, 0x0e, 0xe4, 0x21, 0x37, + 0x0f, 0x45, 0x72, 0xe5, 0x4d, 0x6c, 0xed, 0xa1, 0xdf, 0xc4, 0x9a, 0xdf, 0xd3, 0x61, 0xae, 0x50, + 0x5e, 0x8f, 0x5d, 0x9b, 0x56, 0x01, 0xdc, 0x2c, 0xd4, 0x8e, 0x39, 0xa0, 0x57, 0xe3, 0xd1, 0x92, + 0x88, 0xaa, 0x6e, 0x08, 0x6b, 0xa7, 0xbf, 0x21, 0xbc, 0x01, 0xad, 0x20, 0x77, 0xd2, 0x31, 0xfb, + 0xa3, 0x0a, 0x57, 0x5a, 0x32, 0xa9, 0xf9, 0x3e, 0xcc, 0x97, 0xaa, 0x18, 0xbf, 0xb6, 0xa3, 0xfb, + 0xc4, 0xcf, 0xae, 0xed, 0x18, 0x20, 0x05, 0xb4, 0x5e, 0x0c, 0x68, 0xcf, 0x3d, 0x94, 0x1f, 0xe8, + 0x0b, 0xd0, 0xfc, 0xbe, 0x0e, 0x0b, 0xd5, 0x2b, 0xd0, 0x93, 0x6a, 0xee, 0x1d, 0xe8, 0x8c, 0xaa, + 0xf6, 0x67, 0x66, 0xf5, 0x3c, 0xba, 0xb3, 0xb5, 0xfa, 0x49, 0x35, 0xf7, 0xb9, 0x34, 0xba, 0xa5, + 0xe5, 0xd0, 0xfc, 0x75, 0x66, 0x9f, 0xac, 0x1b, 0x79, 0x42, 0xed, 0x63, 0x5c, 0x82, 0x36, 0xaa, + 0x29, 0x3d, 0x29, 0xc1, 0xe6, 0xb6, 0x84, 0xcf, 0x2b, 0x85, 0xd4, 0x1a, 0x9c, 0x59, 0xcc, 0xfe, + 0x41, 0x4b, 0x7d, 0x92, 0xf5, 0x78, 0x9f, 0x28, 0x9f, 0xe4, 0x91, 0x26, 0x35, 0x3e, 0x52, 0xa4, + 0x65, 0xbd, 0xe7, 0xff, 0x22, 0xed, 0xe4, 0x48, 0xcb, 0x6c, 0x29, 0x35, 0x81, 0xe6, 0xb7, 0x60, + 0x66, 0x83, 0x78, 0xdd, 0x68, 0x90, 0xbe, 0x79, 0x3d, 0xd3, 0xcd, 0x64, 0xf1, 0x65, 0xe0, 0x44, + 0xf9, 0x65, 0xe0, 0x1a, 0xcc, 0xca, 0x02, 0x9c, 0xe6, 0x4d, 0xe7, 0xda, 0x85, 0xaf, 0x2d, 0xae, + 0x88, 0xff, 0x4a, 0xbf, 0x56, 0x32, 0xe2, 0x4e, 0x83, 0xff, 0xbb, 0xf2, 0xe5, 0xff, 0x06, 0x00, + 0x00, 0xff, 0xff, 0x8e, 0xa2, 0xa5, 0x98, 0x84, 0x3d, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 9783c2bd7..225a93c39 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -262,6 +262,8 @@ message MsgData { OfflinePushInfo offlinePushInfo = 19; repeated string atUserIDList = 20; bytes msgDataList = 21; + string attachedInfo = 22; + string ex = 23; } message OfflinePushInfo{ From f687f2eafb95870e03af4efe775891f7091330ae Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 3 Aug 2022 19:34:46 +0800 Subject: [PATCH 022/230] fix bug --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 70e5cd6a8..aeac41995 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -126,7 +126,7 @@ services: # STORE_PORT: 3306 open_im_server: - image: openim/open_im_server:v2.3.0-rc2 + image: openim/open_im_server:v2.3.0 container_name: open_im_server volumes: - ./logs:/Open-IM-Server/logs From a1392a76774106e990b82f88fc78c7424e3c7420 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Thu, 4 Aug 2022 14:04:29 +0800 Subject: [PATCH 023/230] GetGroupAllMemberListBySplit --- cmd/open_im_api/main.go | 1 + internal/api/group/group.go | 44 +++ internal/push/logic/push_to_client.go | 15 +- pkg/base_info/group_api_struct.go | 12 + pkg/proto/group/group.pb.go | 467 +++++++++++++------------- pkg/proto/group/group.proto | 2 + 6 files changed, 305 insertions(+), 236 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 96832597d..f042d3605 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -106,6 +106,7 @@ func main() { groupRouterGroup.POST("/cancel_mute_group", group.CancelMuteGroup) groupRouterGroup.POST("/set_group_member_nickname", group.SetGroupMemberNickname) groupRouterGroup.POST("/set_group_member_info", group.SetGroupMemberInfo) + groupRouterGroup.POST("/get_group_all_member_list_by_split", group.GetGroupAllMemberListBySplit) } superGroupRouterGroup := r.Group("/super_group") { diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 81e3a4ad7..65c196501 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -241,6 +241,50 @@ func GetGroupAllMemberList(c *gin.Context) { c.JSON(http.StatusOK, memberListResp) } +//get_group_all_member_list_by_split +func GetGroupAllMemberListBySplit(c *gin.Context) { + params := api.GetGroupAllMemberListBySplitReq{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &rpc.GetGroupAllMemberReq{} + utils.CopyStructFields(req, ¶ms) + + var ok bool + var errInfo string + ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") + log.NewError(req.OperationID, errMsg) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + + log.NewInfo(req.OperationID, "GetGroupAllMember args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + if etcdConn == nil { + errMsg := req.OperationID + "getcdv3.GetConn == nil" + log.NewError(req.OperationID, errMsg) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + client := rpc.NewGroupClient(etcdConn) + RpcResp, err := client.GetGroupAllMember(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, "GetGroupAllMember failed err", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + + memberListResp := api.GetGroupAllMemberResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, MemberList: RpcResp.MemberList} + memberListResp.Data = jsonData.JsonDataList(memberListResp.MemberList) + log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp) + c.JSON(http.StatusOK, memberListResp) +} + // @Summary 获取用户加入群列表 // @Description 获取用户加入群列表 // @Tags 群组相关 diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 8f4a635c4..fa4f8afb2 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -21,7 +21,6 @@ import ( "context" "encoding/json" "github.com/golang/protobuf/proto" - "google.golang.org/grpc" "strings" ) @@ -37,16 +36,13 @@ type AtContent struct { IsAtSelf bool `json:"isAtSelf"` } -var grpcCons []*grpc.ClientConn +//var grpcCons []*grpc.ClientConn func MsgToUser(pushMsg *pbPush.PushMsgReq) { var wsResult []*pbRelay.SingelMsgToUserResultList isOfflinePush := utils.GetSwitchFromOptions(pushMsg.MsgData.Options, constant.IsOfflinePush) log.Debug(pushMsg.OperationID, "Get msg from msg_transfer And push msg", pushMsg.String()) - if len(grpcCons) == 0 { - log.NewWarn(pushMsg.OperationID, "first GetConn4Unique ") - grpcCons = getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName) - } + grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName) var UIDList = []string{pushMsg.PushToUserID} callbackResp := callbackOnlinePush(pushMsg.OperationID, UIDList, pushMsg.MsgData) @@ -191,13 +187,10 @@ func MsgToSuperGroupUser(pushMsg *pbPush.PushMsgReq) { pushToUserIDList = cacheResp.UserIDList } - if len(grpcCons) == 0 { - log.NewWarn(pushMsg.OperationID, "first GetConn4Unique ") - grpcCons = getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName) - } + grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName) //Online push message - log.Debug("test", pushMsg.OperationID, "len grpc", len(grpcCons), "data", pushMsg.String()) + log.Debug(pushMsg.OperationID, "len grpc", len(grpcCons), "data", pushMsg.String()) for _, v := range grpcCons { msgClient := pbRelay.NewRelayClient(v) reply, err := msgClient.SuperGroupOnlineBatchPushOneMsg(context.Background(), &pbRelay.OnlineBatchPushOneMsgReq{OperationID: pushMsg.OperationID, MsgData: pushMsg.MsgData, PushToUserIDList: pushToUserIDList}) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 09a164e42..6ba6b2d52 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -80,6 +80,18 @@ type GetGroupAllMemberResp struct { Data []map[string]interface{} `json:"data" swaggerignore:"true"` } +type GetGroupAllMemberListBySplitReq struct { + GroupID string `json:"groupID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` + Offset int32 `json:"offset" binding:"required"` + Count int32 `json:"count" binding:"required"` +} +type GetGroupAllMemberListBySplitResp struct { + CommResp + MemberList []*open_im_sdk.GroupMemberFullInfo `json:"-"` + Data []map[string]interface{} `json:"data" swaggerignore:"true"` +} + type CreateGroupReq struct { MemberList []*GroupAddMemberInfo `json:"memberList"` OwnerUserID string `json:"ownerUserID"` diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index 349827f6d..cf441d31d 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -37,7 +37,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{0} + return fileDescriptor_group_b72712dbc4ea95cc, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{1} + return fileDescriptor_group_b72712dbc4ea95cc, []int{1} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -132,7 +132,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{2} + return fileDescriptor_group_b72712dbc4ea95cc, []int{2} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -200,7 +200,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{3} + return fileDescriptor_group_b72712dbc4ea95cc, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -254,7 +254,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{4} + return fileDescriptor_group_b72712dbc4ea95cc, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -308,7 +308,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{5} + return fileDescriptor_group_b72712dbc4ea95cc, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -362,7 +362,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{6} + return fileDescriptor_group_b72712dbc4ea95cc, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -414,7 +414,7 @@ func (m *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} } func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoResp) ProtoMessage() {} func (*SetGroupInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{7} + return fileDescriptor_group_b72712dbc4ea95cc, []int{7} } func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b) @@ -454,7 +454,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{8} + return fileDescriptor_group_b72712dbc4ea95cc, []int{8} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -508,7 +508,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{9} + return fileDescriptor_group_b72712dbc4ea95cc, []int{9} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -562,7 +562,7 @@ func (m *GetUserReqApplicationListReq) Reset() { *m = GetUserReqApplicat func (m *GetUserReqApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListReq) ProtoMessage() {} func (*GetUserReqApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{10} + return fileDescriptor_group_b72712dbc4ea95cc, []int{10} } func (m *GetUserReqApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListReq.Unmarshal(m, b) @@ -615,7 +615,7 @@ func (m *GetUserReqApplicationListResp) Reset() { *m = GetUserReqApplica func (m *GetUserReqApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListResp) ProtoMessage() {} func (*GetUserReqApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{11} + return fileDescriptor_group_b72712dbc4ea95cc, []int{11} } func (m *GetUserReqApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListResp.Unmarshal(m, b) @@ -664,7 +664,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{12} + return fileDescriptor_group_b72712dbc4ea95cc, []int{12} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -730,7 +730,7 @@ func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerResp) ProtoMessage() {} func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{13} + return fileDescriptor_group_b72712dbc4ea95cc, []int{13} } func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) @@ -773,7 +773,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{14} + return fileDescriptor_group_b72712dbc4ea95cc, []int{14} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -846,7 +846,7 @@ func (m *JoinGroupResp) Reset() { *m = JoinGroupResp{} } func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) } func (*JoinGroupResp) ProtoMessage() {} func (*JoinGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{15} + return fileDescriptor_group_b72712dbc4ea95cc, []int{15} } func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b) @@ -889,7 +889,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{16} + return fileDescriptor_group_b72712dbc4ea95cc, []int{16} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -962,7 +962,7 @@ func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationRe func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseResp) ProtoMessage() {} func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{17} + return fileDescriptor_group_b72712dbc4ea95cc, []int{17} } func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) @@ -1002,7 +1002,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{18} + return fileDescriptor_group_b72712dbc4ea95cc, []int{18} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1054,7 +1054,7 @@ func (m *QuitGroupResp) Reset() { *m = QuitGroupResp{} } func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) } func (*QuitGroupResp) ProtoMessage() {} func (*QuitGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{19} + return fileDescriptor_group_b72712dbc4ea95cc, []int{19} } func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b) @@ -1096,7 +1096,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{20} + return fileDescriptor_group_b72712dbc4ea95cc, []int{20} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1165,7 +1165,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{21} + return fileDescriptor_group_b72712dbc4ea95cc, []int{21} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1227,7 +1227,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{22} + return fileDescriptor_group_b72712dbc4ea95cc, []int{22} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1288,7 +1288,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{23} + return fileDescriptor_group_b72712dbc4ea95cc, []int{23} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1344,7 +1344,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{24} + return fileDescriptor_group_b72712dbc4ea95cc, []int{24} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1411,7 +1411,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{25} + return fileDescriptor_group_b72712dbc4ea95cc, []int{25} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1458,7 +1458,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{26} + return fileDescriptor_group_b72712dbc4ea95cc, []int{26} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1512,7 +1512,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{27} + return fileDescriptor_group_b72712dbc4ea95cc, []int{27} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1566,7 +1566,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{28} + return fileDescriptor_group_b72712dbc4ea95cc, []int{28} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -1622,7 +1622,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{29} + return fileDescriptor_group_b72712dbc4ea95cc, []int{29} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -1690,7 +1690,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{30} + return fileDescriptor_group_b72712dbc4ea95cc, []int{30} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -1735,6 +1735,8 @@ type GetGroupAllMemberReq struct { GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + Offset int32 `protobuf:"varint,4,opt,name=Offset" json:"Offset,omitempty"` + Count int32 `protobuf:"varint,5,opt,name=Count" json:"Count,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1744,7 +1746,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{31} + return fileDescriptor_group_b72712dbc4ea95cc, []int{31} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -1785,6 +1787,20 @@ func (m *GetGroupAllMemberReq) GetOperationID() string { return "" } +func (m *GetGroupAllMemberReq) GetOffset() int32 { + if m != nil { + return m.Offset + } + return 0 +} + +func (m *GetGroupAllMemberReq) GetCount() int32 { + if m != nil { + return m.Count + } + return 0 +} + type GetGroupAllMemberResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` @@ -1798,7 +1814,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{32} + return fileDescriptor_group_b72712dbc4ea95cc, []int{32} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -1852,7 +1868,7 @@ func (m *CMSGroup) Reset() { *m = CMSGroup{} } func (m *CMSGroup) String() string { return proto.CompactTextString(m) } func (*CMSGroup) ProtoMessage() {} func (*CMSGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{33} + return fileDescriptor_group_b72712dbc4ea95cc, []int{33} } func (m *CMSGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CMSGroup.Unmarshal(m, b) @@ -1906,7 +1922,7 @@ func (m *GetGroupReq) Reset() { *m = GetGroupReq{} } func (m *GetGroupReq) String() string { return proto.CompactTextString(m) } func (*GetGroupReq) ProtoMessage() {} func (*GetGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{34} + return fileDescriptor_group_b72712dbc4ea95cc, []int{34} } func (m *GetGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupReq.Unmarshal(m, b) @@ -1960,7 +1976,7 @@ func (m *GetGroupResp) Reset() { *m = GetGroupResp{} } func (m *GetGroupResp) String() string { return proto.CompactTextString(m) } func (*GetGroupResp) ProtoMessage() {} func (*GetGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{35} + return fileDescriptor_group_b72712dbc4ea95cc, []int{35} } func (m *GetGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupResp.Unmarshal(m, b) @@ -2013,7 +2029,7 @@ func (m *GetGroupsReq) Reset() { *m = GetGroupsReq{} } func (m *GetGroupsReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsReq) ProtoMessage() {} func (*GetGroupsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{36} + return fileDescriptor_group_b72712dbc4ea95cc, []int{36} } func (m *GetGroupsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsReq.Unmarshal(m, b) @@ -2060,7 +2076,7 @@ func (m *GetGroupsResp) Reset() { *m = GetGroupsResp{} } func (m *GetGroupsResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsResp) ProtoMessage() {} func (*GetGroupsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{37} + return fileDescriptor_group_b72712dbc4ea95cc, []int{37} } func (m *GetGroupsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsResp.Unmarshal(m, b) @@ -2113,7 +2129,7 @@ func (m *GetGroupMemberReq) Reset() { *m = GetGroupMemberReq{} } func (m *GetGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberReq) ProtoMessage() {} func (*GetGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{38} + return fileDescriptor_group_b72712dbc4ea95cc, []int{38} } func (m *GetGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberReq.Unmarshal(m, b) @@ -2160,7 +2176,7 @@ func (m *OperateGroupStatusReq) Reset() { *m = OperateGroupStatusReq{} } func (m *OperateGroupStatusReq) String() string { return proto.CompactTextString(m) } func (*OperateGroupStatusReq) ProtoMessage() {} func (*OperateGroupStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{39} + return fileDescriptor_group_b72712dbc4ea95cc, []int{39} } func (m *OperateGroupStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateGroupStatusReq.Unmarshal(m, b) @@ -2211,7 +2227,7 @@ func (m *OperateGroupStatusResp) Reset() { *m = OperateGroupStatusResp{} func (m *OperateGroupStatusResp) String() string { return proto.CompactTextString(m) } func (*OperateGroupStatusResp) ProtoMessage() {} func (*OperateGroupStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{40} + return fileDescriptor_group_b72712dbc4ea95cc, []int{40} } func (m *OperateGroupStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateGroupStatusResp.Unmarshal(m, b) @@ -2245,7 +2261,7 @@ func (m *OperateUserRoleReq) Reset() { *m = OperateUserRoleReq{} } func (m *OperateUserRoleReq) String() string { return proto.CompactTextString(m) } func (*OperateUserRoleReq) ProtoMessage() {} func (*OperateUserRoleReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{41} + return fileDescriptor_group_b72712dbc4ea95cc, []int{41} } func (m *OperateUserRoleReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleReq.Unmarshal(m, b) @@ -2303,7 +2319,7 @@ func (m *OperateUserRoleResp) Reset() { *m = OperateUserRoleResp{} } func (m *OperateUserRoleResp) String() string { return proto.CompactTextString(m) } func (*OperateUserRoleResp) ProtoMessage() {} func (*OperateUserRoleResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{42} + return fileDescriptor_group_b72712dbc4ea95cc, []int{42} } func (m *OperateUserRoleResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleResp.Unmarshal(m, b) @@ -2335,7 +2351,7 @@ func (m *DeleteGroupReq) Reset() { *m = DeleteGroupReq{} } func (m *DeleteGroupReq) String() string { return proto.CompactTextString(m) } func (*DeleteGroupReq) ProtoMessage() {} func (*DeleteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{43} + return fileDescriptor_group_b72712dbc4ea95cc, []int{43} } func (m *DeleteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteGroupReq.Unmarshal(m, b) @@ -2379,7 +2395,7 @@ func (m *DeleteGroupResp) Reset() { *m = DeleteGroupResp{} } func (m *DeleteGroupResp) String() string { return proto.CompactTextString(m) } func (*DeleteGroupResp) ProtoMessage() {} func (*DeleteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{44} + return fileDescriptor_group_b72712dbc4ea95cc, []int{44} } func (m *DeleteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteGroupResp.Unmarshal(m, b) @@ -2411,7 +2427,7 @@ func (m *GetGroupByIdReq) Reset() { *m = GetGroupByIdReq{} } func (m *GetGroupByIdReq) String() string { return proto.CompactTextString(m) } func (*GetGroupByIdReq) ProtoMessage() {} func (*GetGroupByIdReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{45} + return fileDescriptor_group_b72712dbc4ea95cc, []int{45} } func (m *GetGroupByIdReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupByIdReq.Unmarshal(m, b) @@ -2456,7 +2472,7 @@ func (m *GetGroupByIdResp) Reset() { *m = GetGroupByIdResp{} } func (m *GetGroupByIdResp) String() string { return proto.CompactTextString(m) } func (*GetGroupByIdResp) ProtoMessage() {} func (*GetGroupByIdResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{46} + return fileDescriptor_group_b72712dbc4ea95cc, []int{46} } func (m *GetGroupByIdResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupByIdResp.Unmarshal(m, b) @@ -2497,7 +2513,7 @@ func (m *GetGroupMembersCMSReq) Reset() { *m = GetGroupMembersCMSReq{} } func (m *GetGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSReq) ProtoMessage() {} func (*GetGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{47} + return fileDescriptor_group_b72712dbc4ea95cc, []int{47} } func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b) @@ -2558,7 +2574,7 @@ func (m *GetGroupMembersCMSResp) Reset() { *m = GetGroupMembersCMSResp{} func (m *GetGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSResp) ProtoMessage() {} func (*GetGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{48} + return fileDescriptor_group_b72712dbc4ea95cc, []int{48} } func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b) @@ -2613,7 +2629,7 @@ func (m *RemoveGroupMembersCMSReq) Reset() { *m = RemoveGroupMembersCMSR func (m *RemoveGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*RemoveGroupMembersCMSReq) ProtoMessage() {} func (*RemoveGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{49} + return fileDescriptor_group_b72712dbc4ea95cc, []int{49} } func (m *RemoveGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSReq.Unmarshal(m, b) @@ -2673,7 +2689,7 @@ func (m *RemoveGroupMembersCMSResp) Reset() { *m = RemoveGroupMembersCMS func (m *RemoveGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*RemoveGroupMembersCMSResp) ProtoMessage() {} func (*RemoveGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{50} + return fileDescriptor_group_b72712dbc4ea95cc, []int{50} } func (m *RemoveGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSResp.Unmarshal(m, b) @@ -2721,7 +2737,7 @@ func (m *AddGroupMembersCMSReq) Reset() { *m = AddGroupMembersCMSReq{} } func (m *AddGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*AddGroupMembersCMSReq) ProtoMessage() {} func (*AddGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{51} + return fileDescriptor_group_b72712dbc4ea95cc, []int{51} } func (m *AddGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSReq.Unmarshal(m, b) @@ -2781,7 +2797,7 @@ func (m *AddGroupMembersCMSResp) Reset() { *m = AddGroupMembersCMSResp{} func (m *AddGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*AddGroupMembersCMSResp) ProtoMessage() {} func (*AddGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{52} + return fileDescriptor_group_b72712dbc4ea95cc, []int{52} } func (m *AddGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSResp.Unmarshal(m, b) @@ -2828,7 +2844,7 @@ func (m *DismissGroupReq) Reset() { *m = DismissGroupReq{} } func (m *DismissGroupReq) String() string { return proto.CompactTextString(m) } func (*DismissGroupReq) ProtoMessage() {} func (*DismissGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{53} + return fileDescriptor_group_b72712dbc4ea95cc, []int{53} } func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b) @@ -2880,7 +2896,7 @@ func (m *DismissGroupResp) Reset() { *m = DismissGroupResp{} } func (m *DismissGroupResp) String() string { return proto.CompactTextString(m) } func (*DismissGroupResp) ProtoMessage() {} func (*DismissGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{54} + return fileDescriptor_group_b72712dbc4ea95cc, []int{54} } func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b) @@ -2922,7 +2938,7 @@ func (m *MuteGroupMemberReq) Reset() { *m = MuteGroupMemberReq{} } func (m *MuteGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*MuteGroupMemberReq) ProtoMessage() {} func (*MuteGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{55} + return fileDescriptor_group_b72712dbc4ea95cc, []int{55} } func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b) @@ -2988,7 +3004,7 @@ func (m *MuteGroupMemberResp) Reset() { *m = MuteGroupMemberResp{} } func (m *MuteGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*MuteGroupMemberResp) ProtoMessage() {} func (*MuteGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{56} + return fileDescriptor_group_b72712dbc4ea95cc, []int{56} } func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b) @@ -3029,7 +3045,7 @@ func (m *CancelMuteGroupMemberReq) Reset() { *m = CancelMuteGroupMemberR func (m *CancelMuteGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupMemberReq) ProtoMessage() {} func (*CancelMuteGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{57} + return fileDescriptor_group_b72712dbc4ea95cc, []int{57} } func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b) @@ -3088,7 +3104,7 @@ func (m *CancelMuteGroupMemberResp) Reset() { *m = CancelMuteGroupMember func (m *CancelMuteGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupMemberResp) ProtoMessage() {} func (*CancelMuteGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{58} + return fileDescriptor_group_b72712dbc4ea95cc, []int{58} } func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b) @@ -3128,7 +3144,7 @@ func (m *MuteGroupReq) Reset() { *m = MuteGroupReq{} } func (m *MuteGroupReq) String() string { return proto.CompactTextString(m) } func (*MuteGroupReq) ProtoMessage() {} func (*MuteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{59} + return fileDescriptor_group_b72712dbc4ea95cc, []int{59} } func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b) @@ -3180,7 +3196,7 @@ func (m *MuteGroupResp) Reset() { *m = MuteGroupResp{} } func (m *MuteGroupResp) String() string { return proto.CompactTextString(m) } func (*MuteGroupResp) ProtoMessage() {} func (*MuteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{60} + return fileDescriptor_group_b72712dbc4ea95cc, []int{60} } func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b) @@ -3220,7 +3236,7 @@ func (m *CancelMuteGroupReq) Reset() { *m = CancelMuteGroupReq{} } func (m *CancelMuteGroupReq) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupReq) ProtoMessage() {} func (*CancelMuteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{61} + return fileDescriptor_group_b72712dbc4ea95cc, []int{61} } func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b) @@ -3272,7 +3288,7 @@ func (m *CancelMuteGroupResp) Reset() { *m = CancelMuteGroupResp{} } func (m *CancelMuteGroupResp) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupResp) ProtoMessage() {} func (*CancelMuteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{62} + return fileDescriptor_group_b72712dbc4ea95cc, []int{62} } func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b) @@ -3314,7 +3330,7 @@ func (m *SetGroupMemberNicknameReq) Reset() { *m = SetGroupMemberNicknam func (m *SetGroupMemberNicknameReq) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberNicknameReq) ProtoMessage() {} func (*SetGroupMemberNicknameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{63} + return fileDescriptor_group_b72712dbc4ea95cc, []int{63} } func (m *SetGroupMemberNicknameReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberNicknameReq.Unmarshal(m, b) @@ -3380,7 +3396,7 @@ func (m *SetGroupMemberNicknameResp) Reset() { *m = SetGroupMemberNickna func (m *SetGroupMemberNicknameResp) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberNicknameResp) ProtoMessage() {} func (*SetGroupMemberNicknameResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{64} + return fileDescriptor_group_b72712dbc4ea95cc, []int{64} } func (m *SetGroupMemberNicknameResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberNicknameResp.Unmarshal(m, b) @@ -3420,7 +3436,7 @@ func (m *GetJoinedSuperGroupListReq) Reset() { *m = GetJoinedSuperGroupL func (m *GetJoinedSuperGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedSuperGroupListReq) ProtoMessage() {} func (*GetJoinedSuperGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{65} + return fileDescriptor_group_b72712dbc4ea95cc, []int{65} } func (m *GetJoinedSuperGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedSuperGroupListReq.Unmarshal(m, b) @@ -3473,7 +3489,7 @@ func (m *GetJoinedSuperGroupListResp) Reset() { *m = GetJoinedSuperGroup func (m *GetJoinedSuperGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedSuperGroupListResp) ProtoMessage() {} func (*GetJoinedSuperGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{66} + return fileDescriptor_group_b72712dbc4ea95cc, []int{66} } func (m *GetJoinedSuperGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedSuperGroupListResp.Unmarshal(m, b) @@ -3520,7 +3536,7 @@ func (m *GetSuperGroupsInfoReq) Reset() { *m = GetSuperGroupsInfoReq{} } func (m *GetSuperGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupsInfoReq) ProtoMessage() {} func (*GetSuperGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{67} + return fileDescriptor_group_b72712dbc4ea95cc, []int{67} } func (m *GetSuperGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupsInfoReq.Unmarshal(m, b) @@ -3573,7 +3589,7 @@ func (m *GetSuperGroupsInfoResp) Reset() { *m = GetSuperGroupsInfoResp{} func (m *GetSuperGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupsInfoResp) ProtoMessage() {} func (*GetSuperGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{68} + return fileDescriptor_group_b72712dbc4ea95cc, []int{68} } func (m *GetSuperGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupsInfoResp.Unmarshal(m, b) @@ -3625,7 +3641,7 @@ func (m *SetGroupMemberInfoReq) Reset() { *m = SetGroupMemberInfoReq{} } func (m *SetGroupMemberInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberInfoReq) ProtoMessage() {} func (*SetGroupMemberInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{69} + return fileDescriptor_group_b72712dbc4ea95cc, []int{69} } func (m *SetGroupMemberInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberInfoReq.Unmarshal(m, b) @@ -3712,7 +3728,7 @@ func (m *SetGroupMemberInfoResp) Reset() { *m = SetGroupMemberInfoResp{} func (m *SetGroupMemberInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberInfoResp) ProtoMessage() {} func (*SetGroupMemberInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_d529c7a0e85dbd90, []int{70} + return fileDescriptor_group_b72712dbc4ea95cc, []int{70} } func (m *SetGroupMemberInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberInfoResp.Unmarshal(m, b) @@ -4941,159 +4957,160 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_d529c7a0e85dbd90) } +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_b72712dbc4ea95cc) } -var fileDescriptor_group_d529c7a0e85dbd90 = []byte{ - // 2407 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x4f, 0x6f, 0x1c, 0x49, - 0x15, 0x57, 0xdb, 0x99, 0xd8, 0xf3, 0xec, 0xc9, 0xd8, 0xe5, 0x8c, 0x33, 0xee, 0x78, 0xbd, 0x4e, - 0x6d, 0x58, 0x22, 0x58, 0x6c, 0xe1, 0x48, 0x11, 0xb0, 0x88, 0x10, 0xff, 0x8b, 0x27, 0xf1, 0x1f, - 0xdc, 0x93, 0xe5, 0x10, 0x09, 0x85, 0xc9, 0x74, 0x79, 0x34, 0x78, 0xa6, 0xbb, 0xdd, 0xd5, 0x63, - 0x07, 0x2e, 0x2b, 0x2e, 0x48, 0x8b, 0x90, 0x00, 0x21, 0x71, 0x02, 0xc1, 0x9e, 0xe0, 0xc0, 0x81, - 0x03, 0x9c, 0x11, 0x77, 0xbe, 0x00, 0x57, 0xbe, 0x00, 0x9f, 0x00, 0x09, 0x75, 0x55, 0x75, 0x75, - 0x75, 0x77, 0x75, 0x7b, 0xd2, 0x4e, 0x36, 0x97, 0x96, 0xea, 0xd5, 0xab, 0xaa, 0xdf, 0x7b, 0xf5, - 0xde, 0xab, 0x7a, 0xaf, 0x1a, 0xe6, 0x7b, 0xbe, 0x3b, 0xf2, 0xd6, 0xd9, 0x77, 0xcd, 0xf3, 0xdd, - 0xc0, 0x45, 0x15, 0xd6, 0x30, 0xef, 0x1c, 0x79, 0xc4, 0x79, 0xd1, 0x3a, 0x58, 0xf7, 0x4e, 0x7b, - 0xeb, 0xac, 0x67, 0x9d, 0xda, 0xa7, 0x2f, 0x2e, 0xe8, 0xfa, 0x05, 0xe5, 0x9c, 0xe6, 0x97, 0xf3, - 0x59, 0xfc, 0x8e, 0xe7, 0x11, 0x5f, 0x30, 0xe2, 0xef, 0x00, 0x6c, 0xb9, 0xc3, 0xa1, 0xeb, 0x58, - 0x84, 0x7a, 0xa8, 0x09, 0x53, 0x3b, 0xbe, 0xbf, 0xe5, 0xda, 0xa4, 0x69, 0xac, 0x1a, 0xf7, 0x2a, - 0x56, 0xd4, 0x44, 0x8b, 0x70, 0x7d, 0xc7, 0xf7, 0x0f, 0x68, 0xaf, 0x39, 0xb1, 0x6a, 0xdc, 0xab, - 0x5a, 0xa2, 0x85, 0x9f, 0x00, 0x7a, 0x1c, 0x82, 0x7a, 0x64, 0xdb, 0x07, 0x64, 0xf8, 0x92, 0xf8, - 0x2d, 0xe7, 0xc4, 0x0d, 0xb9, 0x3f, 0xa1, 0xc4, 0x6f, 0x6d, 0xb3, 0x69, 0xaa, 0x96, 0x68, 0xa1, - 0x65, 0xa8, 0x5a, 0xee, 0x80, 0xec, 0x93, 0x73, 0x32, 0x60, 0x13, 0x55, 0xac, 0x98, 0x80, 0xff, - 0x6b, 0xc0, 0x8d, 0x2d, 0x9f, 0x74, 0x02, 0xc2, 0xa6, 0xb4, 0xc8, 0x19, 0x7a, 0x04, 0x37, 0x5a, - 0x4e, 0x3f, 0xe0, 0x53, 0xef, 0xf7, 0x69, 0xd0, 0x34, 0x56, 0x27, 0xef, 0xcd, 0x6c, 0x2c, 0xad, - 0x71, 0xbd, 0x64, 0xd7, 0xb6, 0x52, 0x03, 0xd0, 0xb7, 0xa0, 0xca, 0xb8, 0xc2, 0x4e, 0xb6, 0xe6, - 0xcc, 0xc6, 0xf2, 0x1a, 0x25, 0xfe, 0x39, 0xf1, 0x5f, 0x74, 0xbc, 0xfe, 0x0b, 0xaf, 0xe3, 0x77, - 0x86, 0x74, 0x4d, 0xf2, 0x58, 0x31, 0x3b, 0x5a, 0x85, 0x99, 0x23, 0x8f, 0xf8, 0x9d, 0xa0, 0xef, - 0x3a, 0xad, 0xed, 0xe6, 0x24, 0x13, 0x46, 0x25, 0x21, 0x13, 0xa6, 0x8f, 0x3c, 0x21, 0xeb, 0x35, - 0xd6, 0x2d, 0xdb, 0x6c, 0xf4, 0x85, 0x43, 0x7c, 0xd1, 0x5d, 0x11, 0xa3, 0x63, 0x12, 0xfe, 0x14, - 0xea, 0x09, 0x81, 0xcb, 0x6c, 0x41, 0x52, 0xc0, 0xc9, 0xd7, 0x12, 0x10, 0xfb, 0x30, 0xf7, 0x98, - 0x04, 0xac, 0x4d, 0x59, 0x1f, 0x39, 0x0b, 0x61, 0x73, 0x86, 0x6d, 0xa9, 0xf0, 0xaa, 0xa5, 0x92, - 0xd2, 0x6a, 0x99, 0x28, 0x56, 0xcb, 0x64, 0x52, 0x2d, 0xf8, 0x33, 0x03, 0xe6, 0x53, 0x8b, 0x96, - 0x92, 0x7b, 0x13, 0x6a, 0x52, 0x10, 0x86, 0x74, 0x92, 0x99, 0x46, 0xb1, 0xec, 0xc9, 0x21, 0xf8, - 0xf7, 0x06, 0xd4, 0xdb, 0x02, 0x4b, 0x24, 0xff, 0x3e, 0xd4, 0x7b, 0x51, 0x7b, 0xd7, 0xf5, 0xdb, - 0x24, 0x60, 0x88, 0x66, 0x36, 0x70, 0xd1, 0xcc, 0x9c, 0xd3, 0x4a, 0x0f, 0x4d, 0x68, 0x62, 0x42, - 0x63, 0x20, 0x85, 0xe6, 0x85, 0x77, 0x60, 0x2e, 0x09, 0x8f, 0x7a, 0xe8, 0xeb, 0xaa, 0xcb, 0x0a, - 0x68, 0xf3, 0xc2, 0x1f, 0xe2, 0x0e, 0x4b, 0x61, 0xc2, 0x3f, 0x01, 0x33, 0xd2, 0xf8, 0x23, 0xcf, - 0x1b, 0xf4, 0xbb, 0x6c, 0xfe, 0x50, 0x03, 0xa1, 0xc0, 0x2a, 0x44, 0xa3, 0x18, 0xa2, 0x66, 0xab, - 0x57, 0x00, 0x76, 0x7d, 0x77, 0x98, 0xd8, 0x6c, 0x85, 0x82, 0x7f, 0x67, 0xc0, 0xed, 0xdc, 0xc5, - 0x4b, 0x6d, 0xfc, 0x53, 0x98, 0x8b, 0x02, 0xc4, 0x88, 0xd0, 0x40, 0xd9, 0xfb, 0xf7, 0xf3, 0x76, - 0x48, 0xb0, 0x5a, 0x99, 0x81, 0x38, 0x80, 0xe5, 0xc7, 0x24, 0x08, 0xb1, 0x5a, 0xe4, 0x4c, 0xa3, - 0x9c, 0xbc, 0x50, 0x76, 0xb5, 0x7d, 0xfd, 0x83, 0x01, 0xef, 0x15, 0x2c, 0x5b, 0x6a, 0x97, 0xb5, - 0x7a, 0x99, 0x28, 0xab, 0x97, 0x7f, 0x18, 0xd0, 0x78, 0xe6, 0x77, 0x1c, 0x7a, 0x42, 0x7c, 0xd6, - 0xc9, 0xe2, 0x56, 0xa8, 0x91, 0x26, 0x4c, 0x89, 0x60, 0x20, 0x54, 0x12, 0x35, 0xd1, 0x87, 0x70, - 0xe3, 0x68, 0x60, 0xab, 0x31, 0x8f, 0x6b, 0x26, 0x45, 0x0d, 0xf9, 0x0e, 0xc9, 0x85, 0xca, 0xc7, - 0x55, 0x94, 0xa2, 0xa6, 0xf5, 0x78, 0xad, 0x38, 0xce, 0x54, 0x52, 0x71, 0xe6, 0x29, 0x2c, 0xea, - 0x04, 0x28, 0xe7, 0x41, 0xff, 0x32, 0x60, 0xf6, 0x89, 0xdb, 0x77, 0xe4, 0xc9, 0x94, 0xaf, 0x85, - 0x15, 0x00, 0x8b, 0x9c, 0x1d, 0x10, 0x4a, 0x3b, 0x3d, 0x22, 0x34, 0xa0, 0x50, 0x8a, 0x62, 0xe3, - 0x18, 0x12, 0xaf, 0x00, 0x84, 0x38, 0xda, 0xee, 0xc8, 0xef, 0x12, 0x26, 0x73, 0xc5, 0x52, 0x28, - 0xe8, 0x2e, 0xd4, 0x5a, 0xce, 0x79, 0x3f, 0x90, 0xaa, 0xbd, 0xce, 0xe6, 0x48, 0x12, 0xf1, 0x26, - 0xd4, 0x14, 0x69, 0xca, 0xa9, 0xe4, 0xdf, 0xa1, 0x63, 0xa7, 0xbc, 0x3a, 0xec, 0x70, 0x1d, 0x4a, - 0xc4, 0x39, 0xa2, 0xca, 0x62, 0x14, 0xef, 0x5e, 0xda, 0x87, 0x14, 0xfd, 0x4e, 0x66, 0xf4, 0xab, - 0x04, 0x9c, 0x6b, 0xe9, 0x80, 0x13, 0xf6, 0xef, 0x75, 0x1c, 0x7b, 0x40, 0xec, 0x30, 0x74, 0x70, - 0xab, 0x50, 0x28, 0x08, 0xc3, 0x2c, 0x6f, 0x59, 0x84, 0x8e, 0x06, 0x01, 0x53, 0x50, 0xc5, 0x4a, - 0xd0, 0xf0, 0x31, 0x2c, 0xe7, 0x8b, 0x56, 0x4e, 0x5d, 0x27, 0x30, 0x7b, 0x3c, 0xea, 0x07, 0x63, - 0x18, 0xd0, 0xd5, 0x8e, 0xd7, 0x4d, 0xa8, 0x29, 0xeb, 0x94, 0xc3, 0xfa, 0xb9, 0x01, 0x8d, 0x28, - 0x66, 0xc7, 0x57, 0xa9, 0x62, 0xd4, 0x57, 0x0a, 0x88, 0x61, 0x98, 0xdd, 0xed, 0x0f, 0x02, 0xe2, - 0xb3, 0x0d, 0xad, 0x58, 0xa2, 0x15, 0xae, 0x77, 0x48, 0x5e, 0x05, 0x6d, 0x72, 0x26, 0x6c, 0x3d, - 0x6a, 0xe2, 0xbf, 0x18, 0xb0, 0xa8, 0xc3, 0x58, 0xea, 0x48, 0xd9, 0x05, 0x18, 0xc6, 0x77, 0x4c, - 0x7e, 0x98, 0x7c, 0x98, 0x17, 0x34, 0xf9, 0x6a, 0xbb, 0xa3, 0xc1, 0x80, 0x9d, 0xc9, 0xca, 0xc8, - 0x70, 0x65, 0x47, 0xc0, 0xe5, 0x72, 0x44, 0x4d, 0xfc, 0xab, 0x0c, 0x5c, 0x79, 0xe1, 0x2a, 0x0c, - 0x25, 0x0a, 0xac, 0x09, 0x76, 0x13, 0x53, 0x97, 0xbb, 0x52, 0x28, 0xc1, 0xbf, 0x31, 0xe0, 0x96, - 0x16, 0xd2, 0xbb, 0x54, 0x21, 0xfe, 0xab, 0x01, 0xe8, 0x69, 0xbf, 0x7b, 0xaa, 0xf0, 0x15, 0x2b, - 0xe9, 0x2b, 0x30, 0x17, 0xf2, 0x13, 0x9b, 0x0b, 0xae, 0xa8, 0x2a, 0x43, 0x0f, 0xc1, 0x5b, 0xa4, - 0x43, 0x5d, 0x47, 0xa8, 0x4b, 0xb4, 0xd2, 0xca, 0xaa, 0x14, 0xbb, 0xdc, 0xf5, 0x94, 0xcb, 0x7d, - 0x0c, 0xd5, 0x96, 0xbd, 0xc1, 0x43, 0x47, 0xee, 0x85, 0x81, 0x2d, 0xcd, 0x02, 0x0e, 0x4f, 0x7c, - 0x44, 0x0b, 0x7f, 0x0a, 0x0b, 0x19, 0x71, 0x4b, 0x6d, 0xc0, 0x03, 0xa8, 0x49, 0x14, 0xca, 0x1e, - 0xcc, 0x09, 0x57, 0x97, 0x7d, 0x56, 0x92, 0x0d, 0x8f, 0x98, 0xaf, 0x87, 0xc7, 0x01, 0xb1, 0x19, - 0x8a, 0xc8, 0xd7, 0x93, 0x81, 0xd6, 0xc8, 0x04, 0xda, 0x55, 0x98, 0x71, 0xb3, 0x71, 0xca, 0x1d, - 0x33, 0x4e, 0xfd, 0x8c, 0x3b, 0x44, 0x66, 0xdd, 0x2b, 0xe5, 0x40, 0x63, 0xe7, 0x01, 0x31, 0x3b, - 0xfe, 0x9b, 0x01, 0x37, 0xf9, 0xe9, 0x18, 0x22, 0x7b, 0xe6, 0xca, 0x08, 0x7d, 0x79, 0x1c, 0xce, - 0x3f, 0xa4, 0x62, 0x43, 0xbb, 0x96, 0x30, 0xb4, 0x8f, 0x60, 0x9e, 0xaf, 0xa5, 0x5a, 0x6b, 0x85, - 0x59, 0x6b, 0xb6, 0xa3, 0xd0, 0xe8, 0x7e, 0x6a, 0x40, 0x43, 0x03, 0xfb, 0x0b, 0x35, 0x1d, 0x07, - 0x6e, 0xca, 0xab, 0xfd, 0x60, 0x30, 0x8e, 0xb3, 0x5e, 0xed, 0xda, 0xfc, 0x6b, 0xe5, 0x5c, 0x52, - 0x16, 0x7c, 0xa7, 0xf1, 0xea, 0xb7, 0x06, 0x4c, 0x6f, 0x1d, 0xb4, 0x19, 0x5b, 0x32, 0x17, 0x37, - 0x5e, 0xaf, 0xd8, 0x70, 0x0f, 0xea, 0x7c, 0xad, 0x0e, 0x0d, 0x88, 0x7f, 0xd8, 0x19, 0x46, 0x97, - 0xc7, 0x34, 0x39, 0xbc, 0xe3, 0x29, 0xa4, 0x96, 0x2d, 0x54, 0x95, 0x24, 0x86, 0xe1, 0x7d, 0x26, - 0x52, 0x56, 0xb8, 0x29, 0xcb, 0x02, 0x1b, 0x9b, 0x99, 0x6f, 0x4b, 0x4c, 0x40, 0xdb, 0x00, 0xdf, - 0xeb, 0xf4, 0xfa, 0x0e, 0x53, 0xb5, 0xa8, 0x93, 0xdc, 0xd5, 0x40, 0x17, 0x39, 0x42, 0xcc, 0x6b, - 0x29, 0xe3, 0xc6, 0xd8, 0xc2, 0xcf, 0x0d, 0x98, 0x8d, 0x51, 0x51, 0x0f, 0x7d, 0x0d, 0xaa, 0x91, - 0xfa, 0xa8, 0xa8, 0xee, 0xd4, 0xa3, 0xdb, 0x89, 0xa0, 0x5b, 0x31, 0xc7, 0x1b, 0xc2, 0x29, 0x75, - 0x31, 0x1a, 0x52, 0x86, 0xb2, 0x62, 0xc5, 0x04, 0x7c, 0x1e, 0x43, 0xa4, 0xa1, 0xe6, 0x92, 0x6b, - 0x1a, 0x6f, 0x46, 0x37, 0xd9, 0x70, 0x82, 0xff, 0x68, 0x40, 0x4d, 0x59, 0xf8, 0x5d, 0x29, 0xc7, - 0x84, 0xe9, 0x48, 0x17, 0x42, 0x37, 0xb2, 0x8d, 0x8f, 0xe2, 0xda, 0x8d, 0xc6, 0xdd, 0xed, 0xa4, - 0xbb, 0xdb, 0x63, 0xc8, 0x7c, 0x0a, 0x0d, 0xde, 0xe4, 0x35, 0xb0, 0x76, 0xd0, 0x09, 0x46, 0xb4, - 0x78, 0xd2, 0x45, 0xb8, 0xce, 0xd9, 0xa2, 0x93, 0x94, 0xb7, 0xc6, 0x30, 0xbe, 0x26, 0x2c, 0xea, - 0x16, 0xa3, 0x5e, 0x78, 0x1a, 0x21, 0xd1, 0xc5, 0x92, 0x72, 0x77, 0x40, 0x2e, 0x05, 0xc1, 0xc2, - 0x96, 0x1d, 0x85, 0x15, 0xde, 0x4a, 0x96, 0x38, 0x27, 0x53, 0x25, 0xce, 0x31, 0x2e, 0x65, 0x0d, - 0x58, 0xc8, 0xe0, 0xa0, 0x1e, 0xde, 0x87, 0x1b, 0xdb, 0x64, 0x40, 0x94, 0xd2, 0xe8, 0x55, 0x94, - 0x3e, 0x0f, 0xf5, 0xc4, 0x6c, 0xd4, 0xc3, 0x07, 0x50, 0x8f, 0x36, 0x76, 0xf3, 0xc7, 0x2d, 0xfb, - 0xaa, 0x2b, 0x3c, 0x8c, 0x0b, 0x8b, 0x7c, 0x3a, 0xea, 0xa1, 0xaf, 0xc6, 0x81, 0x52, 0x38, 0x51, - 0xc6, 0x96, 0x25, 0x03, 0xfe, 0x7b, 0x26, 0x05, 0xa1, 0x5b, 0x07, 0xed, 0x62, 0x58, 0x26, 0x4c, - 0x87, 0x4a, 0x53, 0x42, 0xa7, 0x6c, 0xa7, 0x5c, 0x63, 0xf2, 0xcd, 0xf8, 0xb0, 0x66, 0xff, 0xfe, - 0x99, 0xbd, 0xe7, 0x33, 0xdc, 0xd4, 0x43, 0xdf, 0x85, 0x29, 0x7e, 0x6e, 0x44, 0xae, 0x3c, 0xee, - 0x71, 0x13, 0x0d, 0x43, 0x3b, 0x1a, 0xff, 0xfe, 0x92, 0x56, 0x08, 0x9e, 0xab, 0xe6, 0x48, 0xb1, - 0x02, 0xc0, 0x57, 0x50, 0xc2, 0x9f, 0x42, 0xc1, 0xbf, 0x30, 0xa0, 0x69, 0x91, 0xa1, 0x7b, 0x4e, - 0x5e, 0x4b, 0xfd, 0x4d, 0x98, 0xe2, 0x4e, 0x40, 0xc5, 0xfd, 0x3b, 0x6a, 0xbe, 0x56, 0x1d, 0xdd, - 0x4e, 0xd5, 0xd1, 0x6d, 0x7c, 0x00, 0x4b, 0x39, 0x68, 0xf8, 0xc1, 0x4f, 0x47, 0xdd, 0x2e, 0xa1, - 0x54, 0x54, 0xaa, 0xa3, 0x66, 0xe8, 0xa1, 0x27, 0x9d, 0xfe, 0x80, 0xd8, 0x02, 0x8d, 0x68, 0xe1, - 0xcf, 0x0c, 0x68, 0x3c, 0xb2, 0xed, 0xb7, 0x21, 0x9a, 0x9d, 0x15, 0xcd, 0x2e, 0x14, 0xed, 0x09, - 0x2c, 0xea, 0xa0, 0x94, 0x92, 0xab, 0x0f, 0xf5, 0xed, 0x3e, 0x1d, 0xf6, 0x29, 0x95, 0x31, 0xc2, - 0x84, 0x69, 0x37, 0x55, 0xd9, 0x75, 0xbd, 0xb1, 0x6f, 0xef, 0x4d, 0x98, 0xea, 0x25, 0x6f, 0xb7, - 0xa2, 0x89, 0x77, 0x60, 0x2e, 0xb9, 0x14, 0x2f, 0x33, 0x74, 0xc7, 0x29, 0x33, 0xc4, 0x4c, 0xf8, - 0xcf, 0x06, 0xa0, 0x83, 0x51, 0x40, 0x52, 0xc7, 0xc9, 0x5b, 0x42, 0x1d, 0x2a, 0x6e, 0xa4, 0x16, - 0x8d, 0x44, 0x0b, 0x61, 0x98, 0x1d, 0x8e, 0x02, 0x62, 0xb7, 0x49, 0xd7, 0x75, 0x6c, 0xca, 0xb2, - 0xbf, 0x9a, 0x95, 0xa0, 0xe1, 0x3d, 0x58, 0xc8, 0x20, 0x2d, 0x27, 0xf4, 0xcf, 0x0d, 0x68, 0x6e, - 0x75, 0x9c, 0x2e, 0x19, 0xbc, 0x7b, 0xd1, 0xf1, 0x21, 0x2c, 0xe5, 0x60, 0x29, 0x27, 0xdc, 0x09, - 0xcc, 0xca, 0x99, 0xde, 0xa6, 0x01, 0x6e, 0x42, 0x4d, 0x59, 0xa7, 0x1c, 0xd6, 0x01, 0xa0, 0x94, - 0xec, 0x6f, 0x13, 0xf1, 0x1e, 0x2c, 0x64, 0x56, 0x2b, 0x87, 0xfb, 0x4f, 0x06, 0x2c, 0xb5, 0x13, - 0x27, 0xcc, 0x61, 0xbf, 0x7b, 0xea, 0x74, 0x86, 0xd1, 0x8d, 0xa5, 0x97, 0x4c, 0xbd, 0x7a, 0x71, - 0xea, 0xe5, 0x08, 0xc6, 0xe8, 0x74, 0x8c, 0xda, 0x09, 0xa9, 0x27, 0x8b, 0xa5, 0xbe, 0x96, 0x95, - 0x3a, 0xb6, 0xae, 0x4a, 0xc2, 0xba, 0x8e, 0xc0, 0xcc, 0x03, 0x5a, 0xae, 0x2e, 0xe9, 0xb3, 0x77, - 0x2c, 0x5e, 0x32, 0x68, 0x8f, 0x3c, 0x51, 0xd8, 0x8f, 0xea, 0x15, 0x29, 0xa0, 0x46, 0x11, 0xd0, - 0x89, 0x44, 0x04, 0x28, 0x10, 0x3f, 0x3c, 0x0c, 0x6f, 0xe7, 0x2e, 0x5a, 0x6a, 0x07, 0xaf, 0x54, - 0xad, 0xb8, 0x60, 0xd7, 0xa2, 0x18, 0xc7, 0x17, 0xf6, 0x6c, 0xfb, 0x4b, 0x7e, 0xb1, 0xc9, 0xac, - 0x5c, 0x4e, 0x05, 0x6f, 0xe2, 0xf1, 0xf6, 0x3f, 0x13, 0xd0, 0x48, 0xda, 0x97, 0x52, 0x51, 0xcd, - 0x71, 0x82, 0x12, 0x16, 0x30, 0x86, 0x03, 0x7c, 0x43, 0x71, 0xad, 0x8a, 0xc8, 0xfa, 0x7b, 0xae, - 0xdb, 0x1b, 0x10, 0xfe, 0x9b, 0xc5, 0xcb, 0xd1, 0xc9, 0x5a, 0x3b, 0xf0, 0xfb, 0x4e, 0xef, 0xfb, - 0x9d, 0xc1, 0x88, 0x28, 0x8e, 0xf7, 0x00, 0xa6, 0x4e, 0x3a, 0x5d, 0xf2, 0x89, 0xb5, 0xcf, 0x0a, - 0x3c, 0x97, 0x0d, 0x8c, 0x98, 0xd1, 0x37, 0xa1, 0xea, 0xcb, 0x34, 0x63, 0x8a, 0x8d, 0xbc, 0x9d, - 0x19, 0xd9, 0x72, 0x82, 0xfb, 0x1b, 0x7c, 0x60, 0xcc, 0x8d, 0x3e, 0x82, 0x09, 0xf2, 0xaa, 0x39, - 0x3d, 0xc6, 0x6a, 0x13, 0xe4, 0x15, 0x7e, 0x0a, 0x8b, 0x3a, 0x1d, 0x97, 0xf2, 0xdf, 0x8d, 0xff, - 0x2d, 0x00, 0xff, 0x87, 0x05, 0x7d, 0x1b, 0x66, 0xba, 0xf1, 0x9f, 0x0f, 0xa8, 0x11, 0x8d, 0x4b, - 0xfc, 0xfe, 0x61, 0x2e, 0xea, 0xc8, 0xd4, 0x43, 0x0f, 0xa0, 0xfa, 0xa3, 0xe8, 0xf9, 0x0a, 0x2d, - 0x08, 0x26, 0xf5, 0x79, 0xce, 0xbc, 0x99, 0x25, 0xf2, 0x71, 0x67, 0xd1, 0xdb, 0x88, 0x1c, 0xa7, - 0xbe, 0xca, 0xc8, 0x71, 0xc9, 0x27, 0x94, 0x4d, 0xa8, 0xf5, 0xd4, 0x3f, 0x16, 0xd0, 0xad, 0xe8, - 0xff, 0x93, 0xd4, 0xcf, 0x13, 0x66, 0x53, 0xdf, 0x41, 0x3d, 0xf4, 0x10, 0x66, 0xa9, 0xf2, 0x94, - 0x8f, 0x22, 0xd9, 0x52, 0xbf, 0x1f, 0x98, 0xb7, 0xb4, 0x74, 0xea, 0xa1, 0x1f, 0xc2, 0xad, 0x9e, - 0xfe, 0x1d, 0x1d, 0xdd, 0x49, 0xad, 0x9a, 0x7d, 0xc7, 0x36, 0xf1, 0x65, 0x2c, 0xd4, 0x43, 0x27, - 0xb0, 0xd4, 0xcb, 0x7b, 0x94, 0x46, 0x1f, 0xc4, 0x13, 0xe4, 0xbe, 0x96, 0x9b, 0x77, 0x2f, 0x67, - 0xa2, 0x1e, 0x3a, 0x06, 0x14, 0x64, 0x5e, 0x66, 0xd1, 0xb2, 0x18, 0xab, 0x7d, 0x75, 0x36, 0xdf, - 0x2b, 0xe8, 0xa5, 0x1e, 0xea, 0x42, 0xb3, 0x97, 0xf3, 0x60, 0x87, 0x70, 0xe2, 0x67, 0x21, 0xed, - 0x63, 0xa5, 0xf9, 0xc1, 0xa5, 0x3c, 0x1c, 0x77, 0x2f, 0xf3, 0xe2, 0x24, 0x71, 0x6b, 0x1f, 0xcc, - 0x24, 0xee, 0x9c, 0xa7, 0xaa, 0x67, 0xb0, 0xd0, 0xcb, 0x3e, 0xc1, 0x20, 0xfd, 0x28, 0x69, 0x65, - 0x2b, 0x45, 0xdd, 0xd4, 0x43, 0x7b, 0x50, 0x3f, 0x4d, 0xbe, 0x29, 0xa0, 0xe8, 0x8f, 0xa9, 0xec, - 0xd3, 0x8a, 0x69, 0xe6, 0x75, 0x49, 0x91, 0x53, 0x45, 0x7a, 0x55, 0xe4, 0xec, 0xbb, 0x81, 0x2a, - 0xb2, 0xae, 0xba, 0x7f, 0x08, 0xf3, 0xfd, 0x74, 0xdd, 0x1a, 0xdd, 0x8e, 0x4a, 0xcd, 0x9a, 0x42, - 0xbc, 0xb9, 0x9c, 0xdf, 0xc9, 0xe7, 0xeb, 0xa5, 0x6b, 0xc2, 0x72, 0x3e, 0x5d, 0x79, 0xda, 0x5c, - 0xce, 0xef, 0xe4, 0x8e, 0xaa, 0x96, 0x2e, 0xa4, 0xa3, 0xa6, 0xca, 0x23, 0xe6, 0x2d, 0x2d, 0x9d, - 0x7a, 0xe8, 0x3e, 0x4c, 0x47, 0x34, 0x84, 0x52, 0x4c, 0xe1, 0xc0, 0x85, 0x0c, 0x8d, 0x87, 0x26, - 0x19, 0x33, 0x50, 0x9a, 0x83, 0xaa, 0xa1, 0x29, 0x59, 0x21, 0x3c, 0x96, 0x75, 0x2b, 0xa5, 0xa4, - 0x25, 0x37, 0x48, 0x5b, 0x5a, 0x93, 0x1b, 0xa4, 0xaf, 0x85, 0x85, 0xd6, 0x93, 0x2a, 0x41, 0x49, - 0xeb, 0xc9, 0x96, 0xc8, 0xa4, 0xf5, 0x68, 0xaa, 0x56, 0x61, 0x94, 0x57, 0xea, 0x4c, 0x32, 0xca, - 0x27, 0x2b, 0x59, 0x32, 0xca, 0xa7, 0x4a, 0x52, 0xa1, 0x68, 0xd9, 0x4a, 0x4a, 0x8e, 0xbb, 0x89, - 0x14, 0x3e, 0xc7, 0xdd, 0x64, 0x56, 0xfd, 0x1c, 0x1a, 0xda, 0x52, 0x02, 0x7a, 0x5f, 0x8c, 0xcb, - 0x2b, 0x7b, 0x98, 0xab, 0xc5, 0x0c, 0x1c, 0x6e, 0x36, 0x97, 0x97, 0x70, 0xb5, 0x15, 0x07, 0x09, - 0x37, 0xa7, 0x08, 0xf0, 0x10, 0x66, 0xd5, 0x3c, 0x5b, 0x9a, 0x62, 0x2a, 0xcf, 0x97, 0xa6, 0x98, - 0x49, 0xca, 0xf7, 0xa0, 0x9e, 0xca, 0xec, 0xe4, 0x56, 0x66, 0xb3, 0x4f, 0xb9, 0x95, 0xba, 0x64, - 0xf0, 0x39, 0x34, 0xb4, 0x99, 0xa2, 0xd4, 0x5c, 0x5e, 0x4e, 0x2b, 0x35, 0x97, 0x9f, 0x68, 0x3e, - 0x80, 0xaa, 0x24, 0x4b, 0xdb, 0x57, 0xb3, 0x32, 0x69, 0xfb, 0xc9, 0xe4, 0x69, 0x0f, 0xea, 0xa9, - 0x49, 0xa5, 0x74, 0xd9, 0xcc, 0x4e, 0x4a, 0xa7, 0x4b, 0xc3, 0x7e, 0x90, 0xbe, 0xe5, 0x44, 0x99, - 0x0a, 0x5a, 0x4d, 0x1d, 0xc7, 0x99, 0x8c, 0xcb, 0xbc, 0x73, 0x09, 0x07, 0x3f, 0xba, 0x73, 0x52, - 0x08, 0xf5, 0xe8, 0xce, 0xc9, 0x6b, 0xd4, 0xa3, 0x3b, 0x37, 0x0b, 0xe1, 0xbe, 0x92, 0xba, 0x9c, - 0xab, 0xbe, 0x92, 0xcd, 0x18, 0x54, 0x5f, 0xd1, 0xdd, 0xea, 0x8f, 0x01, 0x65, 0x6f, 0x7e, 0x72, - 0x4a, 0xed, 0xc5, 0x5b, 0x4e, 0xa9, 0xbf, 0x32, 0x6e, 0xd6, 0x9f, 0xd7, 0xd6, 0xf8, 0x1f, 0xcd, - 0x1f, 0xb3, 0xef, 0xcb, 0xeb, 0xec, 0xde, 0x79, 0xff, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x7a, - 0x3c, 0xf8, 0x82, 0xed, 0x2c, 0x00, 0x00, +var fileDescriptor_group_b72712dbc4ea95cc = []byte{ + // 2430 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x3a, 0x4f, 0x6f, 0x1c, 0x49, + 0xf5, 0x6a, 0x3b, 0x13, 0x7b, 0x9e, 0x3d, 0x19, 0xbb, 0x9c, 0x71, 0x26, 0x1d, 0x6f, 0xd6, 0xa9, + 0xcd, 0x6f, 0x7f, 0x11, 0x2c, 0xb6, 0x70, 0xa4, 0x08, 0x58, 0x44, 0x88, 0xff, 0xc5, 0x93, 0xf8, + 0x0f, 0xee, 0xc9, 0x72, 0x88, 0x84, 0xc2, 0x64, 0xba, 0x66, 0x34, 0x78, 0xa6, 0xbb, 0xdd, 0xd5, + 0x63, 0x07, 0x2e, 0x2b, 0x2e, 0x48, 0x8b, 0x90, 0x00, 0x21, 0x71, 0x5a, 0x04, 0x7b, 0x82, 0x03, + 0x07, 0x0e, 0x70, 0x46, 0xdc, 0xf9, 0x02, 0x5c, 0xf9, 0x02, 0x7c, 0x02, 0x24, 0xd4, 0x55, 0xd5, + 0xd5, 0xd5, 0xdd, 0xd5, 0xed, 0x49, 0x3b, 0xd9, 0x5c, 0x5a, 0x7a, 0xaf, 0x5e, 0x55, 0xbd, 0xf7, + 0xea, 0xfd, 0xa9, 0xf7, 0xaa, 0x61, 0xb1, 0xef, 0xbb, 0x63, 0x6f, 0x9d, 0x7d, 0xd7, 0x3c, 0xdf, + 0x0d, 0x5c, 0x54, 0x61, 0x80, 0x79, 0xe7, 0xc8, 0x23, 0xce, 0x8b, 0xd6, 0xc1, 0xba, 0x77, 0xd2, + 0x5f, 0x67, 0x23, 0xeb, 0xd4, 0x3e, 0x79, 0x71, 0x4e, 0xd7, 0xcf, 0x29, 0xa7, 0x34, 0xff, 0x3f, + 0x9f, 0xc4, 0xef, 0x78, 0x1e, 0xf1, 0x05, 0x21, 0xfe, 0x0e, 0xc0, 0x96, 0x3b, 0x1a, 0xb9, 0x8e, + 0x45, 0xa8, 0x87, 0x9a, 0x30, 0xb3, 0xe3, 0xfb, 0x5b, 0xae, 0x4d, 0x9a, 0xc6, 0xaa, 0x71, 0xaf, + 0x62, 0x45, 0x20, 0x5a, 0x86, 0xab, 0x3b, 0xbe, 0x7f, 0x40, 0xfb, 0xcd, 0xa9, 0x55, 0xe3, 0x5e, + 0xd5, 0x12, 0x10, 0x7e, 0x02, 0xe8, 0x71, 0xc8, 0xd4, 0x23, 0xdb, 0x3e, 0x20, 0xa3, 0x97, 0xc4, + 0x6f, 0x39, 0x3d, 0x37, 0xa4, 0xfe, 0x84, 0x12, 0xbf, 0xb5, 0xcd, 0x96, 0xa9, 0x5a, 0x02, 0x42, + 0x2b, 0x50, 0xb5, 0xdc, 0x21, 0xd9, 0x27, 0x67, 0x64, 0xc8, 0x16, 0xaa, 0x58, 0x31, 0x02, 0xff, + 0xc7, 0x80, 0x6b, 0x5b, 0x3e, 0xe9, 0x04, 0x84, 0x2d, 0x69, 0x91, 0x53, 0xf4, 0x08, 0xae, 0xb5, + 0x9c, 0x41, 0xc0, 0x97, 0xde, 0x1f, 0xd0, 0xa0, 0x69, 0xac, 0x4e, 0xdf, 0x9b, 0xdb, 0xb8, 0xb9, + 0xc6, 0xf5, 0x92, 0xdd, 0xdb, 0x4a, 0x4d, 0x40, 0xdf, 0x82, 0x2a, 0xa3, 0x0a, 0x07, 0xd9, 0x9e, + 0x73, 0x1b, 0x2b, 0x6b, 0x94, 0xf8, 0x67, 0xc4, 0x7f, 0xd1, 0xf1, 0x06, 0x2f, 0xbc, 0x8e, 0xdf, + 0x19, 0xd1, 0x35, 0x49, 0x63, 0xc5, 0xe4, 0x68, 0x15, 0xe6, 0x8e, 0x3c, 0xe2, 0x77, 0x82, 0x81, + 0xeb, 0xb4, 0xb6, 0x9b, 0xd3, 0x4c, 0x18, 0x15, 0x85, 0x4c, 0x98, 0x3d, 0xf2, 0x84, 0xac, 0x57, + 0xd8, 0xb0, 0x84, 0xd9, 0xec, 0x73, 0x87, 0xf8, 0x62, 0xb8, 0x22, 0x66, 0xc7, 0x28, 0xfc, 0x29, + 0xd4, 0x13, 0x02, 0x97, 0x39, 0x82, 0xa4, 0x80, 0xd3, 0xaf, 0x25, 0x20, 0xf6, 0x61, 0xe1, 0x31, + 0x09, 0x18, 0x4c, 0xd9, 0x18, 0x39, 0x0d, 0xd9, 0xe6, 0x04, 0xdb, 0x52, 0xe1, 0x55, 0x4b, 0x45, + 0xa5, 0xd5, 0x32, 0x55, 0xac, 0x96, 0xe9, 0xa4, 0x5a, 0xf0, 0x67, 0x06, 0x2c, 0xa6, 0x36, 0x2d, + 0x25, 0xf7, 0x26, 0xd4, 0xa4, 0x20, 0x8c, 0xd3, 0x69, 0x66, 0x1a, 0xc5, 0xb2, 0x27, 0xa7, 0xe0, + 0xdf, 0x19, 0x50, 0x6f, 0x0b, 0x5e, 0x22, 0xf9, 0xf7, 0xa1, 0xde, 0x8f, 0xe0, 0x5d, 0xd7, 0x6f, + 0x93, 0x80, 0x71, 0x34, 0xb7, 0x81, 0x8b, 0x56, 0xe6, 0x94, 0x56, 0x7a, 0x6a, 0x42, 0x13, 0x53, + 0x1a, 0x03, 0x29, 0x34, 0x2f, 0xbc, 0x03, 0x0b, 0x49, 0xf6, 0xa8, 0x87, 0xbe, 0xae, 0xba, 0xac, + 0x60, 0x6d, 0x51, 0xf8, 0x43, 0x3c, 0x60, 0x29, 0x44, 0xf8, 0x27, 0x60, 0x46, 0x1a, 0x7f, 0xe4, + 0x79, 0xc3, 0x41, 0x97, 0xad, 0x1f, 0x6a, 0x20, 0x14, 0x58, 0x65, 0xd1, 0x28, 0x66, 0x51, 0x73, + 0xd4, 0xb7, 0x01, 0x76, 0x7d, 0x77, 0x94, 0x38, 0x6c, 0x05, 0x83, 0x3f, 0x37, 0xe0, 0x56, 0xee, + 0xe6, 0xa5, 0x0e, 0xfe, 0x29, 0x2c, 0x44, 0x01, 0x62, 0x4c, 0x68, 0xa0, 0x9c, 0xfd, 0xfb, 0x79, + 0x27, 0x24, 0x48, 0xad, 0xcc, 0x44, 0x1c, 0xc0, 0xca, 0x63, 0x12, 0x84, 0xbc, 0x5a, 0xe4, 0x54, + 0xa3, 0x9c, 0xbc, 0x50, 0x76, 0xb9, 0x73, 0xfd, 0xbd, 0x01, 0xef, 0x15, 0x6c, 0x5b, 0xea, 0x94, + 0xb5, 0x7a, 0x99, 0x2a, 0xab, 0x97, 0xbf, 0x1b, 0xd0, 0x78, 0xe6, 0x77, 0x1c, 0xda, 0x23, 0x3e, + 0x1b, 0x64, 0x71, 0x2b, 0xd4, 0x48, 0x13, 0x66, 0x44, 0x30, 0x10, 0x2a, 0x89, 0x40, 0xf4, 0x21, + 0x5c, 0x3b, 0x1a, 0xda, 0x6a, 0xcc, 0xe3, 0x9a, 0x49, 0x61, 0x43, 0xba, 0x43, 0x72, 0xae, 0xd2, + 0x71, 0x15, 0xa5, 0xb0, 0x69, 0x3d, 0x5e, 0x29, 0x8e, 0x33, 0x95, 0x54, 0x9c, 0x79, 0x0a, 0xcb, + 0x3a, 0x01, 0xca, 0x79, 0xd0, 0x3f, 0x0d, 0x98, 0x7f, 0xe2, 0x0e, 0x1c, 0x99, 0x99, 0xf2, 0xb5, + 0x70, 0x1b, 0xc0, 0x22, 0xa7, 0x07, 0x84, 0xd2, 0x4e, 0x9f, 0x08, 0x0d, 0x28, 0x98, 0xa2, 0xd8, + 0x38, 0x81, 0xc4, 0xb7, 0x01, 0x42, 0x3e, 0xda, 0xee, 0xd8, 0xef, 0x12, 0x26, 0x73, 0xc5, 0x52, + 0x30, 0xe8, 0x2e, 0xd4, 0x5a, 0xce, 0xd9, 0x20, 0x90, 0xaa, 0xbd, 0xca, 0xd6, 0x48, 0x22, 0xf1, + 0x26, 0xd4, 0x14, 0x69, 0xca, 0xa9, 0xe4, 0x5f, 0xa1, 0x63, 0xa7, 0xbc, 0x3a, 0x1c, 0x70, 0x1d, + 0x4a, 0x44, 0x1e, 0x51, 0x65, 0x31, 0x8a, 0x4f, 0x2f, 0xed, 0x43, 0x8a, 0x7e, 0xa7, 0x33, 0xfa, + 0x55, 0x02, 0xce, 0x95, 0x74, 0xc0, 0x09, 0xc7, 0xf7, 0x3a, 0x8e, 0x3d, 0x24, 0x76, 0x18, 0x3a, + 0xb8, 0x55, 0x28, 0x18, 0x84, 0x61, 0x9e, 0x43, 0x16, 0xa1, 0xe3, 0x61, 0xc0, 0x14, 0x54, 0xb1, + 0x12, 0x38, 0x7c, 0x0c, 0x2b, 0xf9, 0xa2, 0x95, 0x53, 0x57, 0x0f, 0xe6, 0x8f, 0xc7, 0x83, 0x60, + 0x02, 0x03, 0xba, 0x5c, 0x7a, 0xdd, 0x84, 0x9a, 0xb2, 0x4f, 0x39, 0x5e, 0xbf, 0x30, 0xa0, 0x11, + 0xc5, 0xec, 0xf8, 0x2a, 0x55, 0xcc, 0xf5, 0xa5, 0x02, 0x62, 0x18, 0x66, 0x77, 0x07, 0xc3, 0x80, + 0xf8, 0xec, 0x40, 0x2b, 0x96, 0x80, 0xc2, 0xfd, 0x0e, 0xc9, 0xab, 0xa0, 0x4d, 0x4e, 0x85, 0xad, + 0x47, 0x20, 0xfe, 0xb3, 0x01, 0xcb, 0x3a, 0x1e, 0x4b, 0xa5, 0x94, 0x5d, 0x80, 0x51, 0x7c, 0xc7, + 0xe4, 0xc9, 0xe4, 0xc3, 0xbc, 0xa0, 0xc9, 0x77, 0xdb, 0x1d, 0x0f, 0x87, 0x2c, 0x27, 0x2b, 0x33, + 0xc3, 0x9d, 0x1d, 0xc1, 0x2e, 0x97, 0x23, 0x02, 0xf1, 0xaf, 0x32, 0xec, 0xca, 0x0b, 0x57, 0x61, + 0x28, 0x51, 0xd8, 0x9a, 0x62, 0x37, 0x31, 0x75, 0xbb, 0x4b, 0x85, 0x12, 0xfc, 0x1b, 0x03, 0x6e, + 0x68, 0x59, 0x7a, 0x97, 0x2a, 0xc4, 0x7f, 0x31, 0x00, 0x3d, 0x1d, 0x74, 0x4f, 0x14, 0xba, 0x62, + 0x25, 0x7d, 0x05, 0x16, 0x42, 0x7a, 0x62, 0x73, 0xc1, 0x15, 0x55, 0x65, 0xf0, 0x21, 0xf3, 0x16, + 0xe9, 0x50, 0xd7, 0x11, 0xea, 0x12, 0x50, 0x5a, 0x59, 0x95, 0x62, 0x97, 0xbb, 0x9a, 0x72, 0xb9, + 0x8f, 0xa1, 0xda, 0xb2, 0x37, 0x78, 0xe8, 0xc8, 0xbd, 0x30, 0xb0, 0xad, 0x59, 0xc0, 0xe1, 0x85, + 0x8f, 0x80, 0xf0, 0xa7, 0xb0, 0x94, 0x11, 0xb7, 0xd4, 0x01, 0x3c, 0x80, 0x9a, 0xe4, 0x42, 0x39, + 0x83, 0x05, 0xe1, 0xea, 0x72, 0xcc, 0x4a, 0x92, 0xe1, 0x31, 0xf3, 0xf5, 0x30, 0x1d, 0x10, 0x9b, + 0x71, 0x11, 0xf9, 0x7a, 0x32, 0xd0, 0x1a, 0x99, 0x40, 0xbb, 0x0a, 0x73, 0x6e, 0x36, 0x4e, 0xb9, + 0x13, 0xc6, 0xa9, 0x9f, 0x71, 0x87, 0xc8, 0xec, 0x7b, 0xa9, 0x1a, 0x68, 0xe2, 0x3a, 0x20, 0x26, + 0xc7, 0x7f, 0x35, 0xe0, 0x3a, 0xcf, 0x8e, 0x21, 0x67, 0xcf, 0x5c, 0x19, 0xa1, 0x2f, 0x8e, 0xc3, + 0xf9, 0x49, 0x2a, 0x36, 0xb4, 0x2b, 0x09, 0x43, 0xfb, 0x08, 0x16, 0xf9, 0x5e, 0xaa, 0xb5, 0x56, + 0x98, 0xb5, 0x66, 0x07, 0x0a, 0x8d, 0xee, 0xa7, 0x06, 0x34, 0x34, 0x6c, 0x7f, 0xa9, 0xa6, 0xf3, + 0xb9, 0x01, 0xd7, 0xe5, 0xdd, 0x7e, 0x38, 0x9c, 0xc4, 0x5b, 0x2f, 0x9d, 0x26, 0x8e, 0x7a, 0x3d, + 0x4a, 0x82, 0x28, 0x4d, 0x70, 0x08, 0x5d, 0x87, 0xca, 0x96, 0x3b, 0x76, 0x02, 0x91, 0x24, 0x38, + 0x80, 0x7f, 0xad, 0xa4, 0x31, 0x85, 0xbd, 0x77, 0x1a, 0xde, 0x7e, 0x6b, 0xc0, 0xec, 0xd6, 0x41, + 0x9b, 0x91, 0x25, 0x4b, 0x77, 0xe3, 0xf5, 0x7a, 0x13, 0xf7, 0xa0, 0xce, 0xf7, 0xea, 0xd0, 0x80, + 0xf8, 0x87, 0x9d, 0x51, 0x74, 0xd7, 0x4c, 0xa3, 0xc3, 0x2b, 0xa1, 0x82, 0x6a, 0xd9, 0x42, 0xb1, + 0x49, 0x64, 0x98, 0x0d, 0xe6, 0x22, 0x65, 0x85, 0x47, 0xb8, 0x22, 0x78, 0x63, 0x2b, 0xf3, 0x43, + 0x8c, 0x11, 0x68, 0x1b, 0xe0, 0x7b, 0x9d, 0xfe, 0xc0, 0x61, 0x07, 0x23, 0xda, 0x2a, 0x77, 0x35, + 0xac, 0x8b, 0x92, 0x22, 0xa6, 0xb5, 0x94, 0x79, 0x13, 0x14, 0x4a, 0x5f, 0x18, 0x30, 0x1f, 0x73, + 0x45, 0x3d, 0xf4, 0x35, 0xa8, 0x46, 0xea, 0xa3, 0xa2, 0x19, 0x54, 0x8f, 0x2e, 0x33, 0x02, 0x6f, + 0xc5, 0x14, 0x6f, 0x88, 0x4f, 0xa9, 0x8b, 0xf1, 0x88, 0x32, 0x2e, 0x2b, 0x56, 0x8c, 0xc0, 0x67, + 0x31, 0x8b, 0x34, 0xd4, 0x5c, 0x72, 0x4f, 0xe3, 0xcd, 0xe8, 0x26, 0x1b, 0x7d, 0xf0, 0x1f, 0x0c, + 0xa8, 0x29, 0x1b, 0xbf, 0x2b, 0xe5, 0x98, 0x30, 0x1b, 0xe9, 0x42, 0xe8, 0x46, 0xc2, 0xf8, 0x28, + 0x6e, 0xf5, 0x68, 0x82, 0x83, 0x9d, 0x0c, 0x0e, 0xf6, 0x04, 0x32, 0x9f, 0x40, 0x83, 0x83, 0xbc, + 0x65, 0xd6, 0x0e, 0x3a, 0xc1, 0x98, 0x16, 0x2f, 0xba, 0x0c, 0x57, 0x39, 0x59, 0x94, 0x78, 0x39, + 0x34, 0x81, 0xf1, 0x35, 0x61, 0x59, 0xb7, 0x19, 0xf5, 0xc2, 0xe4, 0x85, 0xc4, 0x10, 0xab, 0xe1, + 0xdd, 0x21, 0xb9, 0x90, 0x09, 0x16, 0xe4, 0xec, 0x28, 0xac, 0x70, 0x28, 0xd9, 0x11, 0x9d, 0x4e, + 0x75, 0x44, 0x27, 0xb8, 0xc3, 0x35, 0x60, 0x29, 0xc3, 0x07, 0xf5, 0xf0, 0x3e, 0x5c, 0xdb, 0x26, + 0x43, 0xa2, 0x74, 0x52, 0x2f, 0xa3, 0xf4, 0x45, 0xa8, 0x27, 0x56, 0xa3, 0x1e, 0x3e, 0x80, 0x7a, + 0x74, 0xb0, 0x9b, 0x3f, 0x6e, 0xd9, 0x97, 0xdd, 0xe1, 0x61, 0xdc, 0x87, 0xe4, 0xcb, 0x51, 0x0f, + 0x7d, 0x35, 0x0e, 0x94, 0xc2, 0x89, 0x32, 0xb6, 0x2c, 0x09, 0xf0, 0xdf, 0x32, 0x15, 0x0b, 0xdd, + 0x3a, 0x68, 0x17, 0xb3, 0x65, 0xc2, 0x6c, 0xa8, 0x34, 0x25, 0x74, 0x4a, 0x38, 0xe5, 0x1a, 0xd3, + 0x6f, 0xc6, 0x87, 0x35, 0xe7, 0xf7, 0x8f, 0x6c, 0x59, 0xc0, 0xf8, 0xa6, 0x1e, 0xfa, 0x2e, 0xcc, + 0xf0, 0xbc, 0x11, 0xb9, 0xf2, 0xa4, 0xe9, 0x26, 0x9a, 0x86, 0x76, 0x34, 0xfe, 0xfd, 0x7f, 0x5a, + 0x21, 0x78, 0x69, 0x9b, 0x23, 0xc5, 0x6d, 0x00, 0xbe, 0x83, 0x12, 0xfe, 0x14, 0x0c, 0xfe, 0x85, + 0x01, 0x4d, 0x8b, 0x8c, 0xdc, 0x33, 0xf2, 0x5a, 0xea, 0x6f, 0xc2, 0x0c, 0x77, 0x02, 0x2a, 0xae, + 0xeb, 0x11, 0xf8, 0x5a, 0x6d, 0x77, 0x3b, 0xd5, 0x76, 0xb7, 0xf1, 0x01, 0xdc, 0xcc, 0xe1, 0x86, + 0x27, 0x7e, 0x3a, 0xee, 0x76, 0x09, 0xa5, 0xa2, 0xb1, 0x1d, 0x81, 0xa1, 0x87, 0xf6, 0x3a, 0x83, + 0x21, 0xb1, 0x05, 0x37, 0x02, 0xc2, 0x9f, 0x19, 0xd0, 0x78, 0x64, 0xdb, 0x6f, 0x43, 0x34, 0x3b, + 0x2b, 0x9a, 0x5d, 0x28, 0xda, 0x13, 0x58, 0xd6, 0xb1, 0x52, 0x4a, 0xae, 0x01, 0xd4, 0xb7, 0x07, + 0x74, 0x34, 0xa0, 0x54, 0xc6, 0x08, 0x13, 0x66, 0xdd, 0x54, 0x23, 0xd8, 0xf5, 0x26, 0xbe, 0xec, + 0x37, 0x61, 0xa6, 0x9f, 0xbc, 0x0c, 0x0b, 0x10, 0xef, 0xc0, 0x42, 0x72, 0x2b, 0xde, 0x95, 0xe8, + 0x4e, 0xd2, 0x95, 0x88, 0x89, 0xf0, 0x9f, 0x0c, 0x40, 0x07, 0xe3, 0x80, 0xa4, 0xd2, 0xc9, 0x5b, + 0xe2, 0x3a, 0x54, 0xdc, 0x58, 0xed, 0x31, 0x09, 0x08, 0x61, 0x98, 0x1f, 0x8d, 0x03, 0x62, 0xb7, + 0x49, 0xd7, 0x75, 0x6c, 0xca, 0xae, 0x9c, 0x35, 0x2b, 0x81, 0xc3, 0x7b, 0xb0, 0x94, 0xe1, 0xb4, + 0x9c, 0xd0, 0x3f, 0x37, 0xa0, 0xb9, 0xd5, 0x71, 0xba, 0x64, 0xf8, 0xee, 0x45, 0xc7, 0x87, 0x70, + 0x33, 0x87, 0x97, 0x72, 0xc2, 0xf5, 0x60, 0x5e, 0xae, 0xf4, 0x36, 0x0d, 0x70, 0x13, 0x6a, 0xca, + 0x3e, 0xe5, 0x78, 0x1d, 0x02, 0x4a, 0xc9, 0xfe, 0x36, 0x39, 0xde, 0x83, 0xa5, 0xcc, 0x6e, 0xe5, + 0xf8, 0xfe, 0xa3, 0x01, 0x37, 0xdb, 0x89, 0x0c, 0x73, 0x38, 0xe8, 0x9e, 0x38, 0x9d, 0x51, 0x74, + 0x63, 0xe9, 0x27, 0x0b, 0xb5, 0x7e, 0x5c, 0xa8, 0x39, 0x82, 0x30, 0xca, 0x8e, 0x11, 0x9c, 0x90, + 0x7a, 0xba, 0x58, 0xea, 0x2b, 0x59, 0xa9, 0x63, 0xeb, 0xaa, 0x24, 0xac, 0xeb, 0x08, 0xcc, 0x3c, + 0x46, 0xcb, 0xb5, 0x31, 0x7d, 0xf6, 0xec, 0xc5, 0x3b, 0x0c, 0xed, 0xb1, 0x27, 0xde, 0x01, 0xa2, + 0xf6, 0x46, 0x8a, 0x51, 0xa3, 0x88, 0xd1, 0xa9, 0x44, 0x04, 0x28, 0x10, 0x3f, 0x4c, 0x86, 0xb7, + 0x72, 0x37, 0x2d, 0x75, 0x82, 0x97, 0x6a, 0x6e, 0x9c, 0xb3, 0x6b, 0x51, 0xcc, 0xc7, 0x97, 0xf6, + 0xca, 0xfb, 0x4b, 0x7e, 0xb1, 0xc9, 0xec, 0x5c, 0x4e, 0x05, 0x6f, 0xe2, 0xad, 0xf7, 0xdf, 0x53, + 0xd0, 0x48, 0xda, 0x97, 0xd2, 0x80, 0xcd, 0x71, 0x82, 0x12, 0x16, 0x30, 0x81, 0x03, 0x7c, 0x43, + 0x71, 0xad, 0x8a, 0xa8, 0xfa, 0xfb, 0xae, 0xdb, 0x1f, 0x12, 0xfe, 0x57, 0xc6, 0xcb, 0x71, 0x6f, + 0xad, 0x1d, 0xf8, 0x03, 0xa7, 0xff, 0xfd, 0xce, 0x70, 0x4c, 0x14, 0xc7, 0x7b, 0x00, 0x33, 0xbd, + 0x4e, 0x97, 0x7c, 0x62, 0xed, 0xb3, 0x7e, 0xd0, 0x45, 0x13, 0x23, 0x62, 0xf4, 0x4d, 0xa8, 0xfa, + 0xb2, 0xcc, 0x98, 0x61, 0x33, 0x6f, 0x65, 0x66, 0xb6, 0x9c, 0xe0, 0xfe, 0x06, 0x9f, 0x18, 0x53, + 0xa3, 0x8f, 0x60, 0x8a, 0xbc, 0x6a, 0xce, 0x4e, 0xb0, 0xdb, 0x14, 0x79, 0x85, 0x9f, 0xc2, 0xb2, + 0x4e, 0xc7, 0xa5, 0xfc, 0x77, 0xe3, 0xbf, 0x4b, 0xc0, 0x7f, 0x79, 0x41, 0xdf, 0x86, 0xb9, 0x6e, + 0xfc, 0xa3, 0x04, 0x6a, 0x44, 0xf3, 0x12, 0x7f, 0x8b, 0x98, 0xcb, 0x3a, 0x34, 0xf5, 0xd0, 0x03, + 0xa8, 0xfe, 0x28, 0x7a, 0xed, 0x42, 0x4b, 0x82, 0x48, 0x7d, 0xcd, 0x33, 0xaf, 0x67, 0x91, 0x7c, + 0xde, 0x69, 0xf4, 0x94, 0x22, 0xe7, 0xa9, 0x8f, 0x38, 0x72, 0x5e, 0xf2, 0xc5, 0x65, 0x13, 0x6a, + 0x7d, 0xf5, 0x07, 0x07, 0x74, 0x23, 0xfa, 0x5d, 0x25, 0xf5, 0xaf, 0x85, 0xd9, 0xd4, 0x0f, 0x50, + 0x0f, 0x3d, 0x84, 0x79, 0xaa, 0xbc, 0xfc, 0xa3, 0x48, 0xb6, 0xd4, 0xdf, 0x0a, 0xe6, 0x0d, 0x2d, + 0x9e, 0x7a, 0xe8, 0x87, 0x70, 0xa3, 0xaf, 0x7f, 0x76, 0x47, 0x77, 0x52, 0xbb, 0x66, 0x9f, 0xbd, + 0x4d, 0x7c, 0x11, 0x09, 0xf5, 0x50, 0x0f, 0x6e, 0xf6, 0xf3, 0xde, 0xb0, 0xd1, 0x07, 0xf1, 0x02, + 0xb9, 0x8f, 0xeb, 0xe6, 0xdd, 0x8b, 0x89, 0xa8, 0x87, 0x8e, 0x01, 0x05, 0x99, 0x87, 0x5c, 0xb4, + 0x22, 0xe6, 0x6a, 0x1f, 0xa9, 0xcd, 0xf7, 0x0a, 0x46, 0xa9, 0x87, 0xba, 0xd0, 0xec, 0xe7, 0xbc, + 0xef, 0x21, 0x9c, 0xf8, 0xb7, 0x48, 0xfb, 0xb6, 0x69, 0x7e, 0x70, 0x21, 0x0d, 0xe7, 0xbb, 0x9f, + 0x79, 0xa0, 0x92, 0x7c, 0x6b, 0xdf, 0xd7, 0x24, 0xdf, 0x39, 0x2f, 0x5b, 0xcf, 0x60, 0xa9, 0x9f, + 0x7d, 0xb1, 0x41, 0xfa, 0x59, 0xd2, 0xca, 0x6e, 0x17, 0x0d, 0x53, 0x0f, 0xed, 0x41, 0xfd, 0x24, + 0xf9, 0x04, 0x81, 0xa2, 0x1f, 0xac, 0xb2, 0x2f, 0x31, 0xa6, 0x99, 0x37, 0x24, 0x45, 0x4e, 0xf5, + 0xf4, 0x55, 0x91, 0xb3, 0xcf, 0x0c, 0xaa, 0xc8, 0xba, 0xc7, 0x80, 0x43, 0x58, 0x1c, 0xa4, 0xdb, + 0xdc, 0xe8, 0x56, 0xd4, 0x99, 0xd6, 0xf4, 0xed, 0xcd, 0x95, 0xfc, 0x41, 0xbe, 0x5e, 0x3f, 0xdd, + 0x13, 0x96, 0xeb, 0xe9, 0x9a, 0xd9, 0xe6, 0x4a, 0xfe, 0x20, 0x77, 0x54, 0xb5, 0x75, 0x21, 0x1d, + 0x35, 0xd5, 0x1e, 0x31, 0x6f, 0x68, 0xf1, 0xd4, 0x43, 0xf7, 0x61, 0x36, 0xc2, 0x21, 0x94, 0x22, + 0x0a, 0x27, 0x2e, 0x65, 0x70, 0x3c, 0x34, 0xc9, 0x98, 0x81, 0xd2, 0x14, 0x54, 0x0d, 0x4d, 0xc9, + 0x0e, 0xe1, 0xb1, 0xec, 0x5b, 0x29, 0x2d, 0x2d, 0x79, 0x40, 0xda, 0xd6, 0x9a, 0x3c, 0x20, 0x7d, + 0x2f, 0x2c, 0xb4, 0x9e, 0x54, 0x0b, 0x4a, 0x5a, 0x4f, 0xb6, 0x45, 0x26, 0xad, 0x47, 0xd3, 0xb5, + 0x0a, 0xa3, 0xbc, 0xd2, 0x67, 0x92, 0x51, 0x3e, 0xd9, 0xc9, 0x92, 0x51, 0x3e, 0xd5, 0x92, 0x0a, + 0x45, 0xcb, 0x76, 0x52, 0x72, 0xdc, 0x4d, 0x94, 0xf0, 0x39, 0xee, 0x26, 0xab, 0xea, 0xe7, 0xd0, + 0xd0, 0xb6, 0x12, 0xd0, 0xfb, 0x62, 0x5e, 0x5e, 0xdb, 0xc3, 0x5c, 0x2d, 0x26, 0xe0, 0xec, 0x66, + 0x6b, 0x79, 0xc9, 0xae, 0xb6, 0xe3, 0x20, 0xd9, 0xcd, 0x69, 0x02, 0x3c, 0x84, 0x79, 0xb5, 0xce, + 0x96, 0xa6, 0x98, 0xaa, 0xf3, 0xa5, 0x29, 0x66, 0x8a, 0xf2, 0x3d, 0xa8, 0xa7, 0x2a, 0x3b, 0x79, + 0x94, 0xd9, 0xea, 0x53, 0x1e, 0xa5, 0xae, 0x18, 0x7c, 0x0e, 0x0d, 0x6d, 0xa5, 0x28, 0x35, 0x97, + 0x57, 0xd3, 0x4a, 0xcd, 0xe5, 0x17, 0x9a, 0x0f, 0xa0, 0x2a, 0xd1, 0xd2, 0xf6, 0xd5, 0xaa, 0x4c, + 0xda, 0x7e, 0xb2, 0x78, 0xda, 0x83, 0x7a, 0x6a, 0x51, 0x29, 0x5d, 0xb6, 0xb2, 0x93, 0xd2, 0xe9, + 0xca, 0xb0, 0x1f, 0xa4, 0x6f, 0x39, 0x51, 0xa5, 0x82, 0x56, 0x53, 0xe9, 0x38, 0x53, 0x71, 0x99, + 0x77, 0x2e, 0xa0, 0xe0, 0xa9, 0x3b, 0xa7, 0x84, 0x50, 0x53, 0x77, 0x4e, 0x5d, 0xa3, 0xa6, 0xee, + 0xdc, 0x2a, 0x84, 0xfb, 0x4a, 0xea, 0x72, 0xae, 0xfa, 0x4a, 0xb6, 0x62, 0x50, 0x7d, 0x45, 0x77, + 0xab, 0x3f, 0x06, 0x94, 0xbd, 0xf9, 0xc9, 0x25, 0xb5, 0x17, 0x6f, 0xb9, 0xa4, 0xfe, 0xca, 0xb8, + 0x59, 0x7f, 0x5e, 0x5b, 0xe3, 0x3f, 0x40, 0x7f, 0xcc, 0xbe, 0x2f, 0xaf, 0xb2, 0x7b, 0xe7, 0xfd, + 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x74, 0xbf, 0x1e, 0x89, 0x1c, 0x2d, 0x00, 0x00, } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 3d9e9de28..a2544e922 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -204,6 +204,8 @@ message GetGroupAllMemberReq { string GroupID = 1; string OpUserID = 2; //No verification permission string OperationID = 3; + int32 Offset = 4; + int32 Count = 5; } message GetGroupAllMemberResp { int32 ErrCode = 1; From a99dbf634b3064dd7174d4a3e5e4e6e4069a602a Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 4 Aug 2022 14:21:03 +0800 Subject: [PATCH 024/230] callback fix --- internal/push/logic/callback.go | 7 ++++--- internal/rpc/msg/callback.go | 6 ++++-- pkg/common/callback/callback.go | 24 ++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 pkg/common/callback/callback.go diff --git a/internal/push/logic/callback.go b/internal/push/logic/callback.go index 5c3c317bf..44f703ef8 100644 --- a/internal/push/logic/callback.go +++ b/internal/push/logic/callback.go @@ -2,6 +2,7 @@ package logic import ( cbApi "Open_IM/pkg/call_back_struct" + "Open_IM/pkg/common/callback" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/http" @@ -32,7 +33,7 @@ func callbackOfflinePush(operationID string, userIDList []string, msg *commonPb. ContentType: msg.ContentType, SessionType: msg.SessionType, AtUserIDList: msg.AtUserIDList, - Content: string(msg.Content), + Content: callback.GetContent(msg), } resp := &cbApi.CallbackBeforePushResp{CommonCallbackResp: &callbackResp} if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackOfflinePush.CallbackTimeOut); err != nil { @@ -74,7 +75,7 @@ func callbackOnlinePush(operationID string, userIDList []string, msg *commonPb.M ContentType: msg.ContentType, SessionType: msg.SessionType, AtUserIDList: msg.AtUserIDList, - Content: string(msg.Content), + Content: callback.GetContent(msg), } resp := &cbApi.CallbackBeforePushResp{CommonCallbackResp: &callbackResp} if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackOnlinePush.CallbackTimeOut); err != nil { @@ -110,7 +111,7 @@ func callbackBeforeSuperGroupOnlinePush(operationID string, groupID string, msg ContentType: msg.ContentType, SessionType: msg.SessionType, AtUserIDList: msg.AtUserIDList, - Content: string(msg.Content), + Content: callback.GetContent(msg), } resp := &cbApi.CallbackBeforeSuperGroupOnlinePushResp{CommonCallbackResp: &callbackResp} if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeSuperGroupOnlinePush.CallbackTimeOut); err != nil { diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index f53ee327d..ba03998a5 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -2,6 +2,7 @@ package msg import ( cbApi "Open_IM/pkg/call_back_struct" + "Open_IM/pkg/common/callback" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/http" @@ -12,7 +13,7 @@ import ( ) func copyCallbackCommonReqStruct(msg *pbChat.SendMsgReq) cbApi.CommonCallbackReq { - return cbApi.CommonCallbackReq{ + req := cbApi.CommonCallbackReq{ SendID: msg.MsgData.SendID, ServerMsgID: msg.MsgData.ServerMsgID, ClientMsgID: msg.MsgData.ClientMsgID, @@ -24,10 +25,11 @@ func copyCallbackCommonReqStruct(msg *pbChat.SendMsgReq) cbApi.CommonCallbackReq ContentType: msg.MsgData.ContentType, Status: msg.MsgData.Status, CreateTime: msg.MsgData.CreateTime, - Content: string(msg.MsgData.Content), AtUserIDList: msg.MsgData.AtUserIDList, SenderFaceURL: msg.MsgData.SenderFaceURL, + Content: callback.GetContent(msg.MsgData), } + return req } func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) cbApi.CommonCallbackResp { diff --git a/pkg/common/callback/callback.go b/pkg/common/callback/callback.go new file mode 100644 index 000000000..676a62a52 --- /dev/null +++ b/pkg/common/callback/callback.go @@ -0,0 +1,24 @@ +package callback + +import ( + "Open_IM/pkg/common/constant" + server_api_params "Open_IM/pkg/proto/sdk_ws" + "github.com/golang/protobuf/jsonpb" + "github.com/golang/protobuf/proto" +) + +func GetContent(msg *server_api_params.MsgData) string { + if msg.ContentType >= constant.NotificationBegin && msg.ContentType <= constant.NotificationEnd { + var tips server_api_params.TipsComm + _ = proto.Unmarshal(msg.Content, &tips) + marshaler := jsonpb.Marshaler{ + OrigName: true, + EnumsAsInts: false, + EmitDefaults: false, + } + content, _ := marshaler.MarshalToString(&tips) + return content + } else { + return string(msg.Content) + } +} From ca7bba33e62a422d6f18810cb789db00e41db132 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 4 Aug 2022 14:46:30 +0800 Subject: [PATCH 025/230] docker-compose file update --- internal/msg_gateway/gate/ws_server.go | 2 +- .../constant/platform_number_id_to_name.go | 64 +++++++++++-------- 2 files changed, 37 insertions(+), 29 deletions(-) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 53942155f..6b6c7ee51 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -230,7 +230,7 @@ func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int, newConn log.NewError(operationID, "conn close err", err.Error(), uid, platformID) } } else { - log.NewWarn(operationID, "abnormal uid-conn ", uid, platformID, oldConnMap[platformID]) + log.NewWarn(operationID, "normal uid-conn ", uid, platformID, oldConnMap[platformID]) } } else { diff --git a/pkg/common/constant/platform_number_id_to_name.go b/pkg/common/constant/platform_number_id_to_name.go index cac93dea8..0480db01b 100644 --- a/pkg/common/constant/platform_number_id_to_name.go +++ b/pkg/common/constant/platform_number_id_to_name.go @@ -5,22 +5,26 @@ package constant const ( //Platform ID - IOSPlatformID = 1 - AndroidPlatformID = 2 - WindowsPlatformID = 3 - OSXPlatformID = 4 - WebPlatformID = 5 - MiniWebPlatformID = 6 - LinuxPlatformID = 7 + IOSPlatformID = 1 + AndroidPlatformID = 2 + WindowsPlatformID = 3 + OSXPlatformID = 4 + WebPlatformID = 5 + MiniWebPlatformID = 6 + LinuxPlatformID = 7 + AndroidPadPlatformID = 8 + IPadPlatformID = 9 //Platform string match to Platform ID - IOSPlatformStr = "IOS" - AndroidPlatformStr = "Android" - WindowsPlatformStr = "Windows" - OSXPlatformStr = "OSX" - WebPlatformStr = "Web" - MiniWebPlatformStr = "MiniWeb" - LinuxPlatformStr = "Linux" + IOSPlatformStr = "IOS" + AndroidPlatformStr = "Android" + WindowsPlatformStr = "Windows" + OSXPlatformStr = "OSX" + WebPlatformStr = "Web" + MiniWebPlatformStr = "MiniWeb" + LinuxPlatformStr = "Linux" + AndroidPadPlatformStr = "APad" + IPadPlatformStr = "IPad" //terminal types TerminalPC = "PC" @@ -28,22 +32,26 @@ const ( ) var PlatformID2Name = map[int]string{ - IOSPlatformID: IOSPlatformStr, - AndroidPlatformID: AndroidPlatformStr, - WindowsPlatformID: WindowsPlatformStr, - OSXPlatformID: OSXPlatformStr, - WebPlatformID: WebPlatformStr, - MiniWebPlatformID: MiniWebPlatformStr, - LinuxPlatformID: LinuxPlatformStr, + IOSPlatformID: IOSPlatformStr, + AndroidPlatformID: AndroidPlatformStr, + WindowsPlatformID: WindowsPlatformStr, + OSXPlatformID: OSXPlatformStr, + WebPlatformID: WebPlatformStr, + MiniWebPlatformID: MiniWebPlatformStr, + LinuxPlatformID: LinuxPlatformStr, + AndroidPadPlatformID: AndroidPadPlatformStr, + IPadPlatformID: IPadPlatformStr, } var PlatformName2ID = map[string]int{ - IOSPlatformStr: IOSPlatformID, - AndroidPlatformStr: AndroidPlatformID, - WindowsPlatformStr: WindowsPlatformID, - OSXPlatformStr: OSXPlatformID, - WebPlatformStr: WebPlatformID, - MiniWebPlatformStr: MiniWebPlatformID, - LinuxPlatformStr: LinuxPlatformID, + IOSPlatformStr: IOSPlatformID, + AndroidPlatformStr: AndroidPlatformID, + WindowsPlatformStr: WindowsPlatformID, + OSXPlatformStr: OSXPlatformID, + WebPlatformStr: WebPlatformID, + MiniWebPlatformStr: MiniWebPlatformID, + LinuxPlatformStr: LinuxPlatformID, + AndroidPadPlatformStr: AndroidPadPlatformID, + IPadPlatformStr: IPadPlatformID, } var Platform2class = map[string]string{ IOSPlatformStr: TerminalMobile, From 0117e96d5b20ce82fb03d9c567e5a79baef52383 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 4 Aug 2022 16:27:39 +0800 Subject: [PATCH 026/230] callback msg content --- pkg/common/callback/callback.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/pkg/common/callback/callback.go b/pkg/common/callback/callback.go index 676a62a52..fa19e7961 100644 --- a/pkg/common/callback/callback.go +++ b/pkg/common/callback/callback.go @@ -3,7 +3,6 @@ package callback import ( "Open_IM/pkg/common/constant" server_api_params "Open_IM/pkg/proto/sdk_ws" - "github.com/golang/protobuf/jsonpb" "github.com/golang/protobuf/proto" ) @@ -11,12 +10,12 @@ func GetContent(msg *server_api_params.MsgData) string { if msg.ContentType >= constant.NotificationBegin && msg.ContentType <= constant.NotificationEnd { var tips server_api_params.TipsComm _ = proto.Unmarshal(msg.Content, &tips) - marshaler := jsonpb.Marshaler{ - OrigName: true, - EnumsAsInts: false, - EmitDefaults: false, - } - content, _ := marshaler.MarshalToString(&tips) + //marshaler := jsonpb.Marshaler{ + // OrigName: true, + // EnumsAsInts: false, + // EmitDefaults: false, + //} + content := tips.JsonDetail return content } else { return string(msg.Content) From 231d4db71d8c50672638fc6103098debb66a6d4c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 4 Aug 2022 16:36:50 +0800 Subject: [PATCH 027/230] callback msg content --- internal/msg_gateway/gate/ws_server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 6b6c7ee51..b97e552e8 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -196,7 +196,7 @@ func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int, newConn if oldConnMap, ok := ws.wsUserToConn[uid]; ok { // user->map[platform->conn] if oldConn, ok := oldConnMap[platformID]; ok { log.NewDebug(operationID, uid, platformID, "kick old conn") - // ws.sendKickMsg(oldConn, newConn) + ws.sendKickMsg(oldConn, newConn) m, err := db.DB.GetTokenMapByUidPid(uid, constant.PlatformIDToName(platformID)) if err != nil && err != go_redis.Nil { log.NewError(operationID, "get token from redis err", err.Error(), uid, constant.PlatformIDToName(platformID)) From 3d0827a6da22a2bc3b659a192f5ca68ad31ee8ee Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 4 Aug 2022 17:20:33 +0800 Subject: [PATCH 028/230] callback fix --- internal/rpc/group/group.go | 143 ++++++++++++++--------- internal/rpc/user/user.go | 15 ++- pkg/base_info/group_api_struct.go | 2 + pkg/common/constant/constant.go | 7 ++ pkg/common/db/RedisModel.go | 6 + pkg/common/db/rocks_cache/rocks_cache.go | 43 ++++++- 6 files changed, 158 insertions(+), 58 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index d6d9e2a9f..640b7eb07 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -467,9 +467,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), userID) } } - if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - } + chat.MemberInvitedNotification(req.OperationID, req.GroupID, req.OpUserID, req.Reason, okUserIDList) } else { for _, v := range req.InvitedUserIDList { @@ -491,7 +489,6 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGroupAllMemberReq) (*pbGroup.GetGroupAllMemberResp, error) { log.NewInfo(req.OperationID, "GetGroupAllMember, args ", req.String()) var resp pbGroup.GetGroupAllMemberResp - //groupInfo, err := imdb.GetGroupInfoByGroupID(req.GroupID) groupInfo, err := rocksCache.GetGroupInfoFromCache(req.GroupID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) @@ -500,7 +497,7 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro return &resp, nil } if groupInfo.GroupType != constant.SuperGroup { - memberList, err := rocksCache.GetAllGroupMembersInfoFromCache(req.GroupID) + memberList, err := rocksCache.GetGroupMembersInfoFromCache(req.Count, req.Offset, req.GroupID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) resp.ErrCode = constant.ErrDB.ErrCode @@ -693,10 +690,11 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), userID) } + if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, userID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + } } - if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - } + chat.MemberKickedNotification(req, okUserIDList) } else { for _, userID := range okUserIDList { @@ -721,22 +719,35 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG log.NewInfo(req.OperationID, "GetGroupMembersInfo args ", req.String()) var resp pbGroup.GetGroupMembersInfoResp resp.MemberList = []*open_im_sdk.GroupMemberFullInfo{} - groupMembers, err := rocksCache.GetAllGroupMembersInfoFromCache(req.GroupID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), req.GroupID, err.Error()) - resp.ErrCode = constant.ErrDB.ErrCode - resp.ErrMsg = constant.ErrDB.ErrMsg - return &resp, nil - } - for _, member := range groupMembers { - if utils.IsContain(member.UserID, req.MemberList) { - var memberNode open_im_sdk.GroupMemberFullInfo - utils.CopyStructFields(&memberNode, member) - memberNode.JoinTime = int32(member.JoinTime.Unix()) - resp.MemberList = append(resp.MemberList, &memberNode) + + for _, userID := range req.MemberList { + groupMember, err := rocksCache.GetGroupMemberInfoFromCache(req.GroupID, userID, "") + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), req.GroupID, userID, err.Error()) + continue } + var memberNode open_im_sdk.GroupMemberFullInfo + utils.CopyStructFields(&memberNode, groupMember) + memberNode.JoinTime = int32(groupMember.JoinTime.Unix()) + resp.MemberList = append(resp.MemberList, &memberNode) } + //groupMembers, err := rocksCache.GetAllGroupMembersInfoFromCache(req.GroupID) + //if err != nil { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), req.GroupID, err.Error()) + // resp.ErrCode = constant.ErrDB.ErrCode + // resp.ErrMsg = constant.ErrDB.ErrMsg + // return &resp, nil + //} + //for _, member := range groupMembers { + // if utils.IsContain(member.UserID, req.MemberList) { + // var memberNode open_im_sdk.GroupMemberFullInfo + // utils.CopyStructFields(&memberNode, member) + // memberNode.JoinTime = int32(member.JoinTime.Unix()) + // resp.MemberList = append(resp.MemberList, &memberNode) + // } + //} + resp.ErrCode = 0 log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", resp.String()) return &resp, nil @@ -899,17 +910,17 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - group, err := rocksCache.GetGroupInfoFromCache(req.GroupID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), req.GroupID, err.Error()) - } - if group != nil { - if group.GroupType != constant.SuperGroup { - if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - } - } - } + //group, err := rocksCache.GetGroupInfoFromCache(req.GroupID) + //if err != nil { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), req.GroupID, err.Error()) + //} + //if group != nil { + // if group.GroupType != constant.SuperGroup { + // if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + // } + // } + //} chat.GroupApplicationAcceptedNotification(req) chat.MemberEnterNotification(req) @@ -987,10 +998,10 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) } - err = rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - } + //err = rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID) + //if err != nil { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + //} chat.MemberEnterDirectlyNotification(req.GroupID, req.OpUserID, req.OperationID) log.NewInfo(req.OperationID, "JoinGroup rpc return ") @@ -1100,7 +1111,10 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) } if groupInfo.GroupType != constant.SuperGroup { - if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { + //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + //} + if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.OpUserID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) } if err := rocksCache.DelJoinedGroupIDListFromCache(req.OpUserID); err != nil { @@ -1304,8 +1318,16 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe log.NewError(req.OperationID, "UpdateGroupMemberInfo failed ", groupMemberInfo) return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), req.GroupID, err.Error()) + //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), req.GroupID, err.Error()) + //} + err = rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.NewOwnerUserID) + if err != nil { + log.NewError(req.OperationID, "DelGroupMemberInfoFromCache failed ", req.GroupID, req.NewOwnerUserID) + } + err = rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.OldOwnerUserID) + if err != nil { + log.NewError(req.OperationID, "DelGroupMemberInfoFromCache failed ", req.GroupID, req.OldOwnerUserID) } chat.GroupOwnerTransferredNotification(req) return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil @@ -1581,8 +1603,13 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) return resp, http.WrapError(constant.ErrDB) } - if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupId); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupId) + //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupId); err != nil { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupId) + //} + for _, userID := range resp.Success { + if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupId, userID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupId, userID) + } } chat.MemberKickedNotification(reqKick, resp.Success) @@ -1643,9 +1670,9 @@ func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGrou log.NewError(req.OperationId, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) return resp, http.WrapError(constant.ErrDB) } - if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupId); err != nil { - log.NewError(req.OperationId, utils.GetSelfFuncName(), err.Error(), req.GroupId) - } + //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupId); err != nil { + // log.NewError(req.OperationId, utils.GetSelfFuncName(), err.Error(), req.GroupId) + //} chat.MemberInvitedNotification(req.OperationId, req.GroupId, req.OpUserId, "admin add you to group", resp.Success) return resp, nil @@ -1767,9 +1794,9 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: cacheResp.CommonResp.ErrCode, ErrMsg: cacheResp.CommonResp.ErrMsg}}, nil } - if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - } + //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + //} log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } @@ -1815,7 +1842,10 @@ func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGrou log.Error(req.OperationID, "UpdateGroupMemberInfo failed ", err.Error(), groupMemberInfo) return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { + //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + //} + if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.UserID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) } chat.GroupMemberMutedNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID, req.MutedSeconds) @@ -1859,7 +1889,10 @@ func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.Ca log.Error(req.OperationID, "UpdateGroupMemberInfo failed ", err.Error(), groupMemberInfo) return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { + //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + //} + if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.UserID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) } chat.GroupMemberCancelMutedNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID) @@ -1979,7 +2012,10 @@ func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.S log.Error(req.OperationID, errMsg) return &pbGroup.SetGroupMemberNicknameResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { + //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + //} + if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.UserID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) } chat.GroupMemberInfoSetNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID) @@ -2014,8 +2050,11 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGr resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg + ":" + err.Error() return resp, nil } - if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + //} + if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.UserID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID, req.UserID) } if req.RoleLevel != nil { switch req.RoleLevel.Value { diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 47f6036bf..57a456d4e 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -482,8 +482,12 @@ func (s *userServer) SyncJoinedGroupMemberFaceURL(userID string, faceURL string, log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), groupMemberInfo) continue } - if err := rocksCache.DelAllGroupMembersInfoFromCache(groupID); err != nil { - log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), groupID) + //if err := rocksCache.DelAllGroupMembersInfoFromCache(groupID); err != nil { + // log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), groupID) + // continue + //} + if err := rocksCache.DelGroupMemberInfoFromCache(groupID, userID); err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), groupID, userID) continue } chat.GroupMemberInfoSetNotification(operationID, opUserID, groupID, userID) @@ -508,9 +512,12 @@ func (s *userServer) SyncJoinedGroupMemberNickname(userID string, newNickname, o log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), groupMemberInfo) continue } - if err := rocksCache.DelAllGroupMembersInfoFromCache(v); err != nil { + //if err := rocksCache.DelAllGroupMembersInfoFromCache(v); err != nil { + // log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), v) + // continue + //} + if err := rocksCache.DelGroupMemberInfoFromCache(v, userID); err != nil { log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), v) - continue } chat.GroupMemberInfoSetNotification(operationID, opUserID, v, userID) } diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 6ba6b2d52..7424a843d 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -73,6 +73,8 @@ type GetGroupMemberListResp struct { type GetGroupAllMemberReq struct { GroupID string `json:"groupID" binding:"required"` OperationID string `json:"operationID" binding:"required"` + Offset int `json:"offset"` + Count int `json:"count"` } type GetGroupAllMemberResp struct { CommResp diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 25e2fe3dc..a542560da 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -225,6 +225,13 @@ const ( WorkMomentLikeNotification = 1 WorkMomentAtUserNotification = 2 ) + +const ( + // diffusionType + WriteDiffusion = 0 + ReadDiffusion = 1 +) + const ( AtAllString = "AtAllTag" AtNormal = 0 diff --git a/pkg/common/db/RedisModel.go b/pkg/common/db/RedisModel.go index 2ef11d59b..b4dfd6139 100644 --- a/pkg/common/db/RedisModel.go +++ b/pkg/common/db/RedisModel.go @@ -34,6 +34,7 @@ const ( FcmToken = "FCM_TOKEN:" groupUserMinSeq = "GROUP_USER_MIN_SEQ:" groupMaxSeq = "GROUP_MAX_SEQ:" + groupMinSeq = "GROUP_MIN_SEQ:" sendMsgFailedFlag = "SEND_MSG_FAILED_FLAG:" ) @@ -115,6 +116,11 @@ func (d *DataBases) SetGroupMaxSeq(groupID string, maxSeq uint64) error { return d.RDB.Set(context.Background(), key, maxSeq, 0).Err() } +func (d *DataBases) SetGroupMinSeq(groupID string, minSeq uint32) error { + key := groupMinSeq + groupID + return d.RDB.Set(context.Background(), key, minSeq, 0).Err() +} + //Store userid and platform class to redis func (d *DataBases) AddTokenFlag(userID string, platformID int, token string, flag int) error { key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID) diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 033731e8d..2300d051d 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -186,7 +186,7 @@ func DelUserInfoFromCache(userID string) error { return db.DB.Rc.TagAsDeleted(userInfoCache + userID) } -func GetGroupMemberInfoFromCache(groupID, userID string) (*db.GroupMember, error) { +func GetGroupMemberInfoFromCache(groupID, userID, fullKey string) (*db.GroupMember, error) { getGroupMemberInfo := func() (string, error) { groupMemberInfo, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, userID) if err != nil { @@ -195,7 +195,10 @@ func GetGroupMemberInfoFromCache(groupID, userID string) (*db.GroupMember, error bytes, err := json.Marshal(groupMemberInfo) return string(bytes), utils.Wrap(err, "") } - groupMemberInfoStr, err := db.DB.Rc.Fetch(groupMemberInfoCache+groupID+"-"+userID, time.Second*30*60, getGroupMemberInfo) + if fullKey == "" { + fullKey = groupMemberInfoCache + groupID + "-" + userID + } + groupMemberInfoStr, err := db.DB.Rc.Fetch(fullKey, time.Second*30*60, getGroupMemberInfo) if err != nil { return nil, utils.Wrap(err, "") } @@ -208,6 +211,42 @@ func DelGroupMemberInfoFromCache(groupID, userID string) error { return db.DB.Rc.TagAsDeleted(groupMemberInfoCache + groupID + "-" + userID) } +func GetGroupMembersInfoFromCache(count, offset int32, groupID string) ([]*db.GroupMember, error) { + var cursor uint64 + var err error + var keys []string + key := groupMemberInfoCache + groupID + "-" + if count != 0 { + keys, cursor, err = db.DB.RDB.Scan(context.Background(), uint64(offset), key, int64(count)).Result() + if err != nil { + return nil, err + } + } else { + for { + var currentKeys []string + currentKeys, cursor, err = db.DB.RDB.Scan(context.Background(), cursor, key, 3000).Result() + if err != nil { + return nil, err + } + keys = append(keys, currentKeys...) + if cursor == 0 { + break + } + } + } + + var groupMemberList []*db.GroupMember + for _, key := range keys { + v, err := GetGroupMemberInfoFromCache("", "", key) + if err != nil { + log.NewError("", utils.GetSelfFuncName(), key, err.Error()) + continue + } + groupMemberList = append(groupMemberList, v) + } + return groupMemberList, nil +} + func GetAllGroupMembersInfoFromCache(groupID string) ([]*db.GroupMember, error) { getGroupMemberInfo := func() (string, error) { groupMembers, err := imdb.GetGroupMemberListByGroupID(groupID) From 0f655e9292045002579e22a17ae78f1321793c64 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 4 Aug 2022 17:23:21 +0800 Subject: [PATCH 029/230] callback fix --- pkg/common/db/rocks_cache/rocks_cache.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 2300d051d..6f8cfe562 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -214,17 +214,18 @@ func DelGroupMemberInfoFromCache(groupID, userID string) error { func GetGroupMembersInfoFromCache(count, offset int32, groupID string) ([]*db.GroupMember, error) { var cursor uint64 var err error - var keys []string + var keys, currentKeys []string key := groupMemberInfoCache + groupID + "-" if count != 0 { keys, cursor, err = db.DB.RDB.Scan(context.Background(), uint64(offset), key, int64(count)).Result() if err != nil { return nil, err } + keys = append(keys, currentKeys...) } else { for { var currentKeys []string - currentKeys, cursor, err = db.DB.RDB.Scan(context.Background(), cursor, key, 3000).Result() + currentKeys, cursor, err = db.DB.RDB.Scan(context.Background(), cursor, key, int64(count)).Result() if err != nil { return nil, err } From db547d60dfc8f129bfddedd4b36b054dde51a6d4 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 4 Aug 2022 18:24:17 +0800 Subject: [PATCH 030/230] callback fix --- internal/rpc/group/group.go | 2 +- pkg/common/db/rocks_cache/rocks_cache.go | 64 +++++++++++------------- 2 files changed, 31 insertions(+), 35 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 640b7eb07..a86398ee1 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -721,7 +721,7 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG resp.MemberList = []*open_im_sdk.GroupMemberFullInfo{} for _, userID := range req.MemberList { - groupMember, err := rocksCache.GetGroupMemberInfoFromCache(req.GroupID, userID, "") + groupMember, err := rocksCache.GetGroupMemberInfoFromCache(req.GroupID, userID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), req.GroupID, userID, err.Error()) continue diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 6f8cfe562..0227869a3 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -186,7 +186,7 @@ func DelUserInfoFromCache(userID string) error { return db.DB.Rc.TagAsDeleted(userInfoCache + userID) } -func GetGroupMemberInfoFromCache(groupID, userID, fullKey string) (*db.GroupMember, error) { +func GetGroupMemberInfoFromCache(groupID, userID string) (*db.GroupMember, error) { getGroupMemberInfo := func() (string, error) { groupMemberInfo, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, userID) if err != nil { @@ -195,10 +195,7 @@ func GetGroupMemberInfoFromCache(groupID, userID, fullKey string) (*db.GroupMemb bytes, err := json.Marshal(groupMemberInfo) return string(bytes), utils.Wrap(err, "") } - if fullKey == "" { - fullKey = groupMemberInfoCache + groupID + "-" + userID - } - groupMemberInfoStr, err := db.DB.Rc.Fetch(fullKey, time.Second*30*60, getGroupMemberInfo) + groupMemberInfoStr, err := db.DB.Rc.Fetch(groupMemberInfoCache+groupID+"-"+userID, time.Second*30*60, getGroupMemberInfo) if err != nil { return nil, utils.Wrap(err, "") } @@ -212,38 +209,37 @@ func DelGroupMemberInfoFromCache(groupID, userID string) error { } func GetGroupMembersInfoFromCache(count, offset int32, groupID string) ([]*db.GroupMember, error) { - var cursor uint64 - var err error - var keys, currentKeys []string - key := groupMemberInfoCache + groupID + "-" - if count != 0 { - keys, cursor, err = db.DB.RDB.Scan(context.Background(), uint64(offset), key, int64(count)).Result() - if err != nil { - return nil, err - } - keys = append(keys, currentKeys...) - } else { - for { - var currentKeys []string - currentKeys, cursor, err = db.DB.RDB.Scan(context.Background(), cursor, key, int64(count)).Result() - if err != nil { - return nil, err - } - keys = append(keys, currentKeys...) - if cursor == 0 { - break - } - } + groupMemberIDList, err := GetGroupMemberIDListFromCache(groupID) + if err != nil { + return nil, err + } + if count < 0 || offset < 0 { + return nil, nil } - var groupMemberList []*db.GroupMember - for _, key := range keys { - v, err := GetGroupMemberInfoFromCache("", "", key) - if err != nil { - log.NewError("", utils.GetSelfFuncName(), key, err.Error()) - continue + if count != 0 { + l := int32(len(groupMemberIDList)) + var start, stop int32 + start = offset + stop = offset + count + if start > stop { + return nil, nil } - groupMemberList = append(groupMemberList, v) + if start >= l { + return nil, nil + } + if stop >= l { + stop = l + } + groupMemberIDList = groupMemberIDList[start:stop] + } + log.NewDebug("", utils.GetSelfFuncName(), "ID list: ", groupMemberIDList) + for _, userID := range groupMemberIDList { + groupMembers, err := GetGroupMemberInfoFromCache(groupID, userID) + if err != nil { + log.NewError("", utils.GetSelfFuncName(), err.Error(), groupID, userID) + } + groupMemberList = append(groupMemberList, groupMembers) } return groupMemberList, nil } From 576348b1f26582f300f7e158508fcf3699d6d1f7 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 4 Aug 2022 18:55:38 +0800 Subject: [PATCH 031/230] callback fix --- pkg/common/db/rocks_cache/rocks_cache.go | 29 +++++++++++++++--------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 0227869a3..9d91aad66 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -217,23 +217,30 @@ func GetGroupMembersInfoFromCache(count, offset int32, groupID string) ([]*db.Gr return nil, nil } var groupMemberList []*db.GroupMember + var start, stop int32 + start = offset + stop = offset + count + l := int32(len(groupMemberIDList)) + if start > stop { + return nil, nil + } + if start >= l { + return nil, nil + } if count != 0 { - l := int32(len(groupMemberIDList)) - var start, stop int32 - start = offset - stop = offset + count - if start > stop { - return nil, nil - } - if start >= l { - return nil, nil - } if stop >= l { stop = l } groupMemberIDList = groupMemberIDList[start:stop] + } else { + if l < 1000 { + stop = l + } else { + stop = 1000 + } + groupMemberIDList = groupMemberIDList[start:stop] } - log.NewDebug("", utils.GetSelfFuncName(), "ID list: ", groupMemberIDList) + //log.NewDebug("", utils.GetSelfFuncName(), "ID list: ", groupMemberIDList) for _, userID := range groupMemberIDList { groupMembers, err := GetGroupMemberInfoFromCache(groupID, userID) if err != nil { From 4e69ff196a7fa6bfd0e08d3cebce9b9f36a9578c Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 4 Aug 2022 19:08:08 +0800 Subject: [PATCH 032/230] cache get group --- internal/rpc/group/group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index a86398ee1..8e279d82b 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -510,7 +510,7 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro resp.MemberList = append(resp.MemberList, &node) } } - log.NewInfo(req.OperationID, "GetGroupAllMember rpc return ", resp.String()) + log.NewInfo(req.OperationID, "GetGroupAllMember rpc return ", len(resp.MemberList)) return &resp, nil } From 91a767b4fb72d2c31e528b4bd52d8327b12c85bc Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 4 Aug 2022 19:18:31 +0800 Subject: [PATCH 033/230] callback fix --- internal/api/group/group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index ac4e43b41..925b33c26 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -239,7 +239,7 @@ func GetGroupAllMemberList(c *gin.Context) { memberListResp := api.GetGroupAllMemberResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, MemberList: RpcResp.MemberList} memberListResp.Data = jsonData.JsonDataList(memberListResp.MemberList) - log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp) + log.NewInfo(req.OperationID, "GetGroupAllMember api return ", len(memberListResp.MemberList)) c.JSON(http.StatusOK, memberListResp) } From 10c0f3075a7979592b3a75abd1af9fe38ca7dca6 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 5 Aug 2022 12:08:00 +0800 Subject: [PATCH 034/230] unread bug fix --- internal/rpc/conversation/conversaion.go | 15 +++++++++++---- internal/rpc/msg/conversation_notification.go | 12 ++++++++++++ internal/rpc/msg/send_msg.go | 2 +- pkg/common/constant/constant.go | 1 + pkg/proto/sdk_ws/ws.proto | 1 + 5 files changed, 26 insertions(+), 5 deletions(-) diff --git a/internal/rpc/conversation/conversaion.go b/internal/rpc/conversation/conversaion.go index 77fc58e63..2828a9df5 100644 --- a/internal/rpc/conversation/conversaion.go +++ b/internal/rpc/conversation/conversaion.go @@ -30,6 +30,7 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbConversation.ModifyConversationFieldResp{} var err error + isSyncConversation := true if req.Conversation.ConversationType == constant.GroupChatType { groupInfo, err := imdb.GetGroupInfoByGroupID(req.Conversation.GroupID) if err != nil { @@ -71,8 +72,7 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo case constant.FieldAttachedInfo: err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"attached_info": conversation.AttachedInfo}) case constant.FieldUnread: - err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"unread_count": conversation.UnreadCount}) - + isSyncConversation = false } if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "UpdateColumnsConversations error", err.Error()) @@ -97,9 +97,16 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo return resp, nil } } else { - for _, v := range req.UserIDList { - chat.ConversationChangeNotification(req.OperationID, v) + if isSyncConversation { + for _, v := range req.UserIDList { + chat.ConversationChangeNotification(req.OperationID, v) + } + } else { + for _, v := range req.UserIDList { + chat.ConversationUnreadChangeNotification(req.OperationID, v, req.Conversation.ConversationID) + } } + } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return", resp.String()) resp.CommonResp = &pbConversation.CommonResp{} diff --git a/internal/rpc/msg/conversation_notification.go b/internal/rpc/msg/conversation_notification.go index b43db7959..c79f28a65 100644 --- a/internal/rpc/msg/conversation_notification.go +++ b/internal/rpc/msg/conversation_notification.go @@ -68,3 +68,15 @@ func ConversationChangeNotification(operationID, userID string) { tips.DefaultTips = config.Config.Notification.ConversationOptUpdate.DefaultTips.Tips SetConversationNotification(operationID, userID, userID, constant.ConversationOptChangeNotification, ConversationChangedTips, tips) } + +//会话未读数同步 +func ConversationUnreadChangeNotification(operationID, userID, conversationID string) { + log.NewInfo(operationID, utils.GetSelfFuncName()) + ConversationChangedTips := &open_im_sdk.ConversationUpdateTips{ + UserID: userID, + ConversationIDList: []string{conversationID}, + } + var tips open_im_sdk.TipsComm + tips.DefaultTips = config.Config.Notification.ConversationOptUpdate.DefaultTips.Tips + SetConversationNotification(operationID, userID, userID, constant.ConversationUnreadNotification, ConversationChangedTips, tips) +} diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index c4e57293c..11a646b8b 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -831,7 +831,7 @@ func Notification(n *NotificationMsg) { unReadCount = config.Config.Notification.ConversationSetPrivate.Conversation.UnreadCount case constant.DeleteMessageNotification: reliabilityLevel = constant.ReliableNotificationNoMsg - case constant.SuperGroupUpdateNotification: + case constant.SuperGroupUpdateNotification, constant.ConversationUnreadNotification: reliabilityLevel = constant.UnreliableNotification } switch reliabilityLevel { diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index a542560da..2ba3d1774 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -103,6 +103,7 @@ const ( SuperGroupNotificationEnd = 1699 ConversationPrivateChatNotification = 1701 + ConversationUnreadNotification = 1702 OrganizationChangedNotification = 1801 diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 225a93c39..7c0a6813a 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -487,6 +487,7 @@ message UserInfoUpdatedTips{ //////////////////////conversation///////////////////// message ConversationUpdateTips{ string UserID = 1; + repeated string conversationIDList = 2; } message ConversationSetPrivateTips{ From 0489c3541756ec4212fdf2d90155992dd6c98774 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 5 Aug 2022 12:08:34 +0800 Subject: [PATCH 035/230] unread bug fix --- pkg/proto/sdk_ws/ws.pb.go | 321 ++++++++++++++++++++------------------ 1 file changed, 165 insertions(+), 156 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 1c768edac..b62698035 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -46,7 +46,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{0} + return fileDescriptor_ws_aba301ea11ce8970, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -204,7 +204,7 @@ func (m *GroupInfoForSet) Reset() { *m = GroupInfoForSet{} } func (m *GroupInfoForSet) String() string { return proto.CompactTextString(m) } func (*GroupInfoForSet) ProtoMessage() {} func (*GroupInfoForSet) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{1} + return fileDescriptor_ws_aba301ea11ce8970, []int{1} } func (m *GroupInfoForSet) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoForSet.Unmarshal(m, b) @@ -309,7 +309,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{2} + return fileDescriptor_ws_aba301ea11ce8970, []int{2} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -428,7 +428,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{3} + return fileDescriptor_ws_aba301ea11ce8970, []int{3} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -504,7 +504,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} } func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (*UserInfo) ProtoMessage() {} func (*UserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{4} + return fileDescriptor_ws_aba301ea11ce8970, []int{4} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -618,7 +618,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} } func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{5} + return fileDescriptor_ws_aba301ea11ce8970, []int{5} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -703,7 +703,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} } func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{6} + return fileDescriptor_ws_aba301ea11ce8970, []int{6} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -786,7 +786,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} } func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{7} + return fileDescriptor_ws_aba301ea11ce8970, []int{7} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -908,7 +908,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} } func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{8} + return fileDescriptor_ws_aba301ea11ce8970, []int{8} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -1053,7 +1053,7 @@ func (m *Department) Reset() { *m = Department{} } func (m *Department) String() string { return proto.CompactTextString(m) } func (*Department) ProtoMessage() {} func (*Department) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{9} + return fileDescriptor_ws_aba301ea11ce8970, []int{9} } func (m *Department) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Department.Unmarshal(m, b) @@ -1164,7 +1164,7 @@ func (m *OrganizationUser) Reset() { *m = OrganizationUser{} } func (m *OrganizationUser) String() string { return proto.CompactTextString(m) } func (*OrganizationUser) ProtoMessage() {} func (*OrganizationUser) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{10} + return fileDescriptor_ws_aba301ea11ce8970, []int{10} } func (m *OrganizationUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationUser.Unmarshal(m, b) @@ -1278,7 +1278,7 @@ func (m *DepartmentMember) Reset() { *m = DepartmentMember{} } func (m *DepartmentMember) String() string { return proto.CompactTextString(m) } func (*DepartmentMember) ProtoMessage() {} func (*DepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{11} + return fileDescriptor_ws_aba301ea11ce8970, []int{11} } func (m *DepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DepartmentMember.Unmarshal(m, b) @@ -1359,7 +1359,7 @@ func (m *UserDepartmentMember) Reset() { *m = UserDepartmentMember{} } func (m *UserDepartmentMember) String() string { return proto.CompactTextString(m) } func (*UserDepartmentMember) ProtoMessage() {} func (*UserDepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{12} + return fileDescriptor_ws_aba301ea11ce8970, []int{12} } func (m *UserDepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDepartmentMember.Unmarshal(m, b) @@ -1405,7 +1405,7 @@ func (m *UserInDepartment) Reset() { *m = UserInDepartment{} } func (m *UserInDepartment) String() string { return proto.CompactTextString(m) } func (*UserInDepartment) ProtoMessage() {} func (*UserInDepartment) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{13} + return fileDescriptor_ws_aba301ea11ce8970, []int{13} } func (m *UserInDepartment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInDepartment.Unmarshal(m, b) @@ -1454,7 +1454,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{14} + return fileDescriptor_ws_aba301ea11ce8970, []int{14} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -1513,7 +1513,7 @@ func (m *SeqList) Reset() { *m = SeqList{} } func (m *SeqList) String() string { return proto.CompactTextString(m) } func (*SeqList) ProtoMessage() {} func (*SeqList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{15} + return fileDescriptor_ws_aba301ea11ce8970, []int{15} } func (m *SeqList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SeqList.Unmarshal(m, b) @@ -1551,7 +1551,7 @@ func (m *MsgDataList) Reset() { *m = MsgDataList{} } func (m *MsgDataList) String() string { return proto.CompactTextString(m) } func (*MsgDataList) ProtoMessage() {} func (*MsgDataList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{16} + return fileDescriptor_ws_aba301ea11ce8970, []int{16} } func (m *MsgDataList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataList.Unmarshal(m, b) @@ -1592,7 +1592,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{17} + return fileDescriptor_ws_aba301ea11ce8970, []int{17} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -1653,7 +1653,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{18} + return fileDescriptor_ws_aba301ea11ce8970, []int{18} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1706,7 +1706,7 @@ func (m *MaxAndMinSeq) Reset() { *m = MaxAndMinSeq{} } func (m *MaxAndMinSeq) String() string { return proto.CompactTextString(m) } func (*MaxAndMinSeq) ProtoMessage() {} func (*MaxAndMinSeq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{19} + return fileDescriptor_ws_aba301ea11ce8970, []int{19} } func (m *MaxAndMinSeq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MaxAndMinSeq.Unmarshal(m, b) @@ -1755,7 +1755,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{20} + return fileDescriptor_ws_aba301ea11ce8970, []int{20} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1823,7 +1823,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{21} + return fileDescriptor_ws_aba301ea11ce8970, []int{21} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1896,7 +1896,7 @@ func (m *MsgData) Reset() { *m = MsgData{} } func (m *MsgData) String() string { return proto.CompactTextString(m) } func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{22} + return fileDescriptor_ws_aba301ea11ce8970, []int{22} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -2085,7 +2085,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{23} + return fileDescriptor_ws_aba301ea11ce8970, []int{23} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -2153,7 +2153,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} } func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (*TipsComm) ProtoMessage() {} func (*TipsComm) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{24} + return fileDescriptor_ws_aba301ea11ce8970, []int{24} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -2210,7 +2210,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{25} + return fileDescriptor_ws_aba301ea11ce8970, []int{25} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -2279,7 +2279,7 @@ func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoSetTips) ProtoMessage() {} func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{26} + return fileDescriptor_ws_aba301ea11ce8970, []int{26} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -2334,7 +2334,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{27} + return fileDescriptor_ws_aba301ea11ce8970, []int{27} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2390,7 +2390,7 @@ func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } func (*MemberQuitTips) ProtoMessage() {} func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{28} + return fileDescriptor_ws_aba301ea11ce8970, []int{28} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -2445,7 +2445,7 @@ func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAc func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationAcceptedTips) ProtoMessage() {} func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{29} + return fileDescriptor_ws_aba301ea11ce8970, []int{29} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -2500,7 +2500,7 @@ func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRe func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationRejectedTips) ProtoMessage() {} func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{30} + return fileDescriptor_ws_aba301ea11ce8970, []int{30} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -2556,7 +2556,7 @@ func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferred func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } func (*GroupOwnerTransferredTips) ProtoMessage() {} func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{31} + return fileDescriptor_ws_aba301ea11ce8970, []int{31} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -2619,7 +2619,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{32} + return fileDescriptor_ws_aba301ea11ce8970, []int{32} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -2682,7 +2682,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{33} + return fileDescriptor_ws_aba301ea11ce8970, []int{33} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -2744,7 +2744,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{34} + return fileDescriptor_ws_aba301ea11ce8970, []int{34} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -2798,7 +2798,7 @@ func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } func (*GroupDismissedTips) ProtoMessage() {} func (*GroupDismissedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{35} + return fileDescriptor_ws_aba301ea11ce8970, []int{35} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2854,7 +2854,7 @@ func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} } func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberMutedTips) ProtoMessage() {} func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{36} + return fileDescriptor_ws_aba301ea11ce8970, []int{36} } func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) @@ -2923,7 +2923,7 @@ func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMut func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberCancelMutedTips) ProtoMessage() {} func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{37} + return fileDescriptor_ws_aba301ea11ce8970, []int{37} } func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) @@ -2984,7 +2984,7 @@ func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} } func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMutedTips) ProtoMessage() {} func (*GroupMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{38} + return fileDescriptor_ws_aba301ea11ce8970, []int{38} } func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) @@ -3038,7 +3038,7 @@ func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} } func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupCancelMutedTips) ProtoMessage() {} func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{39} + return fileDescriptor_ws_aba301ea11ce8970, []int{39} } func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) @@ -3093,7 +3093,7 @@ func (m *GroupMemberInfoSetTips) Reset() { *m = GroupMemberInfoSetTips{} func (m *GroupMemberInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberInfoSetTips) ProtoMessage() {} func (*GroupMemberInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{40} + return fileDescriptor_ws_aba301ea11ce8970, []int{40} } func (m *GroupMemberInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberInfoSetTips.Unmarshal(m, b) @@ -3153,7 +3153,7 @@ func (m *OrganizationChangedTips) Reset() { *m = OrganizationChangedTips func (m *OrganizationChangedTips) String() string { return proto.CompactTextString(m) } func (*OrganizationChangedTips) ProtoMessage() {} func (*OrganizationChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{41} + return fileDescriptor_ws_aba301ea11ce8970, []int{41} } func (m *OrganizationChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationChangedTips.Unmarshal(m, b) @@ -3200,7 +3200,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} } func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{42} + return fileDescriptor_ws_aba301ea11ce8970, []int{42} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -3253,7 +3253,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} } func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{43} + return fileDescriptor_ws_aba301ea11ce8970, []int{43} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -3299,7 +3299,7 @@ func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationTips) ProtoMessage() {} func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{44} + return fileDescriptor_ws_aba301ea11ce8970, []int{44} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -3339,7 +3339,7 @@ func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplication func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationApprovedTips) ProtoMessage() {} func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{45} + return fileDescriptor_ws_aba301ea11ce8970, []int{45} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -3386,7 +3386,7 @@ func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplication func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationRejectedTips) ProtoMessage() {} func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{46} + return fileDescriptor_ws_aba301ea11ce8970, []int{46} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -3434,7 +3434,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{47} + return fileDescriptor_ws_aba301ea11ce8970, []int{47} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -3487,7 +3487,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{48} + return fileDescriptor_ws_aba301ea11ce8970, []int{48} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -3525,7 +3525,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{49} + return fileDescriptor_ws_aba301ea11ce8970, []int{49} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -3563,7 +3563,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{50} + return fileDescriptor_ws_aba301ea11ce8970, []int{50} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -3601,7 +3601,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{51} + return fileDescriptor_ws_aba301ea11ce8970, []int{51} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -3640,7 +3640,7 @@ func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*UserInfoUpdatedTips) ProtoMessage() {} func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{52} + return fileDescriptor_ws_aba301ea11ce8970, []int{52} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -3670,6 +3670,7 @@ func (m *UserInfoUpdatedTips) GetUserID() string { // ////////////////////conversation///////////////////// type ConversationUpdateTips struct { UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + ConversationIDList []string `protobuf:"bytes,2,rep,name=conversationIDList" json:"conversationIDList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -3679,7 +3680,7 @@ func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } func (*ConversationUpdateTips) ProtoMessage() {} func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{53} + return fileDescriptor_ws_aba301ea11ce8970, []int{53} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -3706,6 +3707,13 @@ func (m *ConversationUpdateTips) GetUserID() string { return "" } +func (m *ConversationUpdateTips) GetConversationIDList() []string { + if m != nil { + return m.ConversationIDList + } + return nil +} + type ConversationSetPrivateTips struct { RecvID string `protobuf:"bytes,1,opt,name=recvID" json:"recvID,omitempty"` SendID string `protobuf:"bytes,2,opt,name=sendID" json:"sendID,omitempty"` @@ -3719,7 +3727,7 @@ func (m *ConversationSetPrivateTips) Reset() { *m = ConversationSetPriva func (m *ConversationSetPrivateTips) String() string { return proto.CompactTextString(m) } func (*ConversationSetPrivateTips) ProtoMessage() {} func (*ConversationSetPrivateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{54} + return fileDescriptor_ws_aba301ea11ce8970, []int{54} } func (m *ConversationSetPrivateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationSetPrivateTips.Unmarshal(m, b) @@ -3774,7 +3782,7 @@ func (m *DeleteMessageTips) Reset() { *m = DeleteMessageTips{} } func (m *DeleteMessageTips) String() string { return proto.CompactTextString(m) } func (*DeleteMessageTips) ProtoMessage() {} func (*DeleteMessageTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{55} + return fileDescriptor_ws_aba301ea11ce8970, []int{55} } func (m *DeleteMessageTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteMessageTips.Unmarshal(m, b) @@ -3828,7 +3836,7 @@ func (m *RequestPagination) Reset() { *m = RequestPagination{} } func (m *RequestPagination) String() string { return proto.CompactTextString(m) } func (*RequestPagination) ProtoMessage() {} func (*RequestPagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{56} + return fileDescriptor_ws_aba301ea11ce8970, []int{56} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -3874,7 +3882,7 @@ func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } func (*ResponsePagination) ProtoMessage() {} func (*ResponsePagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{57} + return fileDescriptor_ws_aba301ea11ce8970, []int{57} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -3927,7 +3935,7 @@ func (m *SignalReq) Reset() { *m = SignalReq{} } func (m *SignalReq) String() string { return proto.CompactTextString(m) } func (*SignalReq) ProtoMessage() {} func (*SignalReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{58} + return fileDescriptor_ws_aba301ea11ce8970, []int{58} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -4194,7 +4202,7 @@ func (m *SignalResp) Reset() { *m = SignalResp{} } func (m *SignalResp) String() string { return proto.CompactTextString(m) } func (*SignalResp) ProtoMessage() {} func (*SignalResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{59} + return fileDescriptor_ws_aba301ea11ce8970, []int{59} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -4463,7 +4471,7 @@ func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } func (*InvitationInfo) ProtoMessage() {} func (*InvitationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{60} + return fileDescriptor_ws_aba301ea11ce8970, []int{60} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -4566,7 +4574,7 @@ func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } func (*ParticipantMetaData) ProtoMessage() {} func (*ParticipantMetaData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{61} + return fileDescriptor_ws_aba301ea11ce8970, []int{61} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -4621,7 +4629,7 @@ func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteReq) ProtoMessage() {} func (*SignalInviteReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{62} + return fileDescriptor_ws_aba301ea11ce8970, []int{62} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -4682,7 +4690,7 @@ func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteReply) ProtoMessage() {} func (*SignalInviteReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{63} + return fileDescriptor_ws_aba301ea11ce8970, []int{63} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -4737,7 +4745,7 @@ func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReq) ProtoMessage() {} func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{64} + return fileDescriptor_ws_aba301ea11ce8970, []int{64} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -4798,7 +4806,7 @@ func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupRep func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReply) ProtoMessage() {} func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{65} + return fileDescriptor_ws_aba301ea11ce8970, []int{65} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -4853,7 +4861,7 @@ func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } func (*SignalCancelReq) ProtoMessage() {} func (*SignalCancelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{66} + return fileDescriptor_ws_aba301ea11ce8970, []int{66} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -4911,7 +4919,7 @@ func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } func (*SignalCancelReply) ProtoMessage() {} func (*SignalCancelReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{67} + return fileDescriptor_ws_aba301ea11ce8970, []int{67} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -4946,7 +4954,7 @@ func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReq) ProtoMessage() {} func (*SignalAcceptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{68} + return fileDescriptor_ws_aba301ea11ce8970, []int{68} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -5014,7 +5022,7 @@ func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReply) ProtoMessage() {} func (*SignalAcceptReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{69} + return fileDescriptor_ws_aba301ea11ce8970, []int{69} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -5068,7 +5076,7 @@ func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReq) ProtoMessage() {} func (*SignalHungUpReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{70} + return fileDescriptor_ws_aba301ea11ce8970, []int{70} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -5119,7 +5127,7 @@ func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReply) ProtoMessage() {} func (*SignalHungUpReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{71} + return fileDescriptor_ws_aba301ea11ce8970, []int{71} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -5154,7 +5162,7 @@ func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } func (*SignalRejectReq) ProtoMessage() {} func (*SignalRejectReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{72} + return fileDescriptor_ws_aba301ea11ce8970, []int{72} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -5219,7 +5227,7 @@ func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } func (*SignalRejectReply) ProtoMessage() {} func (*SignalRejectReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{73} + return fileDescriptor_ws_aba301ea11ce8970, []int{73} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -5253,7 +5261,7 @@ func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } func (*DelMsgListReq) ProtoMessage() {} func (*DelMsgListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{74} + return fileDescriptor_ws_aba301ea11ce8970, []int{74} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -5313,7 +5321,7 @@ func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } func (*DelMsgListResp) ProtoMessage() {} func (*DelMsgListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_860ddb8af4f21a5d, []int{75} + return fileDescriptor_ws_aba301ea11ce8970, []int{75} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -5430,14 +5438,14 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_860ddb8af4f21a5d) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_aba301ea11ce8970) } -var fileDescriptor_ws_860ddb8af4f21a5d = []byte{ - // 3499 bytes of a gzipped FileDescriptorProto +var fileDescriptor_ws_aba301ea11ce8970 = []byte{ + // 3512 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3b, 0xcd, 0x6f, 0x24, 0x47, 0xf5, 0xbf, 0xee, 0xf1, 0x8c, 0x3d, 0x6f, 0xfc, 0x31, 0xee, 0xdd, 0x38, 0xf3, 0x33, 0x9b, 0xc5, - 0x74, 0xac, 0x24, 0x2c, 0xc1, 0x1b, 0x6d, 0x08, 0x82, 0x7c, 0x2c, 0xf2, 0x47, 0xf6, 0x23, 0xd9, - 0xb1, 0x9d, 0x9e, 0xdd, 0x04, 0x11, 0xa4, 0xa5, 0x3d, 0x5d, 0x1e, 0xf7, 0xba, 0xa7, 0xab, 0xdd, + 0x74, 0xac, 0x24, 0x2c, 0xc1, 0x8b, 0x36, 0x04, 0x41, 0x3e, 0x16, 0xf9, 0x23, 0xfb, 0x91, 0xec, + 0xd8, 0x4e, 0xcf, 0x6e, 0x82, 0x08, 0xd2, 0xa6, 0x3d, 0x5d, 0x1e, 0xf7, 0xba, 0xa7, 0xab, 0xdd, 0x1f, 0xde, 0x35, 0x17, 0x24, 0x90, 0x10, 0x37, 0x2e, 0x20, 0x24, 0x2e, 0x48, 0x5c, 0x10, 0x28, 0x8a, 0x10, 0x02, 0xc4, 0x01, 0x21, 0x84, 0xb8, 0x71, 0xe1, 0xc0, 0x8d, 0x03, 0x12, 0x67, 0xfe, 0x01, 0x24, 0xa4, 0xa0, 0xaa, 0x57, 0xdd, 0x5d, 0xd5, 0xdd, 0x63, 0xcf, 0x5a, 0x56, 0x76, 0xa3, @@ -5456,15 +5464,15 @@ var fileDescriptor_ws_860ddb8af4f21a5d = []byte{ 0x9a, 0xf8, 0x71, 0x67, 0x8a, 0x0f, 0x90, 0x51, 0xc6, 0x2c, 0xe8, 0xe4, 0x41, 0xa7, 0xc9, 0x59, 0xeb, 0xe4, 0x81, 0xb1, 0x00, 0x8d, 0x28, 0xb6, 0xe3, 0x24, 0xea, 0xc0, 0x92, 0xf6, 0x42, 0xdd, 0x12, 0x90, 0xb1, 0x0c, 0x33, 0x9c, 0x2f, 0x4d, 0xa5, 0x69, 0x71, 0x12, 0x15, 0x99, 0x59, 0xec, - 0xf6, 0x51, 0x40, 0x3a, 0xd3, 0x9c, 0x41, 0x8e, 0x30, 0x2e, 0x41, 0xdb, 0x27, 0xc4, 0x79, 0x97, + 0xf6, 0x51, 0x40, 0x3a, 0xd3, 0x9c, 0x41, 0x8e, 0x30, 0x2e, 0x41, 0xdb, 0x27, 0xc4, 0x79, 0x87, 0x84, 0xb9, 0xd5, 0x66, 0xf8, 0xa0, 0x12, 0xde, 0x78, 0x0e, 0x66, 0x3d, 0x4a, 0xf7, 0xbb, 0x5c, 0x54, 0xe6, 0xa7, 0xce, 0x2c, 0x1f, 0x59, 0xc0, 0x1a, 0x2f, 0xc2, 0xbc, 0x1d, 0x04, 0xde, 0x11, - 0xa2, 0xae, 0x85, 0x2e, 0xf1, 0x9d, 0xce, 0x1c, 0x1f, 0x5a, 0xfe, 0x60, 0x7c, 0x11, 0x16, 0x64, + 0xa2, 0xae, 0x85, 0x2e, 0xf1, 0x9d, 0xce, 0x1c, 0x1f, 0x5a, 0xfe, 0x60, 0x7c, 0x09, 0x16, 0x64, 0xff, 0xdc, 0x09, 0x9c, 0xd4, 0x76, 0x6d, 0x6e, 0x9a, 0x11, 0x5f, 0x8d, 0x15, 0x30, 0x94, 0x2f, 0x68, 0x82, 0x79, 0x6e, 0x82, 0x8a, 0x2f, 0xe6, 0x0f, 0x6a, 0x30, 0x97, 0x45, 0xd8, 0x35, 0x1a, 0xf6, 0x48, 0xfc, 0x18, 0xc7, 0x19, 0xc6, 0x40, 0x23, 0x8b, 0x81, 0xeb, 0x15, 0x7e, 0x62, 0xb1, 0xd5, 0xba, 0xf2, 0xa9, 0x95, 0x01, 0xa5, 0x03, 0x8f, 0x60, 0x22, 0xed, 0x24, 0xbb, 0x2b, 0x37, - 0xfd, 0xf8, 0xe5, 0x2b, 0xef, 0xda, 0x5e, 0x42, 0x2a, 0x9c, 0xb8, 0x5e, 0x72, 0xe2, 0xd4, 0xc9, + 0xfd, 0xf8, 0xa5, 0x2b, 0xef, 0xd8, 0x5e, 0x42, 0x2a, 0x9c, 0xb8, 0x5e, 0x72, 0xe2, 0xd4, 0xc9, 0x6c, 0x8a, 0x1e, 0xbe, 0x59, 0xe5, 0xe1, 0xe6, 0xc9, 0x7c, 0xca, 0x54, 0xe6, 0x47, 0x3a, 0x9c, 0xe3, 0x6e, 0x11, 0xd8, 0xc4, 0xf3, 0x4e, 0x28, 0x01, 0x0b, 0xd0, 0x48, 0xd0, 0xd9, 0xe8, 0x17, 0x01, 0x31, 0x97, 0x85, 0xd4, 0x23, 0xb7, 0xc8, 0x21, 0xf1, 0xb8, 0x47, 0xea, 0x56, 0x8e, 0x30, @@ -5472,7 +5480,7 @@ var fileDescriptor_ws_860ddb8af4f21a5d = []byte{ 0xdf, 0xf7, 0x99, 0xaf, 0xd1, 0x0f, 0x19, 0x2c, 0xbb, 0xa8, 0xa1, 0xba, 0xe8, 0x39, 0x98, 0xb5, 0x83, 0xa0, 0x6b, 0xfb, 0x03, 0x12, 0xe2, 0xa4, 0x93, 0x98, 0x0e, 0x2a, 0x96, 0x15, 0x04, 0x36, 0x53, 0x8f, 0x26, 0x61, 0x9f, 0x70, 0x6b, 0xd7, 0x2d, 0x09, 0xc3, 0xf8, 0xd0, 0x80, 0x84, 0x52, - 0x1e, 0x63, 0xea, 0x17, 0xb0, 0x22, 0x24, 0x20, 0x0b, 0x09, 0x56, 0x48, 0x92, 0x98, 0xbc, 0xe9, + 0x1e, 0x63, 0xea, 0x17, 0xb0, 0x22, 0x24, 0x20, 0x0b, 0x09, 0x56, 0x48, 0x92, 0x98, 0xbc, 0xe1, 0x3b, 0x5c, 0xa9, 0x96, 0x28, 0x24, 0x39, 0x8a, 0x15, 0x08, 0xd7, 0x3f, 0x74, 0xe3, 0xac, 0x5c, 0x4d, 0x63, 0x81, 0x50, 0x90, 0xe6, 0x77, 0x35, 0x98, 0xdd, 0x4e, 0x76, 0x3c, 0xb7, 0xcf, 0x11, 0xcc, 0xf8, 0xb9, 0x89, 0x35, 0xc5, 0xc4, 0xb2, 0xa1, 0xf4, 0xd1, 0x86, 0xaa, 0xa9, 0x86, 0x5a, @@ -5483,14 +5491,14 @@ var fileDescriptor_ws_860ddb8af4f21a5d = []byte{ 0x68, 0x96, 0x96, 0x82, 0x72, 0x04, 0x41, 0x65, 0x04, 0x5d, 0x82, 0xf6, 0xc0, 0xa3, 0x3b, 0xb6, 0x67, 0x91, 0xfe, 0x61, 0x37, 0x1a, 0x6c, 0x05, 0x31, 0x77, 0x77, 0xdd, 0x2a, 0xe1, 0xcd, 0x7f, 0x6b, 0x00, 0x98, 0x5a, 0xdc, 0x8c, 0x85, 0xf5, 0x4a, 0x2b, 0xaf, 0x57, 0x0b, 0xd0, 0x08, 0xc9, - 0xd0, 0x0e, 0xf7, 0xd3, 0x74, 0x42, 0xa8, 0x20, 0x7c, 0xad, 0x24, 0xfc, 0x6b, 0x00, 0xbb, 0x7c, + 0xd0, 0x0e, 0xf7, 0xd3, 0x74, 0x42, 0xa8, 0x20, 0x7c, 0xad, 0x24, 0xfc, 0xab, 0x00, 0xbb, 0x7c, 0x1e, 0xc6, 0x87, 0x9b, 0x95, 0x25, 0x7f, 0xa9, 0x05, 0x58, 0x49, 0x3d, 0x6a, 0x49, 0xc3, 0x59, 0xae, 0xda, 0x8e, 0x23, 0x52, 0xa2, 0x8e, 0xb9, 0x9a, 0x21, 0x2a, 0x32, 0xa2, 0x71, 0x4c, 0x46, 0x4c, 0x66, 0x01, 0xf4, 0x2f, 0x0d, 0x9a, 0x6b, 0x9e, 0xdd, 0xdf, 0x1f, 0x53, 0x75, 0x55, 0x45, 0xbd, 0xa4, 0xe2, 0x75, 0x98, 0xd9, 0x61, 0xec, 0x52, 0x15, 0xb8, 0x15, 0x5a, 0x57, 0x3e, 0x53, 0xa1, 0xa5, 0x9a, 0x40, 0x96, 0x4a, 0xa7, 0xaa, 0x3b, 0x71, 0xb2, 0xba, 0xf5, 0x63, 0xd4, 0xcd, - 0xd6, 0x04, 0xf3, 0x47, 0x35, 0x98, 0xe6, 0xa5, 0xd3, 0x22, 0x07, 0x09, 0x89, 0x62, 0xe3, 0x0d, - 0x98, 0x4a, 0x52, 0x51, 0xb5, 0x71, 0x45, 0xcd, 0x48, 0x8c, 0x57, 0xc5, 0x9a, 0xc7, 0xe9, 0x75, + 0xd6, 0x04, 0xf3, 0x47, 0x35, 0x98, 0xe6, 0xa5, 0xd3, 0x22, 0x07, 0x09, 0x89, 0x62, 0xe3, 0x75, + 0x98, 0x4a, 0x52, 0x51, 0xb5, 0x71, 0x45, 0xcd, 0x48, 0x8c, 0x57, 0xc4, 0x9a, 0xc7, 0xe9, 0x75, 0x4e, 0x7f, 0xa1, 0x82, 0x3e, 0x5b, 0x44, 0xad, 0x7c, 0x38, 0x5b, 0xed, 0xf6, 0x6c, 0xdf, 0xf1, 0x88, 0x45, 0xa2, 0xc4, 0x8b, 0x45, 0xfd, 0x55, 0x70, 0x18, 0x69, 0x07, 0xdd, 0x68, 0x20, 0xd6, 0x42, 0x01, 0x31, 0xeb, 0xe0, 0x38, 0xf6, 0x09, 0x55, 0xcf, 0x11, 0x2c, 0xa9, 0x43, 0x72, 0xc0, @@ -5519,29 +5527,29 @@ var fileDescriptor_ws_860ddb8af4f21a5d = []byte{ 0x92, 0xb6, 0xa3, 0x0d, 0x65, 0x3b, 0x5a, 0x5c, 0x8d, 0x7f, 0xa7, 0xc1, 0x79, 0xe6, 0xe5, 0x92, 0x1a, 0x5b, 0xd0, 0xa6, 0x85, 0x48, 0x10, 0xcb, 0xd5, 0xb3, 0x15, 0xcb, 0x4d, 0x31, 0x68, 0xac, 0x12, 0x31, 0x63, 0xe8, 0x14, 0x26, 0x11, 0xeb, 0x57, 0x15, 0xc3, 0xa2, 0x3c, 0x56, 0x89, 0xd8, - 0xfc, 0xbd, 0x06, 0x6d, 0x5c, 0x20, 0xa5, 0x3c, 0x3f, 0x73, 0xb1, 0xdf, 0x83, 0xf3, 0xc5, 0x99, + 0xfc, 0xbd, 0x06, 0x6d, 0x5c, 0x20, 0xa5, 0x3c, 0x3f, 0x73, 0xb1, 0xdf, 0x85, 0xf3, 0xc5, 0x99, 0x6f, 0xb9, 0x51, 0xdc, 0xd1, 0x97, 0x6a, 0xe3, 0x8a, 0x5e, 0xc9, 0x80, 0xe5, 0xda, 0xd3, 0xdb, 0x89, 0xe7, 0x75, 0x49, 0x14, 0xd9, 0x03, 0xb2, 0x76, 0xd4, 0x23, 0x07, 0xec, 0x83, 0x45, 0x0e, 0x46, 0xc6, 0x10, 0xeb, 0x96, 0x78, 0xbb, 0xe1, 0x52, 0x3f, 0x0b, 0x21, 0x19, 0xc5, 0xd2, 0x2a, - 0x42, 0x3e, 0x9d, 0xda, 0x52, 0x8d, 0x2d, 0xc4, 0x02, 0x34, 0xbe, 0x01, 0xd3, 0xbc, 0x13, 0x10, - 0xd3, 0x74, 0x26, 0xb8, 0x02, 0xaf, 0x57, 0xf6, 0x1e, 0x95, 0x52, 0x61, 0x4f, 0x21, 0xe0, 0x37, - 0xfd, 0x38, 0x3c, 0xb2, 0x14, 0x8e, 0x8b, 0xef, 0xc3, 0x7c, 0x69, 0x88, 0xd1, 0x86, 0xda, 0x3e, - 0x39, 0x12, 0x7a, 0xb0, 0x9f, 0xc6, 0x4b, 0x50, 0x3f, 0x64, 0x1b, 0x4d, 0xe1, 0xfd, 0xc5, 0x0a, - 0x09, 0x84, 0xcc, 0x16, 0x0e, 0x7c, 0x55, 0xff, 0x92, 0x66, 0x3e, 0x9b, 0x29, 0x26, 0xeb, 0xa8, - 0x29, 0x3a, 0x9a, 0x6f, 0x43, 0xab, 0x1b, 0x0d, 0x36, 0xec, 0xd8, 0xe6, 0x03, 0x5f, 0x87, 0xd6, + 0x42, 0x3e, 0x9d, 0xda, 0x52, 0x8d, 0x2d, 0xc4, 0x02, 0x34, 0xde, 0x87, 0x69, 0xde, 0x09, 0x88, + 0x69, 0x3a, 0x13, 0x5c, 0x81, 0xd7, 0x2a, 0x7b, 0x8f, 0x4a, 0xa9, 0xb0, 0xa7, 0x10, 0xf0, 0x1b, + 0x7e, 0x1c, 0x1e, 0x59, 0x0a, 0xc7, 0xc5, 0xf7, 0x60, 0xbe, 0x34, 0xc4, 0x68, 0x43, 0x6d, 0x9f, + 0x1c, 0x09, 0x3d, 0xd8, 0x4f, 0xe3, 0x0b, 0x50, 0x3f, 0x64, 0x1b, 0x4d, 0xe1, 0xfd, 0xc5, 0x0a, + 0x09, 0x84, 0xcc, 0x16, 0x0e, 0x7c, 0x45, 0xff, 0xb2, 0x66, 0x3e, 0x9b, 0x29, 0x26, 0xeb, 0xa8, + 0x29, 0x3a, 0x9a, 0x6f, 0x41, 0xab, 0x1b, 0x0d, 0x36, 0xec, 0xd8, 0xe6, 0x03, 0x5f, 0x83, 0xd6, 0x30, 0x07, 0xf9, 0xe0, 0xea, 0xf9, 0x04, 0x91, 0x25, 0x0f, 0x37, 0xff, 0xaa, 0x43, 0xa7, 0xda, 0x14, 0x51, 0xc0, 0x64, 0x20, 0x61, 0xb8, 0x4e, 0x1d, 0xc2, 0x55, 0xab, 0x5b, 0x29, 0xc8, 0x7c, 0x47, 0xc2, 0x90, 0xad, 0x61, 0xa2, 0x55, 0x47, 0xc8, 0x58, 0x81, 0x09, 0x2f, 0x75, 0xcb, 0xf1, 0x52, 0xf0, 0x71, 0xc6, 0x10, 0xda, 0xdc, 0xba, 0x92, 0x42, 0xc2, 0x67, 0xab, 0x63, 0xfb, 0x2c, 0x0a, 0xd0, 0x69, 0x12, 0x0f, 0x74, 0x5c, 0x89, 0xf5, 0x62, 0x1f, 0x9e, 0xaa, 0x1c, 0x5a, 0xe1, - 0xc0, 0x2f, 0xa8, 0x0e, 0xbc, 0x38, 0x5a, 0x95, 0xa2, 0x13, 0x03, 0x30, 0xae, 0x93, 0xb8, 0x6b, + 0xc0, 0x2f, 0xaa, 0x0e, 0xbc, 0x38, 0x5a, 0x95, 0xa2, 0x13, 0x03, 0x30, 0xae, 0x93, 0xb8, 0x6b, 0x3f, 0x58, 0xf5, 0x9d, 0xae, 0xeb, 0xf7, 0xc8, 0x01, 0x8b, 0xf6, 0x25, 0x68, 0x89, 0x63, 0x83, 0xcc, 0x4d, 0x4d, 0x4b, 0x46, 0x8d, 0x3c, 0x4d, 0x28, 0xe4, 0x43, 0xad, 0x94, 0x0f, 0xe6, 0x55, 0x98, 0x96, 0xa7, 0xe3, 0x8b, 0x88, 0xfd, 0xa0, 0x47, 0x0e, 0xb8, 0x42, 0x33, 0x96, 0x80, 0x38, 0x9e, 0x8f, 0x10, 0x3b, 0x0c, 0x01, 0x99, 0x7f, 0xd1, 0xe1, 0x5c, 0x49, 0xe4, 0x28, 0x78, 0x58, 0x3e, 0x72, 0xbc, 0xd4, 0x46, 0xc5, 0xcb, 0x84, 0x12, 0x2f, 0xfb, 0x30, 0x8f, 0x4e, 0x92, 0xa6, - 0xee, 0xd4, 0x79, 0x00, 0xbc, 0x51, 0xd5, 0xf0, 0x97, 0x85, 0x14, 0xbe, 0x97, 0xb0, 0xe8, 0xfc, - 0x32, 0xdf, 0x45, 0x02, 0x0b, 0xd5, 0x83, 0x2b, 0xdc, 0xff, 0x8a, 0xea, 0xfe, 0x4f, 0x57, 0xb9, + 0xee, 0xd4, 0x79, 0x00, 0xbc, 0x5e, 0xd5, 0xf0, 0x97, 0x85, 0x14, 0xbe, 0x97, 0xb0, 0xe8, 0xfc, + 0x32, 0xdf, 0x45, 0x02, 0x0b, 0xd5, 0x83, 0x2b, 0xdc, 0xff, 0xb2, 0xea, 0xfe, 0x4f, 0x57, 0xb9, 0x5f, 0x96, 0x44, 0xf2, 0xff, 0x01, 0xcc, 0xb1, 0xa2, 0xda, 0x23, 0xbe, 0xd3, 0x8d, 0x06, 0xdc, 0x90, 0x4b, 0xd0, 0x42, 0xfa, 0x6e, 0x34, 0xc8, 0x37, 0x80, 0x12, 0x8a, 0x8d, 0xe8, 0x7b, 0x2e, 0x2b, 0x9e, 0x7c, 0x84, 0x28, 0x7a, 0x12, 0x8a, 0x2d, 0x90, 0x11, 0x11, 0x27, 0x2c, 0xcc, 0xba, @@ -5560,7 +5568,7 @@ var fileDescriptor_ws_860ddb8af4f21a5d = []byte{ 0xd5, 0x44, 0xa8, 0x23, 0xad, 0x22, 0x29, 0xeb, 0xfc, 0xec, 0x18, 0x37, 0x39, 0xbc, 0xc0, 0x9d, 0xe7, 0x05, 0x4e, 0xc1, 0xf1, 0x73, 0x42, 0xa9, 0xd0, 0x3f, 0xc5, 0x0d, 0x27, 0xa3, 0x90, 0x4b, 0x6c, 0xf7, 0xf7, 0x08, 0x3f, 0x34, 0xea, 0x2c, 0x60, 0xff, 0x28, 0xe3, 0x44, 0x77, 0xf7, 0x74, - 0xda, 0xdd, 0x2d, 0xbe, 0x0a, 0xd3, 0xb2, 0x82, 0x15, 0xc9, 0x7c, 0x5e, 0x4e, 0xe6, 0x29, 0x39, + 0xda, 0xdd, 0x2d, 0xbe, 0x02, 0xd3, 0xb2, 0x82, 0x15, 0xc9, 0x7c, 0x5e, 0x4e, 0xe6, 0x29, 0x39, 0x57, 0x7f, 0xa8, 0xc1, 0x5c, 0x41, 0x35, 0x36, 0x3a, 0x76, 0x63, 0x8f, 0x08, 0x0e, 0x08, 0xb0, 0xdd, 0x91, 0x43, 0xa2, 0xbe, 0x48, 0x1e, 0xfe, 0x5b, 0x48, 0x52, 0xcb, 0xb6, 0xec, 0x26, 0x4c, 0xbb, 0x5b, 0x3d, 0xc6, 0xa8, 0x47, 0x13, 0xdf, 0xc9, 0x0e, 0xda, 0x25, 0x1c, 0xdf, 0xb6, 0x6f, @@ -5574,19 +5582,19 @@ var fileDescriptor_ws_860ddb8af4f21a5d = []byte{ 0x9b, 0xad, 0x8b, 0xd9, 0xf9, 0x7a, 0xcd, 0x52, 0x91, 0xc6, 0x26, 0xcc, 0x72, 0xb1, 0xb7, 0xd2, 0x03, 0x38, 0xee, 0x83, 0xf1, 0x67, 0x2c, 0x50, 0x9b, 0x3f, 0xd5, 0x84, 0x19, 0xd9, 0xd7, 0x1e, 0x41, 0xdb, 0xe7, 0x26, 0xd1, 0x4e, 0x65, 0x92, 0x45, 0x98, 0x1a, 0x26, 0xd2, 0x79, 0x60, 0xcd, - 0xca, 0xe0, 0xdc, 0x45, 0xb5, 0xb1, 0x5d, 0x64, 0xfe, 0x4c, 0x83, 0xce, 0x5b, 0xd4, 0xf5, 0xf9, - 0x87, 0xd5, 0x20, 0xf0, 0xc4, 0x35, 0xcc, 0xa9, 0x7d, 0xfe, 0x15, 0x68, 0xda, 0xc8, 0xc6, 0x8f, + 0xca, 0xe0, 0xdc, 0x45, 0xb5, 0xb1, 0x5d, 0x64, 0xfe, 0x4c, 0x83, 0xce, 0x9b, 0xd4, 0xf5, 0xf9, + 0x87, 0xd5, 0x20, 0xf0, 0xc4, 0x35, 0xcc, 0xa9, 0x7d, 0xfe, 0x55, 0x68, 0xda, 0xc8, 0xc6, 0x8f, 0x85, 0xdb, 0xc7, 0x38, 0xe3, 0xcb, 0x69, 0xa4, 0x83, 0x96, 0x9a, 0x7c, 0xd0, 0x62, 0x7e, 0xa8, - 0xc1, 0x2c, 0x1a, 0xe5, 0x9d, 0xc4, 0x8d, 0x4f, 0x2d, 0xdf, 0x1a, 0x4c, 0x1d, 0x24, 0x6e, 0x7c, + 0xc1, 0x2c, 0x1a, 0xe5, 0xed, 0xc4, 0x8d, 0x4f, 0x2d, 0xdf, 0x1a, 0x4c, 0x1d, 0x24, 0x6e, 0x7c, 0x8a, 0xa8, 0xcc, 0xe8, 0xca, 0xf1, 0x54, 0xab, 0x88, 0x27, 0xf3, 0x97, 0x1a, 0x5c, 0x28, 0x9a, 0x75, 0xb5, 0xdf, 0x27, 0xc1, 0xa3, 0x4c, 0x29, 0xe5, 0xa0, 0x69, 0xa2, 0x70, 0xd0, 0x54, 0x29, 0xb2, 0x45, 0xee, 0x91, 0xfe, 0xe3, 0x2b, 0xf2, 0x77, 0x74, 0xf8, 0xff, 0xeb, 0x59, 0xe2, 0xdd, 0x0e, 0x6d, 0x3f, 0xda, 0x25, 0x61, 0xf8, 0x08, 0xe5, 0xbd, 0x05, 0x33, 0x3e, 0xb9, 0x9f, 0xcb, 0x24, 0xd2, 0x71, 0x5c, 0x36, 0x2a, 0xf1, 0x78, 0xb5, 0xcb, 0xfc, 0x8f, 0x06, 0x6d, 0xe4, 0xf3, - 0xb6, 0xdb, 0xdf, 0x7f, 0x84, 0xca, 0x6f, 0xc2, 0xec, 0x3e, 0x97, 0x80, 0x41, 0xa7, 0x28, 0xdb, + 0x96, 0xdb, 0xdf, 0x7f, 0x84, 0xca, 0x6f, 0xc2, 0xec, 0x3e, 0x97, 0x80, 0x41, 0xa7, 0x28, 0xdb, 0x05, 0xea, 0x31, 0xd5, 0xff, 0x48, 0x83, 0xf9, 0xf4, 0xf6, 0xf7, 0xd0, 0x7d, 0x94, 0xc1, 0xba, 0x0d, 0x73, 0x78, 0xd2, 0x7e, 0x5a, 0x03, 0x14, 0xc9, 0xc7, 0xb4, 0xc0, 0x6f, 0x34, 0x98, 0x43, - 0x4e, 0x6f, 0xfa, 0x31, 0x09, 0x4f, 0xad, 0xff, 0x0d, 0x68, 0x11, 0x3f, 0x0e, 0x6d, 0xff, 0x34, + 0x4e, 0x6f, 0xf8, 0x31, 0x09, 0x4f, 0xad, 0xff, 0x0d, 0x68, 0x11, 0x3f, 0x0e, 0x6d, 0xff, 0x34, 0x15, 0x52, 0x26, 0x1d, 0xb3, 0x48, 0x7e, 0xa8, 0x81, 0xc1, 0x59, 0x6d, 0xb8, 0xd1, 0xd0, 0x8d, 0xa2, 0x47, 0xe8, 0xba, 0xf1, 0x04, 0xfe, 0xb1, 0x0e, 0xe7, 0x25, 0x2e, 0xdd, 0x24, 0x7e, 0xdc, 0x45, 0x36, 0x36, 0xa0, 0xc9, 0x7a, 0x04, 0xf9, 0x1e, 0x74, 0xdc, 0x89, 0x72, 0x42, 0xd6, 0xc5, @@ -5594,63 +5602,64 @@ var fileDescriptor_ws_860ddb8af4f21a5d = []byte{ 0x89, 0xcd, 0xba, 0xed, 0xf7, 0x89, 0xf7, 0xc4, 0x98, 0xc8, 0xfc, 0x85, 0x06, 0xb3, 0x38, 0xe4, 0xf1, 0x57, 0x99, 0xad, 0xf5, 0x18, 0xc8, 0x9f, 0x18, 0x2f, 0xb1, 0xf0, 0x5a, 0x90, 0xb8, 0xc8, 0x7d, 0xf5, 0xe3, 0x1b, 0x5a, 0x37, 0xa0, 0xd5, 0xdf, 0xb3, 0xfd, 0xc1, 0xa9, 0x82, 0x4b, 0x26, - 0x35, 0x63, 0x78, 0x5a, 0x3e, 0xb4, 0x5f, 0xc7, 0x4f, 0x5c, 0xfd, 0x97, 0x0b, 0xaa, 0x1c, 0xfb, + 0x35, 0x63, 0x78, 0x5a, 0x3e, 0xb4, 0x5f, 0xc7, 0x4f, 0x5c, 0xfd, 0x97, 0x0a, 0xaa, 0x1c, 0xfb, 0xce, 0xe1, 0xe1, 0x8c, 0xbe, 0x0f, 0xf3, 0x78, 0x53, 0x2c, 0xf5, 0x84, 0x46, 0x07, 0x26, 0x6d, 0x07, 0x8f, 0x2e, 0x34, 0x4e, 0x94, 0x82, 0xea, 0x4b, 0x02, 0xf1, 0x2e, 0x2d, 0x7f, 0x49, 0x70, - 0x11, 0xc0, 0x76, 0x9c, 0xf7, 0x68, 0xe8, 0xb8, 0x7e, 0xda, 0xe0, 0x4b, 0x18, 0xf3, 0x2d, 0x98, + 0x11, 0xc0, 0x76, 0x9c, 0x77, 0x69, 0xe8, 0xb8, 0x7e, 0xda, 0xe0, 0x4b, 0x18, 0xf3, 0x4d, 0x98, 0xbe, 0x16, 0xd2, 0xe1, 0x6d, 0xe9, 0xce, 0xf7, 0xd8, 0x5b, 0x69, 0xf9, 0xbe, 0x58, 0x57, 0xef, - 0x8b, 0xcd, 0xaf, 0xc3, 0x53, 0x25, 0xc1, 0xb9, 0xb1, 0xd6, 0xf1, 0x2a, 0x3b, 0x9d, 0x44, 0x84, + 0x8b, 0xcd, 0x6f, 0xc0, 0x53, 0x25, 0xc1, 0xb9, 0xb1, 0xd6, 0xf1, 0x2a, 0x3b, 0x9d, 0x44, 0x84, 0x4c, 0xd5, 0x59, 0x9e, 0x2c, 0x8b, 0xa5, 0x10, 0x99, 0xdf, 0xd6, 0xe0, 0x99, 0x12, 0xfb, 0xd5, 0x20, 0x08, 0xe9, 0xa1, 0xf0, 0xc9, 0x59, 0x4c, 0xa3, 0x36, 0xbf, 0x7a, 0xb1, 0xf9, 0xad, 0x14, - 0x42, 0x69, 0xd8, 0x3f, 0x06, 0x21, 0x7e, 0xae, 0xc1, 0x9c, 0x10, 0xc2, 0x71, 0xc4, 0xb4, 0xaf, - 0x40, 0x03, 0x1f, 0xd3, 0x88, 0x09, 0x9f, 0xa9, 0x9c, 0x30, 0x7d, 0x04, 0x64, 0x89, 0xc1, 0xe5, - 0x88, 0xd4, 0xab, 0x32, 0xea, 0xcb, 0x59, 0xb0, 0x8f, 0xfd, 0xdc, 0x45, 0x10, 0x98, 0x5f, 0x4d, + 0x42, 0x69, 0xd8, 0x3f, 0x06, 0x21, 0x7e, 0xae, 0xc1, 0x9c, 0x10, 0xc2, 0x71, 0xc4, 0xb4, 0x2f, + 0x43, 0x03, 0x1f, 0xd3, 0x88, 0x09, 0x9f, 0xa9, 0x9c, 0x30, 0x7d, 0x04, 0x64, 0x89, 0xc1, 0xe5, + 0x88, 0xd4, 0xab, 0x32, 0xea, 0x2b, 0x59, 0xb0, 0x8f, 0xfd, 0xdc, 0x45, 0x10, 0x98, 0x5f, 0x4b, 0x83, 0x79, 0x83, 0x78, 0xe4, 0x2c, 0x6d, 0x64, 0xde, 0x81, 0x59, 0xfe, 0xb2, 0x27, 0xb7, 0xc1, - 0x99, 0xb0, 0x7d, 0x0f, 0xda, 0x9c, 0xed, 0x99, 0xcb, 0x9b, 0x65, 0x07, 0xb3, 0x8f, 0x5c, 0x4a, + 0x99, 0xb0, 0x7d, 0x17, 0xda, 0x9c, 0xed, 0x99, 0xcb, 0x9b, 0x65, 0x07, 0xb3, 0x8f, 0x5c, 0x4a, 0xce, 0x84, 0xfb, 0xe7, 0xe1, 0x5c, 0x6a, 0x7b, 0x7c, 0x11, 0x8b, 0xbc, 0x47, 0xdc, 0xed, 0x99, - 0x2f, 0xc1, 0xc2, 0x3a, 0xf5, 0x0f, 0x49, 0x18, 0x29, 0x8f, 0x68, 0x91, 0x42, 0x49, 0x7e, 0x01, - 0x99, 0xf7, 0x60, 0x51, 0xa6, 0xe8, 0x91, 0x78, 0x3b, 0x74, 0x0f, 0x25, 0x2a, 0x71, 0xa8, 0xad, - 0x29, 0x87, 0xda, 0xf9, 0x21, 0xb8, 0xae, 0x1c, 0x82, 0x5f, 0x80, 0xa6, 0x1b, 0x09, 0x06, 0x3c, - 0xa8, 0xa6, 0xac, 0x1c, 0x61, 0xda, 0x30, 0x8f, 0xe6, 0x17, 0x97, 0x4c, 0x7c, 0x8a, 0x45, 0x98, - 0xc2, 0x98, 0xca, 0x26, 0xc9, 0xe0, 0x91, 0x57, 0x36, 0x23, 0x2f, 0x28, 0xcd, 0x1e, 0xcc, 0x8b, - 0x87, 0x38, 0xdb, 0xf6, 0xc0, 0xf5, 0xb1, 0xc8, 0x5e, 0x04, 0x08, 0xec, 0x41, 0xfa, 0xf4, 0x0f, - 0xaf, 0xda, 0x24, 0x0c, 0xfb, 0x1e, 0xed, 0xd1, 0xfb, 0xe2, 0xbb, 0x8e, 0xdf, 0x73, 0x8c, 0xf9, - 0x2e, 0x18, 0x16, 0x89, 0x02, 0xea, 0x47, 0x44, 0xe2, 0xba, 0x04, 0xad, 0xf5, 0x24, 0x0c, 0x89, - 0xcf, 0xa6, 0x4a, 0xdf, 0xb6, 0xc9, 0x28, 0xc6, 0xb7, 0x97, 0xf3, 0xc5, 0x63, 0x79, 0x09, 0x63, - 0xfe, 0xa4, 0x06, 0xcd, 0x9e, 0x3b, 0xf0, 0x6d, 0xcf, 0x22, 0x07, 0xc6, 0xeb, 0xd0, 0xc0, 0x2d, - 0x8b, 0x88, 0x94, 0xaa, 0x63, 0x62, 0x1c, 0x8d, 0x7b, 0x33, 0x8b, 0x1c, 0xdc, 0xf8, 0x3f, 0x4b, - 0xd0, 0x18, 0xef, 0xa4, 0xcf, 0x95, 0x6e, 0xe2, 0x11, 0x94, 0x58, 0xbf, 0x3e, 0x7b, 0x02, 0x13, - 0x31, 0x1a, 0x79, 0xa9, 0x1c, 0x98, 0x40, 0x7d, 0xde, 0xd2, 0x88, 0xf2, 0x30, 0x5a, 0x20, 0xec, - 0x7c, 0x84, 0x40, 0x48, 0xc3, 0xa8, 0x6d, 0x7e, 0x48, 0x23, 0x56, 0xea, 0xd1, 0xd4, 0x78, 0x96, - 0x23, 0xa8, 0x91, 0x86, 0x51, 0xef, 0x25, 0xfe, 0xe0, 0x4e, 0x20, 0xce, 0x0e, 0x47, 0x53, 0xdf, - 0xe0, 0xc3, 0x04, 0x35, 0xd2, 0x30, 0xea, 0x90, 0x17, 0x6f, 0x6e, 0xf4, 0xe3, 0xa8, 0xb1, 0xc6, - 0x0b, 0x6a, 0xa4, 0x59, 0x6b, 0xc2, 0x64, 0x60, 0x1f, 0x79, 0xd4, 0x76, 0xcc, 0x0f, 0x6a, 0x00, - 0xe9, 0xc0, 0x88, 0x37, 0x3a, 0x8a, 0x8b, 0x96, 0x4f, 0x74, 0x51, 0xe0, 0x1d, 0x49, 0x4e, 0xea, - 0x55, 0x3b, 0xe9, 0x73, 0xe3, 0x3a, 0x09, 0xb9, 0x15, 0xdc, 0x74, 0xb5, 0xe0, 0xa6, 0xe5, 0x13, - 0xdd, 0x24, 0x84, 0x12, 0x8e, 0xba, 0x5a, 0x70, 0xd4, 0xf2, 0x89, 0x8e, 0x12, 0xf4, 0xc2, 0x55, - 0x57, 0x0b, 0xae, 0x5a, 0x3e, 0xd1, 0x55, 0x82, 0x5e, 0x38, 0xeb, 0x6a, 0xc1, 0x59, 0xcb, 0x27, - 0x3a, 0x4b, 0xd0, 0x97, 0xdd, 0xf5, 0x37, 0x1d, 0x66, 0xb9, 0xc9, 0xf0, 0xe6, 0xd6, 0xdf, 0xa5, - 0xe5, 0x67, 0x7c, 0x5a, 0xc5, 0x33, 0x3e, 0xe3, 0x45, 0x98, 0x47, 0x04, 0x91, 0xae, 0x58, 0x74, - 0x7e, 0xc5, 0x52, 0xfe, 0xc0, 0x2f, 0x95, 0x92, 0x28, 0xa6, 0xc3, 0x0d, 0x3b, 0xb6, 0xd3, 0xe6, - 0x2b, 0xc7, 0xc8, 0x57, 0x7e, 0x13, 0xa5, 0x17, 0xed, 0x21, 0xa5, 0xc3, 0xec, 0x2e, 0x4f, 0x40, - 0x8c, 0x22, 0x76, 0x87, 0x84, 0x26, 0xb1, 0x28, 0x13, 0x29, 0x88, 0x6f, 0xaf, 0x1c, 0xd7, 0xe6, - 0x17, 0x65, 0xe2, 0x61, 0x52, 0x86, 0xe0, 0x95, 0x2d, 0xbf, 0xf8, 0x13, 0x2f, 0xce, 0x73, 0xcc, - 0x18, 0x97, 0x74, 0xfc, 0xcf, 0x0b, 0x6e, 0xec, 0xca, 0x0f, 0x96, 0xea, 0x96, 0x82, 0x33, 0xff, - 0xa9, 0xc1, 0xb9, 0x6d, 0x3b, 0x8c, 0xdd, 0xbe, 0x1b, 0xd8, 0x7e, 0xdc, 0x25, 0xb1, 0xcd, 0xf5, - 0x54, 0x9e, 0x91, 0x6a, 0x0f, 0xf7, 0x8c, 0x74, 0x1b, 0xe6, 0x06, 0xea, 0x0e, 0xe4, 0x21, 0x37, - 0x0f, 0x45, 0x72, 0xe5, 0x4d, 0x6c, 0xed, 0xa1, 0xdf, 0xc4, 0x9a, 0xdf, 0xd3, 0x61, 0xae, 0x50, - 0x5e, 0x8f, 0x5d, 0x9b, 0x56, 0x01, 0xdc, 0x2c, 0xd4, 0x8e, 0x39, 0xa0, 0x57, 0xe3, 0xd1, 0x92, - 0x88, 0xaa, 0x6e, 0x08, 0x6b, 0xa7, 0xbf, 0x21, 0xbc, 0x01, 0xad, 0x20, 0x77, 0xd2, 0x31, 0xfb, - 0xa3, 0x0a, 0x57, 0x5a, 0x32, 0xa9, 0xf9, 0x3e, 0xcc, 0x97, 0xaa, 0x18, 0xbf, 0xb6, 0xa3, 0xfb, - 0xc4, 0xcf, 0xae, 0xed, 0x18, 0x20, 0x05, 0xb4, 0x5e, 0x0c, 0x68, 0xcf, 0x3d, 0x94, 0x1f, 0xe8, - 0x0b, 0xd0, 0xfc, 0xbe, 0x0e, 0x0b, 0xd5, 0x2b, 0xd0, 0x93, 0x6a, 0xee, 0x1d, 0xe8, 0x8c, 0xaa, - 0xf6, 0x67, 0x66, 0xf5, 0x3c, 0xba, 0xb3, 0xb5, 0xfa, 0x49, 0x35, 0xf7, 0xb9, 0x34, 0xba, 0xa5, - 0xe5, 0xd0, 0xfc, 0x75, 0x66, 0x9f, 0xac, 0x1b, 0x79, 0x42, 0xed, 0x63, 0x5c, 0x82, 0x36, 0xaa, - 0x29, 0x3d, 0x29, 0xc1, 0xe6, 0xb6, 0x84, 0xcf, 0x2b, 0x85, 0xd4, 0x1a, 0x9c, 0x59, 0xcc, 0xfe, - 0x41, 0x4b, 0x7d, 0x92, 0xf5, 0x78, 0x9f, 0x28, 0x9f, 0xe4, 0x91, 0x26, 0x35, 0x3e, 0x52, 0xa4, - 0x65, 0xbd, 0xe7, 0xff, 0x22, 0xed, 0xe4, 0x48, 0xcb, 0x6c, 0x29, 0x35, 0x81, 0xe6, 0xb7, 0x60, - 0x66, 0x83, 0x78, 0xdd, 0x68, 0x90, 0xbe, 0x79, 0x3d, 0xd3, 0xcd, 0x64, 0xf1, 0x65, 0xe0, 0x44, - 0xf9, 0x65, 0xe0, 0x1a, 0xcc, 0xca, 0x02, 0x9c, 0xe6, 0x4d, 0xe7, 0xda, 0x85, 0xaf, 0x2d, 0xae, - 0x88, 0xff, 0x4a, 0xbf, 0x56, 0x32, 0xe2, 0x4e, 0x83, 0xff, 0xbb, 0xf2, 0xe5, 0xff, 0x06, 0x00, - 0x00, 0xff, 0xff, 0x8e, 0xa2, 0xa5, 0x98, 0x84, 0x3d, 0x00, 0x00, + 0xef, 0xc3, 0xc2, 0x3a, 0xf5, 0x0f, 0x49, 0x18, 0x29, 0x8f, 0x68, 0x91, 0x42, 0x49, 0x7e, 0x01, + 0x19, 0x2b, 0x60, 0xf4, 0x25, 0x0a, 0x71, 0xba, 0xa8, 0xf3, 0xd3, 0xc5, 0x8a, 0x2f, 0xe6, 0x3d, + 0x58, 0x94, 0x67, 0xe8, 0x91, 0x78, 0x3b, 0x74, 0x0f, 0xa5, 0x59, 0xc4, 0x21, 0xb8, 0xa6, 0x1c, + 0x82, 0xe7, 0x87, 0xe6, 0xba, 0x72, 0x68, 0x7e, 0x01, 0x9a, 0x6e, 0x24, 0x18, 0xf0, 0x20, 0x9c, + 0xb2, 0x72, 0x84, 0x69, 0xc3, 0x3c, 0xba, 0x4b, 0x5c, 0x4a, 0xf1, 0x29, 0x16, 0x61, 0x0a, 0x63, + 0x30, 0x9b, 0x24, 0x83, 0x47, 0x5e, 0xf1, 0x8c, 0xbc, 0xd0, 0x34, 0x7b, 0x30, 0x2f, 0x1e, 0xee, + 0x6c, 0xdb, 0x03, 0xd7, 0xc7, 0xa2, 0x7c, 0x11, 0x20, 0xb0, 0x07, 0xe9, 0x53, 0x41, 0xbc, 0x9a, + 0x93, 0x30, 0xec, 0x7b, 0xb4, 0x47, 0xef, 0x8b, 0xef, 0x3a, 0x7e, 0xcf, 0x31, 0xe6, 0x3b, 0x60, + 0x58, 0x24, 0x0a, 0xa8, 0x1f, 0x11, 0x89, 0xeb, 0x12, 0xb4, 0xd6, 0x93, 0x30, 0x24, 0x3e, 0x9b, + 0x2a, 0x7d, 0x0b, 0x27, 0xa3, 0x18, 0xdf, 0x5e, 0xce, 0x17, 0x8f, 0xf1, 0x25, 0x8c, 0xf9, 0x93, + 0x1a, 0x34, 0x7b, 0xee, 0xc0, 0xb7, 0x3d, 0x8b, 0x1c, 0x18, 0xaf, 0x41, 0x03, 0xb7, 0x38, 0x22, + 0xb2, 0xaa, 0x8e, 0x95, 0x71, 0x34, 0xee, 0xe5, 0x2c, 0x72, 0x70, 0xe3, 0xff, 0x2c, 0x41, 0x63, + 0xbc, 0x9d, 0x3e, 0x6f, 0xba, 0x89, 0x47, 0x56, 0x62, 0xbd, 0xfb, 0xec, 0x09, 0x4c, 0xc4, 0x68, + 0xe4, 0xa5, 0x72, 0x60, 0x02, 0xf5, 0x79, 0x0b, 0x24, 0xca, 0xc9, 0x68, 0x81, 0xb0, 0x53, 0x12, + 0x02, 0x21, 0x0d, 0xa3, 0xb6, 0xf9, 0xa1, 0x8e, 0x58, 0xd9, 0x47, 0x53, 0xe3, 0xd9, 0x8f, 0xa0, + 0x46, 0x1a, 0x46, 0xbd, 0x97, 0xf8, 0x83, 0x3b, 0x81, 0x38, 0x6b, 0x1c, 0x4d, 0x7d, 0x83, 0x0f, + 0x13, 0xd4, 0x48, 0xc3, 0xa8, 0x43, 0x5e, 0xec, 0xb9, 0xd1, 0x8f, 0xa3, 0xc6, 0x35, 0x41, 0x50, + 0x23, 0xcd, 0x5a, 0x13, 0x26, 0x03, 0xfb, 0xc8, 0xa3, 0xb6, 0x63, 0x7e, 0x50, 0x03, 0x48, 0x07, + 0x46, 0xbc, 0x31, 0x52, 0x5c, 0xb4, 0x7c, 0xa2, 0x8b, 0x02, 0xef, 0x48, 0x72, 0x52, 0xaf, 0xda, + 0x49, 0x9f, 0x1b, 0xd7, 0x49, 0xc8, 0xad, 0xe0, 0xa6, 0xab, 0x05, 0x37, 0x2d, 0x9f, 0xe8, 0x26, + 0x21, 0x94, 0x70, 0xd4, 0xd5, 0x82, 0xa3, 0x96, 0x4f, 0x74, 0x94, 0xa0, 0x17, 0xae, 0xba, 0x5a, + 0x70, 0xd5, 0xf2, 0x89, 0xae, 0x12, 0xf4, 0xc2, 0x59, 0x57, 0x0b, 0xce, 0x5a, 0x3e, 0xd1, 0x59, + 0x82, 0xbe, 0xec, 0xae, 0xbf, 0xe9, 0x30, 0xcb, 0x4d, 0x86, 0x15, 0xce, 0xdf, 0xa5, 0xe5, 0x67, + 0x7f, 0x5a, 0xc5, 0xb3, 0x3f, 0xe3, 0x45, 0x98, 0x47, 0x04, 0x91, 0xae, 0x64, 0xb0, 0x68, 0x96, + 0x3f, 0xf0, 0x4b, 0xa8, 0x24, 0x8a, 0xe9, 0x70, 0xc3, 0x8e, 0xed, 0xb4, 0x59, 0xcb, 0x31, 0xf2, + 0x15, 0xe1, 0x44, 0xe9, 0x05, 0x7c, 0x48, 0xe9, 0x30, 0xbb, 0xfb, 0x13, 0x10, 0xa3, 0x88, 0xdd, + 0x21, 0xa1, 0x49, 0x2c, 0xca, 0x44, 0x0a, 0xe2, 0x5b, 0x2d, 0xc7, 0xb5, 0xf9, 0xc5, 0x9a, 0x78, + 0xc8, 0x94, 0x21, 0x78, 0x65, 0xcb, 0x2f, 0x0a, 0xc5, 0x0b, 0xf5, 0x1c, 0x33, 0xc6, 0xa5, 0x1e, + 0xff, 0xb3, 0x83, 0x1b, 0xbb, 0xf2, 0x03, 0xa7, 0xba, 0xa5, 0xe0, 0xcc, 0x7f, 0x6a, 0x70, 0x6e, + 0xdb, 0x0e, 0x63, 0xb7, 0xef, 0x06, 0xb6, 0x1f, 0x77, 0x49, 0x6c, 0x73, 0x3d, 0x95, 0x67, 0xa7, + 0xda, 0xc3, 0x3d, 0x3b, 0xdd, 0x86, 0xb9, 0x81, 0xba, 0x63, 0x79, 0xc8, 0xcd, 0x46, 0x91, 0x5c, + 0x79, 0x43, 0x5b, 0x7b, 0xe8, 0x37, 0xb4, 0xe6, 0xf7, 0x74, 0x98, 0x2b, 0x94, 0xd7, 0x63, 0xd7, + 0xa6, 0x55, 0x00, 0x37, 0x0b, 0xb5, 0x63, 0x0e, 0xf4, 0xd5, 0x78, 0xb4, 0x24, 0xa2, 0xaa, 0x1b, + 0xc5, 0xda, 0xe9, 0x6f, 0x14, 0x6f, 0x40, 0x2b, 0xc8, 0x9d, 0x74, 0xcc, 0x7e, 0xaa, 0xc2, 0x95, + 0x96, 0x4c, 0x6a, 0xbe, 0x07, 0xf3, 0xa5, 0x2a, 0xc6, 0xaf, 0xf9, 0xe8, 0x3e, 0xf1, 0xb3, 0x6b, + 0x3e, 0x06, 0x48, 0x01, 0xad, 0x17, 0x03, 0xda, 0x73, 0x0f, 0xe5, 0x07, 0xfd, 0x02, 0x34, 0xbf, + 0xaf, 0xc3, 0x42, 0xf5, 0x0a, 0xf4, 0xa4, 0x9a, 0x7b, 0x07, 0x3a, 0xa3, 0xaa, 0xfd, 0x99, 0x59, + 0x3d, 0x8f, 0xee, 0x6c, 0xad, 0x7e, 0x52, 0xcd, 0x7d, 0x2e, 0x8d, 0x6e, 0x69, 0x39, 0x34, 0x7f, + 0x9d, 0xd9, 0x27, 0xeb, 0x46, 0x9e, 0x50, 0xfb, 0x18, 0x97, 0xa0, 0x8d, 0x6a, 0x4a, 0x4f, 0x50, + 0xb0, 0xb9, 0x2d, 0xe1, 0xf3, 0x4a, 0x21, 0xb5, 0x06, 0x67, 0x16, 0xb3, 0x7f, 0xd0, 0x52, 0x9f, + 0x64, 0x3d, 0xde, 0x27, 0xca, 0x27, 0x79, 0xa4, 0x49, 0x8d, 0x8f, 0x14, 0x69, 0x59, 0xef, 0xf9, + 0xbf, 0x48, 0x3b, 0x39, 0xd2, 0x32, 0x5b, 0x4a, 0x4d, 0xa0, 0xf9, 0x2d, 0x98, 0xd9, 0x20, 0x5e, + 0x37, 0x1a, 0xa4, 0x6f, 0x64, 0xcf, 0x74, 0x33, 0x59, 0x7c, 0x49, 0x38, 0x51, 0x7e, 0x49, 0xb8, + 0x06, 0xb3, 0xb2, 0x00, 0xa7, 0x79, 0x03, 0xba, 0x76, 0xe1, 0xeb, 0x8b, 0x2b, 0xe2, 0xbf, 0xd5, + 0xaf, 0x96, 0x8c, 0xb8, 0xd3, 0xe0, 0xff, 0xc6, 0x7c, 0xe9, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, + 0x36, 0xc8, 0xed, 0x00, 0xb4, 0x3d, 0x00, 0x00, } From 5db5bf17cb9109cbf2b06accfb56e5756c7601fb Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 5 Aug 2022 13:40:20 +0800 Subject: [PATCH 036/230] add GetGroupAbstractInfo api --- internal/api/group/group.go | 44 --- pkg/base_info/group_api_struct.go | 25 +- pkg/proto/group/group.pb.go | 600 +++++++++++++++++++----------- pkg/proto/group/group.proto | 15 +- 4 files changed, 402 insertions(+), 282 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index ac4e43b41..8d95af41a 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -243,50 +243,6 @@ func GetGroupAllMemberList(c *gin.Context) { c.JSON(http.StatusOK, memberListResp) } -//get_group_all_member_list_by_split -func GetGroupAllMemberListBySplit(c *gin.Context) { - params := api.GetGroupAllMemberListBySplitReq{} - if err := c.BindJSON(¶ms); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &rpc.GetGroupAllMemberReq{} - utils.CopyStructFields(req, ¶ms) - - var ok bool - var errInfo string - ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) - if !ok { - errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") - log.NewError(req.OperationID, errMsg) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - - log.NewInfo(req.OperationID, "GetGroupAllMember args ", req.String()) - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) - if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" - log.NewError(req.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := rpc.NewGroupClient(etcdConn) - RpcResp, err := client.GetGroupAllMember(context.Background(), req) - if err != nil { - log.NewError(req.OperationID, "GetGroupAllMember failed err", err.Error(), req.String()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) - return - } - - memberListResp := api.GetGroupAllMemberResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, MemberList: RpcResp.MemberList} - memberListResp.Data = jsonData.JsonDataList(memberListResp.MemberList) - log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp) - c.JSON(http.StatusOK, memberListResp) -} - // @Summary 获取用户加入群列表 // @Description 获取用户加入群列表 // @Tags 群组相关 diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 6ba6b2d52..9afdcc042 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -73,6 +73,8 @@ type GetGroupMemberListResp struct { type GetGroupAllMemberReq struct { GroupID string `json:"groupID" binding:"required"` OperationID string `json:"operationID" binding:"required"` + Offset int32 `json:"offset" binding:"required"` + Count int32 `json:"count" binding:"required"` } type GetGroupAllMemberResp struct { CommResp @@ -80,17 +82,18 @@ type GetGroupAllMemberResp struct { Data []map[string]interface{} `json:"data" swaggerignore:"true"` } -type GetGroupAllMemberListBySplitReq struct { - GroupID string `json:"groupID" binding:"required"` - OperationID string `json:"operationID" binding:"required"` - Offset int32 `json:"offset" binding:"required"` - Count int32 `json:"count" binding:"required"` -} -type GetGroupAllMemberListBySplitResp struct { - CommResp - MemberList []*open_im_sdk.GroupMemberFullInfo `json:"-"` - Data []map[string]interface{} `json:"data" swaggerignore:"true"` -} +// +//type GetGroupAllMemberListBySplitReq struct { +// GroupID string `json:"groupID" binding:"required"` +// OperationID string `json:"operationID" binding:"required"` +// Offset int32 `json:"offset" binding:"required"` +// Count int32 `json:"count" binding:"required"` +//} +//type GetGroupAllMemberListBySplitResp struct { +// CommResp +// MemberList []*open_im_sdk.GroupMemberFullInfo `json:"-"` +// Data []map[string]interface{} `json:"data" swaggerignore:"true"` +//} type CreateGroupReq struct { MemberList []*GroupAddMemberInfo `json:"memberList"` diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index cf441d31d..4d31018c5 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -37,7 +37,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{0} + return fileDescriptor_group_5328f8e912d7cdbf, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{1} + return fileDescriptor_group_5328f8e912d7cdbf, []int{1} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -132,7 +132,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{2} + return fileDescriptor_group_5328f8e912d7cdbf, []int{2} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -200,7 +200,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{3} + return fileDescriptor_group_5328f8e912d7cdbf, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -254,7 +254,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{4} + return fileDescriptor_group_5328f8e912d7cdbf, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -308,7 +308,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{5} + return fileDescriptor_group_5328f8e912d7cdbf, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -362,7 +362,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{6} + return fileDescriptor_group_5328f8e912d7cdbf, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -414,7 +414,7 @@ func (m *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} } func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoResp) ProtoMessage() {} func (*SetGroupInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{7} + return fileDescriptor_group_5328f8e912d7cdbf, []int{7} } func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b) @@ -454,7 +454,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{8} + return fileDescriptor_group_5328f8e912d7cdbf, []int{8} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -508,7 +508,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{9} + return fileDescriptor_group_5328f8e912d7cdbf, []int{9} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -562,7 +562,7 @@ func (m *GetUserReqApplicationListReq) Reset() { *m = GetUserReqApplicat func (m *GetUserReqApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListReq) ProtoMessage() {} func (*GetUserReqApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{10} + return fileDescriptor_group_5328f8e912d7cdbf, []int{10} } func (m *GetUserReqApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListReq.Unmarshal(m, b) @@ -615,7 +615,7 @@ func (m *GetUserReqApplicationListResp) Reset() { *m = GetUserReqApplica func (m *GetUserReqApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListResp) ProtoMessage() {} func (*GetUserReqApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{11} + return fileDescriptor_group_5328f8e912d7cdbf, []int{11} } func (m *GetUserReqApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListResp.Unmarshal(m, b) @@ -664,7 +664,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{12} + return fileDescriptor_group_5328f8e912d7cdbf, []int{12} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -730,7 +730,7 @@ func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerResp) ProtoMessage() {} func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{13} + return fileDescriptor_group_5328f8e912d7cdbf, []int{13} } func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) @@ -773,7 +773,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{14} + return fileDescriptor_group_5328f8e912d7cdbf, []int{14} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -846,7 +846,7 @@ func (m *JoinGroupResp) Reset() { *m = JoinGroupResp{} } func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) } func (*JoinGroupResp) ProtoMessage() {} func (*JoinGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{15} + return fileDescriptor_group_5328f8e912d7cdbf, []int{15} } func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b) @@ -889,7 +889,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{16} + return fileDescriptor_group_5328f8e912d7cdbf, []int{16} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -962,7 +962,7 @@ func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationRe func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseResp) ProtoMessage() {} func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{17} + return fileDescriptor_group_5328f8e912d7cdbf, []int{17} } func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) @@ -1002,7 +1002,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{18} + return fileDescriptor_group_5328f8e912d7cdbf, []int{18} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1054,7 +1054,7 @@ func (m *QuitGroupResp) Reset() { *m = QuitGroupResp{} } func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) } func (*QuitGroupResp) ProtoMessage() {} func (*QuitGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{19} + return fileDescriptor_group_5328f8e912d7cdbf, []int{19} } func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b) @@ -1096,7 +1096,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{20} + return fileDescriptor_group_5328f8e912d7cdbf, []int{20} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1165,7 +1165,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{21} + return fileDescriptor_group_5328f8e912d7cdbf, []int{21} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1227,7 +1227,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{22} + return fileDescriptor_group_5328f8e912d7cdbf, []int{22} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1288,7 +1288,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{23} + return fileDescriptor_group_5328f8e912d7cdbf, []int{23} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1344,7 +1344,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{24} + return fileDescriptor_group_5328f8e912d7cdbf, []int{24} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1411,7 +1411,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{25} + return fileDescriptor_group_5328f8e912d7cdbf, []int{25} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1458,7 +1458,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{26} + return fileDescriptor_group_5328f8e912d7cdbf, []int{26} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1512,7 +1512,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{27} + return fileDescriptor_group_5328f8e912d7cdbf, []int{27} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1566,7 +1566,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{28} + return fileDescriptor_group_5328f8e912d7cdbf, []int{28} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -1622,7 +1622,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{29} + return fileDescriptor_group_5328f8e912d7cdbf, []int{29} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -1690,7 +1690,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{30} + return fileDescriptor_group_5328f8e912d7cdbf, []int{30} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -1746,7 +1746,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{31} + return fileDescriptor_group_5328f8e912d7cdbf, []int{31} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -1814,7 +1814,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{32} + return fileDescriptor_group_5328f8e912d7cdbf, []int{32} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -1868,7 +1868,7 @@ func (m *CMSGroup) Reset() { *m = CMSGroup{} } func (m *CMSGroup) String() string { return proto.CompactTextString(m) } func (*CMSGroup) ProtoMessage() {} func (*CMSGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{33} + return fileDescriptor_group_5328f8e912d7cdbf, []int{33} } func (m *CMSGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CMSGroup.Unmarshal(m, b) @@ -1922,7 +1922,7 @@ func (m *GetGroupReq) Reset() { *m = GetGroupReq{} } func (m *GetGroupReq) String() string { return proto.CompactTextString(m) } func (*GetGroupReq) ProtoMessage() {} func (*GetGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{34} + return fileDescriptor_group_5328f8e912d7cdbf, []int{34} } func (m *GetGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupReq.Unmarshal(m, b) @@ -1976,7 +1976,7 @@ func (m *GetGroupResp) Reset() { *m = GetGroupResp{} } func (m *GetGroupResp) String() string { return proto.CompactTextString(m) } func (*GetGroupResp) ProtoMessage() {} func (*GetGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{35} + return fileDescriptor_group_5328f8e912d7cdbf, []int{35} } func (m *GetGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupResp.Unmarshal(m, b) @@ -2029,7 +2029,7 @@ func (m *GetGroupsReq) Reset() { *m = GetGroupsReq{} } func (m *GetGroupsReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsReq) ProtoMessage() {} func (*GetGroupsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{36} + return fileDescriptor_group_5328f8e912d7cdbf, []int{36} } func (m *GetGroupsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsReq.Unmarshal(m, b) @@ -2076,7 +2076,7 @@ func (m *GetGroupsResp) Reset() { *m = GetGroupsResp{} } func (m *GetGroupsResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsResp) ProtoMessage() {} func (*GetGroupsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{37} + return fileDescriptor_group_5328f8e912d7cdbf, []int{37} } func (m *GetGroupsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsResp.Unmarshal(m, b) @@ -2129,7 +2129,7 @@ func (m *GetGroupMemberReq) Reset() { *m = GetGroupMemberReq{} } func (m *GetGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberReq) ProtoMessage() {} func (*GetGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{38} + return fileDescriptor_group_5328f8e912d7cdbf, []int{38} } func (m *GetGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberReq.Unmarshal(m, b) @@ -2176,7 +2176,7 @@ func (m *OperateGroupStatusReq) Reset() { *m = OperateGroupStatusReq{} } func (m *OperateGroupStatusReq) String() string { return proto.CompactTextString(m) } func (*OperateGroupStatusReq) ProtoMessage() {} func (*OperateGroupStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{39} + return fileDescriptor_group_5328f8e912d7cdbf, []int{39} } func (m *OperateGroupStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateGroupStatusReq.Unmarshal(m, b) @@ -2227,7 +2227,7 @@ func (m *OperateGroupStatusResp) Reset() { *m = OperateGroupStatusResp{} func (m *OperateGroupStatusResp) String() string { return proto.CompactTextString(m) } func (*OperateGroupStatusResp) ProtoMessage() {} func (*OperateGroupStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{40} + return fileDescriptor_group_5328f8e912d7cdbf, []int{40} } func (m *OperateGroupStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateGroupStatusResp.Unmarshal(m, b) @@ -2261,7 +2261,7 @@ func (m *OperateUserRoleReq) Reset() { *m = OperateUserRoleReq{} } func (m *OperateUserRoleReq) String() string { return proto.CompactTextString(m) } func (*OperateUserRoleReq) ProtoMessage() {} func (*OperateUserRoleReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{41} + return fileDescriptor_group_5328f8e912d7cdbf, []int{41} } func (m *OperateUserRoleReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleReq.Unmarshal(m, b) @@ -2319,7 +2319,7 @@ func (m *OperateUserRoleResp) Reset() { *m = OperateUserRoleResp{} } func (m *OperateUserRoleResp) String() string { return proto.CompactTextString(m) } func (*OperateUserRoleResp) ProtoMessage() {} func (*OperateUserRoleResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{42} + return fileDescriptor_group_5328f8e912d7cdbf, []int{42} } func (m *OperateUserRoleResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleResp.Unmarshal(m, b) @@ -2351,7 +2351,7 @@ func (m *DeleteGroupReq) Reset() { *m = DeleteGroupReq{} } func (m *DeleteGroupReq) String() string { return proto.CompactTextString(m) } func (*DeleteGroupReq) ProtoMessage() {} func (*DeleteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{43} + return fileDescriptor_group_5328f8e912d7cdbf, []int{43} } func (m *DeleteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteGroupReq.Unmarshal(m, b) @@ -2395,7 +2395,7 @@ func (m *DeleteGroupResp) Reset() { *m = DeleteGroupResp{} } func (m *DeleteGroupResp) String() string { return proto.CompactTextString(m) } func (*DeleteGroupResp) ProtoMessage() {} func (*DeleteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{44} + return fileDescriptor_group_5328f8e912d7cdbf, []int{44} } func (m *DeleteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteGroupResp.Unmarshal(m, b) @@ -2427,7 +2427,7 @@ func (m *GetGroupByIdReq) Reset() { *m = GetGroupByIdReq{} } func (m *GetGroupByIdReq) String() string { return proto.CompactTextString(m) } func (*GetGroupByIdReq) ProtoMessage() {} func (*GetGroupByIdReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{45} + return fileDescriptor_group_5328f8e912d7cdbf, []int{45} } func (m *GetGroupByIdReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupByIdReq.Unmarshal(m, b) @@ -2472,7 +2472,7 @@ func (m *GetGroupByIdResp) Reset() { *m = GetGroupByIdResp{} } func (m *GetGroupByIdResp) String() string { return proto.CompactTextString(m) } func (*GetGroupByIdResp) ProtoMessage() {} func (*GetGroupByIdResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{46} + return fileDescriptor_group_5328f8e912d7cdbf, []int{46} } func (m *GetGroupByIdResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupByIdResp.Unmarshal(m, b) @@ -2513,7 +2513,7 @@ func (m *GetGroupMembersCMSReq) Reset() { *m = GetGroupMembersCMSReq{} } func (m *GetGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSReq) ProtoMessage() {} func (*GetGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{47} + return fileDescriptor_group_5328f8e912d7cdbf, []int{47} } func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b) @@ -2574,7 +2574,7 @@ func (m *GetGroupMembersCMSResp) Reset() { *m = GetGroupMembersCMSResp{} func (m *GetGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSResp) ProtoMessage() {} func (*GetGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{48} + return fileDescriptor_group_5328f8e912d7cdbf, []int{48} } func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b) @@ -2629,7 +2629,7 @@ func (m *RemoveGroupMembersCMSReq) Reset() { *m = RemoveGroupMembersCMSR func (m *RemoveGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*RemoveGroupMembersCMSReq) ProtoMessage() {} func (*RemoveGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{49} + return fileDescriptor_group_5328f8e912d7cdbf, []int{49} } func (m *RemoveGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSReq.Unmarshal(m, b) @@ -2689,7 +2689,7 @@ func (m *RemoveGroupMembersCMSResp) Reset() { *m = RemoveGroupMembersCMS func (m *RemoveGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*RemoveGroupMembersCMSResp) ProtoMessage() {} func (*RemoveGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{50} + return fileDescriptor_group_5328f8e912d7cdbf, []int{50} } func (m *RemoveGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSResp.Unmarshal(m, b) @@ -2737,7 +2737,7 @@ func (m *AddGroupMembersCMSReq) Reset() { *m = AddGroupMembersCMSReq{} } func (m *AddGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*AddGroupMembersCMSReq) ProtoMessage() {} func (*AddGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{51} + return fileDescriptor_group_5328f8e912d7cdbf, []int{51} } func (m *AddGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSReq.Unmarshal(m, b) @@ -2797,7 +2797,7 @@ func (m *AddGroupMembersCMSResp) Reset() { *m = AddGroupMembersCMSResp{} func (m *AddGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*AddGroupMembersCMSResp) ProtoMessage() {} func (*AddGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{52} + return fileDescriptor_group_5328f8e912d7cdbf, []int{52} } func (m *AddGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSResp.Unmarshal(m, b) @@ -2844,7 +2844,7 @@ func (m *DismissGroupReq) Reset() { *m = DismissGroupReq{} } func (m *DismissGroupReq) String() string { return proto.CompactTextString(m) } func (*DismissGroupReq) ProtoMessage() {} func (*DismissGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{53} + return fileDescriptor_group_5328f8e912d7cdbf, []int{53} } func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b) @@ -2896,7 +2896,7 @@ func (m *DismissGroupResp) Reset() { *m = DismissGroupResp{} } func (m *DismissGroupResp) String() string { return proto.CompactTextString(m) } func (*DismissGroupResp) ProtoMessage() {} func (*DismissGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{54} + return fileDescriptor_group_5328f8e912d7cdbf, []int{54} } func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b) @@ -2938,7 +2938,7 @@ func (m *MuteGroupMemberReq) Reset() { *m = MuteGroupMemberReq{} } func (m *MuteGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*MuteGroupMemberReq) ProtoMessage() {} func (*MuteGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{55} + return fileDescriptor_group_5328f8e912d7cdbf, []int{55} } func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b) @@ -3004,7 +3004,7 @@ func (m *MuteGroupMemberResp) Reset() { *m = MuteGroupMemberResp{} } func (m *MuteGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*MuteGroupMemberResp) ProtoMessage() {} func (*MuteGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{56} + return fileDescriptor_group_5328f8e912d7cdbf, []int{56} } func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b) @@ -3045,7 +3045,7 @@ func (m *CancelMuteGroupMemberReq) Reset() { *m = CancelMuteGroupMemberR func (m *CancelMuteGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupMemberReq) ProtoMessage() {} func (*CancelMuteGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{57} + return fileDescriptor_group_5328f8e912d7cdbf, []int{57} } func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b) @@ -3104,7 +3104,7 @@ func (m *CancelMuteGroupMemberResp) Reset() { *m = CancelMuteGroupMember func (m *CancelMuteGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupMemberResp) ProtoMessage() {} func (*CancelMuteGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{58} + return fileDescriptor_group_5328f8e912d7cdbf, []int{58} } func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b) @@ -3144,7 +3144,7 @@ func (m *MuteGroupReq) Reset() { *m = MuteGroupReq{} } func (m *MuteGroupReq) String() string { return proto.CompactTextString(m) } func (*MuteGroupReq) ProtoMessage() {} func (*MuteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{59} + return fileDescriptor_group_5328f8e912d7cdbf, []int{59} } func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b) @@ -3196,7 +3196,7 @@ func (m *MuteGroupResp) Reset() { *m = MuteGroupResp{} } func (m *MuteGroupResp) String() string { return proto.CompactTextString(m) } func (*MuteGroupResp) ProtoMessage() {} func (*MuteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{60} + return fileDescriptor_group_5328f8e912d7cdbf, []int{60} } func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b) @@ -3236,7 +3236,7 @@ func (m *CancelMuteGroupReq) Reset() { *m = CancelMuteGroupReq{} } func (m *CancelMuteGroupReq) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupReq) ProtoMessage() {} func (*CancelMuteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{61} + return fileDescriptor_group_5328f8e912d7cdbf, []int{61} } func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b) @@ -3288,7 +3288,7 @@ func (m *CancelMuteGroupResp) Reset() { *m = CancelMuteGroupResp{} } func (m *CancelMuteGroupResp) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupResp) ProtoMessage() {} func (*CancelMuteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{62} + return fileDescriptor_group_5328f8e912d7cdbf, []int{62} } func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b) @@ -3330,7 +3330,7 @@ func (m *SetGroupMemberNicknameReq) Reset() { *m = SetGroupMemberNicknam func (m *SetGroupMemberNicknameReq) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberNicknameReq) ProtoMessage() {} func (*SetGroupMemberNicknameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{63} + return fileDescriptor_group_5328f8e912d7cdbf, []int{63} } func (m *SetGroupMemberNicknameReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberNicknameReq.Unmarshal(m, b) @@ -3396,7 +3396,7 @@ func (m *SetGroupMemberNicknameResp) Reset() { *m = SetGroupMemberNickna func (m *SetGroupMemberNicknameResp) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberNicknameResp) ProtoMessage() {} func (*SetGroupMemberNicknameResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{64} + return fileDescriptor_group_5328f8e912d7cdbf, []int{64} } func (m *SetGroupMemberNicknameResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberNicknameResp.Unmarshal(m, b) @@ -3436,7 +3436,7 @@ func (m *GetJoinedSuperGroupListReq) Reset() { *m = GetJoinedSuperGroupL func (m *GetJoinedSuperGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedSuperGroupListReq) ProtoMessage() {} func (*GetJoinedSuperGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{65} + return fileDescriptor_group_5328f8e912d7cdbf, []int{65} } func (m *GetJoinedSuperGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedSuperGroupListReq.Unmarshal(m, b) @@ -3489,7 +3489,7 @@ func (m *GetJoinedSuperGroupListResp) Reset() { *m = GetJoinedSuperGroup func (m *GetJoinedSuperGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedSuperGroupListResp) ProtoMessage() {} func (*GetJoinedSuperGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{66} + return fileDescriptor_group_5328f8e912d7cdbf, []int{66} } func (m *GetJoinedSuperGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedSuperGroupListResp.Unmarshal(m, b) @@ -3536,7 +3536,7 @@ func (m *GetSuperGroupsInfoReq) Reset() { *m = GetSuperGroupsInfoReq{} } func (m *GetSuperGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupsInfoReq) ProtoMessage() {} func (*GetSuperGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{67} + return fileDescriptor_group_5328f8e912d7cdbf, []int{67} } func (m *GetSuperGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupsInfoReq.Unmarshal(m, b) @@ -3589,7 +3589,7 @@ func (m *GetSuperGroupsInfoResp) Reset() { *m = GetSuperGroupsInfoResp{} func (m *GetSuperGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupsInfoResp) ProtoMessage() {} func (*GetSuperGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{68} + return fileDescriptor_group_5328f8e912d7cdbf, []int{68} } func (m *GetSuperGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupsInfoResp.Unmarshal(m, b) @@ -3641,7 +3641,7 @@ func (m *SetGroupMemberInfoReq) Reset() { *m = SetGroupMemberInfoReq{} } func (m *SetGroupMemberInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberInfoReq) ProtoMessage() {} func (*SetGroupMemberInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{69} + return fileDescriptor_group_5328f8e912d7cdbf, []int{69} } func (m *SetGroupMemberInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberInfoReq.Unmarshal(m, b) @@ -3728,7 +3728,7 @@ func (m *SetGroupMemberInfoResp) Reset() { *m = SetGroupMemberInfoResp{} func (m *SetGroupMemberInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberInfoResp) ProtoMessage() {} func (*SetGroupMemberInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_b72712dbc4ea95cc, []int{70} + return fileDescriptor_group_5328f8e912d7cdbf, []int{70} } func (m *SetGroupMemberInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberInfoResp.Unmarshal(m, b) @@ -3755,6 +3755,114 @@ func (m *SetGroupMemberInfoResp) GetCommonResp() *CommonResp { return nil } +type GetGroupAbstractInfoReq struct { + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetGroupAbstractInfoReq) Reset() { *m = GetGroupAbstractInfoReq{} } +func (m *GetGroupAbstractInfoReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupAbstractInfoReq) ProtoMessage() {} +func (*GetGroupAbstractInfoReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_5328f8e912d7cdbf, []int{71} +} +func (m *GetGroupAbstractInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupAbstractInfoReq.Unmarshal(m, b) +} +func (m *GetGroupAbstractInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupAbstractInfoReq.Marshal(b, m, deterministic) +} +func (dst *GetGroupAbstractInfoReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupAbstractInfoReq.Merge(dst, src) +} +func (m *GetGroupAbstractInfoReq) XXX_Size() int { + return xxx_messageInfo_GetGroupAbstractInfoReq.Size(m) +} +func (m *GetGroupAbstractInfoReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupAbstractInfoReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetGroupAbstractInfoReq proto.InternalMessageInfo + +func (m *GetGroupAbstractInfoReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *GetGroupAbstractInfoReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *GetGroupAbstractInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetGroupAbstractInfoResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + GroupMemberNumber int32 `protobuf:"varint,2,opt,name=groupMemberNumber" json:"groupMemberNumber,omitempty"` + GroupMemberListHash uint64 `protobuf:"varint,3,opt,name=groupMemberListHash" json:"groupMemberListHash,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetGroupAbstractInfoResp) Reset() { *m = GetGroupAbstractInfoResp{} } +func (m *GetGroupAbstractInfoResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupAbstractInfoResp) ProtoMessage() {} +func (*GetGroupAbstractInfoResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_5328f8e912d7cdbf, []int{72} +} +func (m *GetGroupAbstractInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupAbstractInfoResp.Unmarshal(m, b) +} +func (m *GetGroupAbstractInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupAbstractInfoResp.Marshal(b, m, deterministic) +} +func (dst *GetGroupAbstractInfoResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupAbstractInfoResp.Merge(dst, src) +} +func (m *GetGroupAbstractInfoResp) XXX_Size() int { + return xxx_messageInfo_GetGroupAbstractInfoResp.Size(m) +} +func (m *GetGroupAbstractInfoResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupAbstractInfoResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetGroupAbstractInfoResp proto.InternalMessageInfo + +func (m *GetGroupAbstractInfoResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetGroupAbstractInfoResp) GetGroupMemberNumber() int32 { + if m != nil { + return m.GroupMemberNumber + } + return 0 +} + +func (m *GetGroupAbstractInfoResp) GetGroupMemberListHash() uint64 { + if m != nil { + return m.GroupMemberListHash + } + return 0 +} + func init() { proto.RegisterType((*CommonResp)(nil), "group.CommonResp") proto.RegisterType((*GroupAddMemberInfo)(nil), "group.GroupAddMemberInfo") @@ -3827,6 +3935,8 @@ func init() { proto.RegisterType((*GetSuperGroupsInfoResp)(nil), "group.GetSuperGroupsInfoResp") proto.RegisterType((*SetGroupMemberInfoReq)(nil), "group.SetGroupMemberInfoReq") proto.RegisterType((*SetGroupMemberInfoResp)(nil), "group.SetGroupMemberInfoResp") + proto.RegisterType((*GetGroupAbstractInfoReq)(nil), "group.GetGroupAbstractInfoReq") + proto.RegisterType((*GetGroupAbstractInfoResp)(nil), "group.GetGroupAbstractInfoResp") } // Reference imports to suppress errors if they are not otherwise used. @@ -3873,6 +3983,7 @@ type GroupClient interface { GetJoinedSuperGroupList(ctx context.Context, in *GetJoinedSuperGroupListReq, opts ...grpc.CallOption) (*GetJoinedSuperGroupListResp, error) GetSuperGroupsInfo(ctx context.Context, in *GetSuperGroupsInfoReq, opts ...grpc.CallOption) (*GetSuperGroupsInfoResp, error) SetGroupMemberInfo(ctx context.Context, in *SetGroupMemberInfoReq, opts ...grpc.CallOption) (*SetGroupMemberInfoResp, error) + GetGroupAbstractInfo(ctx context.Context, in *GetGroupAbstractInfoReq, opts ...grpc.CallOption) (*GetGroupAbstractInfoResp, error) } type groupClient struct { @@ -4180,6 +4291,15 @@ func (c *groupClient) SetGroupMemberInfo(ctx context.Context, in *SetGroupMember return out, nil } +func (c *groupClient) GetGroupAbstractInfo(ctx context.Context, in *GetGroupAbstractInfoReq, opts ...grpc.CallOption) (*GetGroupAbstractInfoResp, error) { + out := new(GetGroupAbstractInfoResp) + err := grpc.Invoke(ctx, "/group.group/GetGroupAbstractInfo", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // Server API for Group service type GroupServer interface { @@ -4216,6 +4336,7 @@ type GroupServer interface { GetJoinedSuperGroupList(context.Context, *GetJoinedSuperGroupListReq) (*GetJoinedSuperGroupListResp, error) GetSuperGroupsInfo(context.Context, *GetSuperGroupsInfoReq) (*GetSuperGroupsInfoResp, error) SetGroupMemberInfo(context.Context, *SetGroupMemberInfoReq) (*SetGroupMemberInfoResp, error) + GetGroupAbstractInfo(context.Context, *GetGroupAbstractInfoReq) (*GetGroupAbstractInfoResp, error) } func RegisterGroupServer(s *grpc.Server, srv GroupServer) { @@ -4816,6 +4937,24 @@ func _Group_SetGroupMemberInfo_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _Group_GetGroupAbstractInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupAbstractInfoReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).GetGroupAbstractInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/GetGroupAbstractInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).GetGroupAbstractInfo(ctx, req.(*GetGroupAbstractInfoReq)) + } + return interceptor(ctx, in, info, handler) +} + var _Group_serviceDesc = grpc.ServiceDesc{ ServiceName: "group.group", HandlerType: (*GroupServer)(nil), @@ -4952,165 +5091,174 @@ var _Group_serviceDesc = grpc.ServiceDesc{ MethodName: "SetGroupMemberInfo", Handler: _Group_SetGroupMemberInfo_Handler, }, + { + MethodName: "GetGroupAbstractInfo", + Handler: _Group_GetGroupAbstractInfo_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_b72712dbc4ea95cc) } +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_5328f8e912d7cdbf) } -var fileDescriptor_group_b72712dbc4ea95cc = []byte{ - // 2430 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x3a, 0x4f, 0x6f, 0x1c, 0x49, - 0xf5, 0x6a, 0x3b, 0x13, 0x7b, 0x9e, 0x3d, 0x19, 0xbb, 0x9c, 0x71, 0x26, 0x1d, 0x6f, 0xd6, 0xa9, - 0xcd, 0x6f, 0x7f, 0x11, 0x2c, 0xb6, 0x70, 0xa4, 0x08, 0x58, 0x44, 0x88, 0xff, 0xc5, 0x93, 0xf8, - 0x0f, 0xee, 0xc9, 0x72, 0x88, 0x84, 0xc2, 0x64, 0xba, 0x66, 0x34, 0x78, 0xa6, 0xbb, 0xdd, 0xd5, - 0x63, 0x07, 0x2e, 0x2b, 0x2e, 0x48, 0x8b, 0x90, 0x00, 0x21, 0x71, 0x5a, 0x04, 0x7b, 0x82, 0x03, - 0x07, 0x0e, 0x70, 0x46, 0xdc, 0xf9, 0x02, 0x5c, 0xf9, 0x02, 0x7c, 0x02, 0x24, 0xd4, 0x55, 0xd5, - 0xd5, 0xd5, 0xdd, 0xd5, 0xed, 0x49, 0x3b, 0xd9, 0x5c, 0x5a, 0x7a, 0xaf, 0x5e, 0x55, 0xbd, 0xf7, - 0xea, 0xfd, 0xa9, 0xf7, 0xaa, 0x61, 0xb1, 0xef, 0xbb, 0x63, 0x6f, 0x9d, 0x7d, 0xd7, 0x3c, 0xdf, - 0x0d, 0x5c, 0x54, 0x61, 0x80, 0x79, 0xe7, 0xc8, 0x23, 0xce, 0x8b, 0xd6, 0xc1, 0xba, 0x77, 0xd2, - 0x5f, 0x67, 0x23, 0xeb, 0xd4, 0x3e, 0x79, 0x71, 0x4e, 0xd7, 0xcf, 0x29, 0xa7, 0x34, 0xff, 0x3f, - 0x9f, 0xc4, 0xef, 0x78, 0x1e, 0xf1, 0x05, 0x21, 0xfe, 0x0e, 0xc0, 0x96, 0x3b, 0x1a, 0xb9, 0x8e, - 0x45, 0xa8, 0x87, 0x9a, 0x30, 0xb3, 0xe3, 0xfb, 0x5b, 0xae, 0x4d, 0x9a, 0xc6, 0xaa, 0x71, 0xaf, - 0x62, 0x45, 0x20, 0x5a, 0x86, 0xab, 0x3b, 0xbe, 0x7f, 0x40, 0xfb, 0xcd, 0xa9, 0x55, 0xe3, 0x5e, - 0xd5, 0x12, 0x10, 0x7e, 0x02, 0xe8, 0x71, 0xc8, 0xd4, 0x23, 0xdb, 0x3e, 0x20, 0xa3, 0x97, 0xc4, - 0x6f, 0x39, 0x3d, 0x37, 0xa4, 0xfe, 0x84, 0x12, 0xbf, 0xb5, 0xcd, 0x96, 0xa9, 0x5a, 0x02, 0x42, - 0x2b, 0x50, 0xb5, 0xdc, 0x21, 0xd9, 0x27, 0x67, 0x64, 0xc8, 0x16, 0xaa, 0x58, 0x31, 0x02, 0xff, - 0xc7, 0x80, 0x6b, 0x5b, 0x3e, 0xe9, 0x04, 0x84, 0x2d, 0x69, 0x91, 0x53, 0xf4, 0x08, 0xae, 0xb5, - 0x9c, 0x41, 0xc0, 0x97, 0xde, 0x1f, 0xd0, 0xa0, 0x69, 0xac, 0x4e, 0xdf, 0x9b, 0xdb, 0xb8, 0xb9, - 0xc6, 0xf5, 0x92, 0xdd, 0xdb, 0x4a, 0x4d, 0x40, 0xdf, 0x82, 0x2a, 0xa3, 0x0a, 0x07, 0xd9, 0x9e, - 0x73, 0x1b, 0x2b, 0x6b, 0x94, 0xf8, 0x67, 0xc4, 0x7f, 0xd1, 0xf1, 0x06, 0x2f, 0xbc, 0x8e, 0xdf, - 0x19, 0xd1, 0x35, 0x49, 0x63, 0xc5, 0xe4, 0x68, 0x15, 0xe6, 0x8e, 0x3c, 0xe2, 0x77, 0x82, 0x81, - 0xeb, 0xb4, 0xb6, 0x9b, 0xd3, 0x4c, 0x18, 0x15, 0x85, 0x4c, 0x98, 0x3d, 0xf2, 0x84, 0xac, 0x57, - 0xd8, 0xb0, 0x84, 0xd9, 0xec, 0x73, 0x87, 0xf8, 0x62, 0xb8, 0x22, 0x66, 0xc7, 0x28, 0xfc, 0x29, - 0xd4, 0x13, 0x02, 0x97, 0x39, 0x82, 0xa4, 0x80, 0xd3, 0xaf, 0x25, 0x20, 0xf6, 0x61, 0xe1, 0x31, - 0x09, 0x18, 0x4c, 0xd9, 0x18, 0x39, 0x0d, 0xd9, 0xe6, 0x04, 0xdb, 0x52, 0xe1, 0x55, 0x4b, 0x45, - 0xa5, 0xd5, 0x32, 0x55, 0xac, 0x96, 0xe9, 0xa4, 0x5a, 0xf0, 0x67, 0x06, 0x2c, 0xa6, 0x36, 0x2d, - 0x25, 0xf7, 0x26, 0xd4, 0xa4, 0x20, 0x8c, 0xd3, 0x69, 0x66, 0x1a, 0xc5, 0xb2, 0x27, 0xa7, 0xe0, - 0xdf, 0x19, 0x50, 0x6f, 0x0b, 0x5e, 0x22, 0xf9, 0xf7, 0xa1, 0xde, 0x8f, 0xe0, 0x5d, 0xd7, 0x6f, - 0x93, 0x80, 0x71, 0x34, 0xb7, 0x81, 0x8b, 0x56, 0xe6, 0x94, 0x56, 0x7a, 0x6a, 0x42, 0x13, 0x53, - 0x1a, 0x03, 0x29, 0x34, 0x2f, 0xbc, 0x03, 0x0b, 0x49, 0xf6, 0xa8, 0x87, 0xbe, 0xae, 0xba, 0xac, - 0x60, 0x6d, 0x51, 0xf8, 0x43, 0x3c, 0x60, 0x29, 0x44, 0xf8, 0x27, 0x60, 0x46, 0x1a, 0x7f, 0xe4, - 0x79, 0xc3, 0x41, 0x97, 0xad, 0x1f, 0x6a, 0x20, 0x14, 0x58, 0x65, 0xd1, 0x28, 0x66, 0x51, 0x73, - 0xd4, 0xb7, 0x01, 0x76, 0x7d, 0x77, 0x94, 0x38, 0x6c, 0x05, 0x83, 0x3f, 0x37, 0xe0, 0x56, 0xee, - 0xe6, 0xa5, 0x0e, 0xfe, 0x29, 0x2c, 0x44, 0x01, 0x62, 0x4c, 0x68, 0xa0, 0x9c, 0xfd, 0xfb, 0x79, - 0x27, 0x24, 0x48, 0xad, 0xcc, 0x44, 0x1c, 0xc0, 0xca, 0x63, 0x12, 0x84, 0xbc, 0x5a, 0xe4, 0x54, - 0xa3, 0x9c, 0xbc, 0x50, 0x76, 0xb9, 0x73, 0xfd, 0xbd, 0x01, 0xef, 0x15, 0x6c, 0x5b, 0xea, 0x94, - 0xb5, 0x7a, 0x99, 0x2a, 0xab, 0x97, 0xbf, 0x1b, 0xd0, 0x78, 0xe6, 0x77, 0x1c, 0xda, 0x23, 0x3e, - 0x1b, 0x64, 0x71, 0x2b, 0xd4, 0x48, 0x13, 0x66, 0x44, 0x30, 0x10, 0x2a, 0x89, 0x40, 0xf4, 0x21, - 0x5c, 0x3b, 0x1a, 0xda, 0x6a, 0xcc, 0xe3, 0x9a, 0x49, 0x61, 0x43, 0xba, 0x43, 0x72, 0xae, 0xd2, - 0x71, 0x15, 0xa5, 0xb0, 0x69, 0x3d, 0x5e, 0x29, 0x8e, 0x33, 0x95, 0x54, 0x9c, 0x79, 0x0a, 0xcb, - 0x3a, 0x01, 0xca, 0x79, 0xd0, 0x3f, 0x0d, 0x98, 0x7f, 0xe2, 0x0e, 0x1c, 0x99, 0x99, 0xf2, 0xb5, - 0x70, 0x1b, 0xc0, 0x22, 0xa7, 0x07, 0x84, 0xd2, 0x4e, 0x9f, 0x08, 0x0d, 0x28, 0x98, 0xa2, 0xd8, - 0x38, 0x81, 0xc4, 0xb7, 0x01, 0x42, 0x3e, 0xda, 0xee, 0xd8, 0xef, 0x12, 0x26, 0x73, 0xc5, 0x52, - 0x30, 0xe8, 0x2e, 0xd4, 0x5a, 0xce, 0xd9, 0x20, 0x90, 0xaa, 0xbd, 0xca, 0xd6, 0x48, 0x22, 0xf1, - 0x26, 0xd4, 0x14, 0x69, 0xca, 0xa9, 0xe4, 0x5f, 0xa1, 0x63, 0xa7, 0xbc, 0x3a, 0x1c, 0x70, 0x1d, - 0x4a, 0x44, 0x1e, 0x51, 0x65, 0x31, 0x8a, 0x4f, 0x2f, 0xed, 0x43, 0x8a, 0x7e, 0xa7, 0x33, 0xfa, - 0x55, 0x02, 0xce, 0x95, 0x74, 0xc0, 0x09, 0xc7, 0xf7, 0x3a, 0x8e, 0x3d, 0x24, 0x76, 0x18, 0x3a, - 0xb8, 0x55, 0x28, 0x18, 0x84, 0x61, 0x9e, 0x43, 0x16, 0xa1, 0xe3, 0x61, 0xc0, 0x14, 0x54, 0xb1, - 0x12, 0x38, 0x7c, 0x0c, 0x2b, 0xf9, 0xa2, 0x95, 0x53, 0x57, 0x0f, 0xe6, 0x8f, 0xc7, 0x83, 0x60, - 0x02, 0x03, 0xba, 0x5c, 0x7a, 0xdd, 0x84, 0x9a, 0xb2, 0x4f, 0x39, 0x5e, 0xbf, 0x30, 0xa0, 0x11, - 0xc5, 0xec, 0xf8, 0x2a, 0x55, 0xcc, 0xf5, 0xa5, 0x02, 0x62, 0x18, 0x66, 0x77, 0x07, 0xc3, 0x80, - 0xf8, 0xec, 0x40, 0x2b, 0x96, 0x80, 0xc2, 0xfd, 0x0e, 0xc9, 0xab, 0xa0, 0x4d, 0x4e, 0x85, 0xad, - 0x47, 0x20, 0xfe, 0xb3, 0x01, 0xcb, 0x3a, 0x1e, 0x4b, 0xa5, 0x94, 0x5d, 0x80, 0x51, 0x7c, 0xc7, - 0xe4, 0xc9, 0xe4, 0xc3, 0xbc, 0xa0, 0xc9, 0x77, 0xdb, 0x1d, 0x0f, 0x87, 0x2c, 0x27, 0x2b, 0x33, - 0xc3, 0x9d, 0x1d, 0xc1, 0x2e, 0x97, 0x23, 0x02, 0xf1, 0xaf, 0x32, 0xec, 0xca, 0x0b, 0x57, 0x61, - 0x28, 0x51, 0xd8, 0x9a, 0x62, 0x37, 0x31, 0x75, 0xbb, 0x4b, 0x85, 0x12, 0xfc, 0x1b, 0x03, 0x6e, - 0x68, 0x59, 0x7a, 0x97, 0x2a, 0xc4, 0x7f, 0x31, 0x00, 0x3d, 0x1d, 0x74, 0x4f, 0x14, 0xba, 0x62, - 0x25, 0x7d, 0x05, 0x16, 0x42, 0x7a, 0x62, 0x73, 0xc1, 0x15, 0x55, 0x65, 0xf0, 0x21, 0xf3, 0x16, - 0xe9, 0x50, 0xd7, 0x11, 0xea, 0x12, 0x50, 0x5a, 0x59, 0x95, 0x62, 0x97, 0xbb, 0x9a, 0x72, 0xb9, - 0x8f, 0xa1, 0xda, 0xb2, 0x37, 0x78, 0xe8, 0xc8, 0xbd, 0x30, 0xb0, 0xad, 0x59, 0xc0, 0xe1, 0x85, - 0x8f, 0x80, 0xf0, 0xa7, 0xb0, 0x94, 0x11, 0xb7, 0xd4, 0x01, 0x3c, 0x80, 0x9a, 0xe4, 0x42, 0x39, - 0x83, 0x05, 0xe1, 0xea, 0x72, 0xcc, 0x4a, 0x92, 0xe1, 0x31, 0xf3, 0xf5, 0x30, 0x1d, 0x10, 0x9b, - 0x71, 0x11, 0xf9, 0x7a, 0x32, 0xd0, 0x1a, 0x99, 0x40, 0xbb, 0x0a, 0x73, 0x6e, 0x36, 0x4e, 0xb9, - 0x13, 0xc6, 0xa9, 0x9f, 0x71, 0x87, 0xc8, 0xec, 0x7b, 0xa9, 0x1a, 0x68, 0xe2, 0x3a, 0x20, 0x26, - 0xc7, 0x7f, 0x35, 0xe0, 0x3a, 0xcf, 0x8e, 0x21, 0x67, 0xcf, 0x5c, 0x19, 0xa1, 0x2f, 0x8e, 0xc3, - 0xf9, 0x49, 0x2a, 0x36, 0xb4, 0x2b, 0x09, 0x43, 0xfb, 0x08, 0x16, 0xf9, 0x5e, 0xaa, 0xb5, 0x56, - 0x98, 0xb5, 0x66, 0x07, 0x0a, 0x8d, 0xee, 0xa7, 0x06, 0x34, 0x34, 0x6c, 0x7f, 0xa9, 0xa6, 0xf3, - 0xb9, 0x01, 0xd7, 0xe5, 0xdd, 0x7e, 0x38, 0x9c, 0xc4, 0x5b, 0x2f, 0x9d, 0x26, 0x8e, 0x7a, 0x3d, - 0x4a, 0x82, 0x28, 0x4d, 0x70, 0x08, 0x5d, 0x87, 0xca, 0x96, 0x3b, 0x76, 0x02, 0x91, 0x24, 0x38, - 0x80, 0x7f, 0xad, 0xa4, 0x31, 0x85, 0xbd, 0x77, 0x1a, 0xde, 0x7e, 0x6b, 0xc0, 0xec, 0xd6, 0x41, - 0x9b, 0x91, 0x25, 0x4b, 0x77, 0xe3, 0xf5, 0x7a, 0x13, 0xf7, 0xa0, 0xce, 0xf7, 0xea, 0xd0, 0x80, - 0xf8, 0x87, 0x9d, 0x51, 0x74, 0xd7, 0x4c, 0xa3, 0xc3, 0x2b, 0xa1, 0x82, 0x6a, 0xd9, 0x42, 0xb1, - 0x49, 0x64, 0x98, 0x0d, 0xe6, 0x22, 0x65, 0x85, 0x47, 0xb8, 0x22, 0x78, 0x63, 0x2b, 0xf3, 0x43, - 0x8c, 0x11, 0x68, 0x1b, 0xe0, 0x7b, 0x9d, 0xfe, 0xc0, 0x61, 0x07, 0x23, 0xda, 0x2a, 0x77, 0x35, - 0xac, 0x8b, 0x92, 0x22, 0xa6, 0xb5, 0x94, 0x79, 0x13, 0x14, 0x4a, 0x5f, 0x18, 0x30, 0x1f, 0x73, - 0x45, 0x3d, 0xf4, 0x35, 0xa8, 0x46, 0xea, 0xa3, 0xa2, 0x19, 0x54, 0x8f, 0x2e, 0x33, 0x02, 0x6f, - 0xc5, 0x14, 0x6f, 0x88, 0x4f, 0xa9, 0x8b, 0xf1, 0x88, 0x32, 0x2e, 0x2b, 0x56, 0x8c, 0xc0, 0x67, - 0x31, 0x8b, 0x34, 0xd4, 0x5c, 0x72, 0x4f, 0xe3, 0xcd, 0xe8, 0x26, 0x1b, 0x7d, 0xf0, 0x1f, 0x0c, - 0xa8, 0x29, 0x1b, 0xbf, 0x2b, 0xe5, 0x98, 0x30, 0x1b, 0xe9, 0x42, 0xe8, 0x46, 0xc2, 0xf8, 0x28, - 0x6e, 0xf5, 0x68, 0x82, 0x83, 0x9d, 0x0c, 0x0e, 0xf6, 0x04, 0x32, 0x9f, 0x40, 0x83, 0x83, 0xbc, - 0x65, 0xd6, 0x0e, 0x3a, 0xc1, 0x98, 0x16, 0x2f, 0xba, 0x0c, 0x57, 0x39, 0x59, 0x94, 0x78, 0x39, - 0x34, 0x81, 0xf1, 0x35, 0x61, 0x59, 0xb7, 0x19, 0xf5, 0xc2, 0xe4, 0x85, 0xc4, 0x10, 0xab, 0xe1, - 0xdd, 0x21, 0xb9, 0x90, 0x09, 0x16, 0xe4, 0xec, 0x28, 0xac, 0x70, 0x28, 0xd9, 0x11, 0x9d, 0x4e, - 0x75, 0x44, 0x27, 0xb8, 0xc3, 0x35, 0x60, 0x29, 0xc3, 0x07, 0xf5, 0xf0, 0x3e, 0x5c, 0xdb, 0x26, - 0x43, 0xa2, 0x74, 0x52, 0x2f, 0xa3, 0xf4, 0x45, 0xa8, 0x27, 0x56, 0xa3, 0x1e, 0x3e, 0x80, 0x7a, - 0x74, 0xb0, 0x9b, 0x3f, 0x6e, 0xd9, 0x97, 0xdd, 0xe1, 0x61, 0xdc, 0x87, 0xe4, 0xcb, 0x51, 0x0f, - 0x7d, 0x35, 0x0e, 0x94, 0xc2, 0x89, 0x32, 0xb6, 0x2c, 0x09, 0xf0, 0xdf, 0x32, 0x15, 0x0b, 0xdd, - 0x3a, 0x68, 0x17, 0xb3, 0x65, 0xc2, 0x6c, 0xa8, 0x34, 0x25, 0x74, 0x4a, 0x38, 0xe5, 0x1a, 0xd3, - 0x6f, 0xc6, 0x87, 0x35, 0xe7, 0xf7, 0x8f, 0x6c, 0x59, 0xc0, 0xf8, 0xa6, 0x1e, 0xfa, 0x2e, 0xcc, - 0xf0, 0xbc, 0x11, 0xb9, 0xf2, 0xa4, 0xe9, 0x26, 0x9a, 0x86, 0x76, 0x34, 0xfe, 0xfd, 0x7f, 0x5a, - 0x21, 0x78, 0x69, 0x9b, 0x23, 0xc5, 0x6d, 0x00, 0xbe, 0x83, 0x12, 0xfe, 0x14, 0x0c, 0xfe, 0x85, - 0x01, 0x4d, 0x8b, 0x8c, 0xdc, 0x33, 0xf2, 0x5a, 0xea, 0x6f, 0xc2, 0x0c, 0x77, 0x02, 0x2a, 0xae, - 0xeb, 0x11, 0xf8, 0x5a, 0x6d, 0x77, 0x3b, 0xd5, 0x76, 0xb7, 0xf1, 0x01, 0xdc, 0xcc, 0xe1, 0x86, - 0x27, 0x7e, 0x3a, 0xee, 0x76, 0x09, 0xa5, 0xa2, 0xb1, 0x1d, 0x81, 0xa1, 0x87, 0xf6, 0x3a, 0x83, - 0x21, 0xb1, 0x05, 0x37, 0x02, 0xc2, 0x9f, 0x19, 0xd0, 0x78, 0x64, 0xdb, 0x6f, 0x43, 0x34, 0x3b, - 0x2b, 0x9a, 0x5d, 0x28, 0xda, 0x13, 0x58, 0xd6, 0xb1, 0x52, 0x4a, 0xae, 0x01, 0xd4, 0xb7, 0x07, - 0x74, 0x34, 0xa0, 0x54, 0xc6, 0x08, 0x13, 0x66, 0xdd, 0x54, 0x23, 0xd8, 0xf5, 0x26, 0xbe, 0xec, - 0x37, 0x61, 0xa6, 0x9f, 0xbc, 0x0c, 0x0b, 0x10, 0xef, 0xc0, 0x42, 0x72, 0x2b, 0xde, 0x95, 0xe8, - 0x4e, 0xd2, 0x95, 0x88, 0x89, 0xf0, 0x9f, 0x0c, 0x40, 0x07, 0xe3, 0x80, 0xa4, 0xd2, 0xc9, 0x5b, - 0xe2, 0x3a, 0x54, 0xdc, 0x58, 0xed, 0x31, 0x09, 0x08, 0x61, 0x98, 0x1f, 0x8d, 0x03, 0x62, 0xb7, - 0x49, 0xd7, 0x75, 0x6c, 0xca, 0xae, 0x9c, 0x35, 0x2b, 0x81, 0xc3, 0x7b, 0xb0, 0x94, 0xe1, 0xb4, - 0x9c, 0xd0, 0x3f, 0x37, 0xa0, 0xb9, 0xd5, 0x71, 0xba, 0x64, 0xf8, 0xee, 0x45, 0xc7, 0x87, 0x70, - 0x33, 0x87, 0x97, 0x72, 0xc2, 0xf5, 0x60, 0x5e, 0xae, 0xf4, 0x36, 0x0d, 0x70, 0x13, 0x6a, 0xca, - 0x3e, 0xe5, 0x78, 0x1d, 0x02, 0x4a, 0xc9, 0xfe, 0x36, 0x39, 0xde, 0x83, 0xa5, 0xcc, 0x6e, 0xe5, - 0xf8, 0xfe, 0xa3, 0x01, 0x37, 0xdb, 0x89, 0x0c, 0x73, 0x38, 0xe8, 0x9e, 0x38, 0x9d, 0x51, 0x74, - 0x63, 0xe9, 0x27, 0x0b, 0xb5, 0x7e, 0x5c, 0xa8, 0x39, 0x82, 0x30, 0xca, 0x8e, 0x11, 0x9c, 0x90, - 0x7a, 0xba, 0x58, 0xea, 0x2b, 0x59, 0xa9, 0x63, 0xeb, 0xaa, 0x24, 0xac, 0xeb, 0x08, 0xcc, 0x3c, - 0x46, 0xcb, 0xb5, 0x31, 0x7d, 0xf6, 0xec, 0xc5, 0x3b, 0x0c, 0xed, 0xb1, 0x27, 0xde, 0x01, 0xa2, - 0xf6, 0x46, 0x8a, 0x51, 0xa3, 0x88, 0xd1, 0xa9, 0x44, 0x04, 0x28, 0x10, 0x3f, 0x4c, 0x86, 0xb7, - 0x72, 0x37, 0x2d, 0x75, 0x82, 0x97, 0x6a, 0x6e, 0x9c, 0xb3, 0x6b, 0x51, 0xcc, 0xc7, 0x97, 0xf6, - 0xca, 0xfb, 0x4b, 0x7e, 0xb1, 0xc9, 0xec, 0x5c, 0x4e, 0x05, 0x6f, 0xe2, 0xad, 0xf7, 0xdf, 0x53, - 0xd0, 0x48, 0xda, 0x97, 0xd2, 0x80, 0xcd, 0x71, 0x82, 0x12, 0x16, 0x30, 0x81, 0x03, 0x7c, 0x43, - 0x71, 0xad, 0x8a, 0xa8, 0xfa, 0xfb, 0xae, 0xdb, 0x1f, 0x12, 0xfe, 0x57, 0xc6, 0xcb, 0x71, 0x6f, - 0xad, 0x1d, 0xf8, 0x03, 0xa7, 0xff, 0xfd, 0xce, 0x70, 0x4c, 0x14, 0xc7, 0x7b, 0x00, 0x33, 0xbd, - 0x4e, 0x97, 0x7c, 0x62, 0xed, 0xb3, 0x7e, 0xd0, 0x45, 0x13, 0x23, 0x62, 0xf4, 0x4d, 0xa8, 0xfa, - 0xb2, 0xcc, 0x98, 0x61, 0x33, 0x6f, 0x65, 0x66, 0xb6, 0x9c, 0xe0, 0xfe, 0x06, 0x9f, 0x18, 0x53, - 0xa3, 0x8f, 0x60, 0x8a, 0xbc, 0x6a, 0xce, 0x4e, 0xb0, 0xdb, 0x14, 0x79, 0x85, 0x9f, 0xc2, 0xb2, - 0x4e, 0xc7, 0xa5, 0xfc, 0x77, 0xe3, 0xbf, 0x4b, 0xc0, 0x7f, 0x79, 0x41, 0xdf, 0x86, 0xb9, 0x6e, - 0xfc, 0xa3, 0x04, 0x6a, 0x44, 0xf3, 0x12, 0x7f, 0x8b, 0x98, 0xcb, 0x3a, 0x34, 0xf5, 0xd0, 0x03, - 0xa8, 0xfe, 0x28, 0x7a, 0xed, 0x42, 0x4b, 0x82, 0x48, 0x7d, 0xcd, 0x33, 0xaf, 0x67, 0x91, 0x7c, - 0xde, 0x69, 0xf4, 0x94, 0x22, 0xe7, 0xa9, 0x8f, 0x38, 0x72, 0x5e, 0xf2, 0xc5, 0x65, 0x13, 0x6a, - 0x7d, 0xf5, 0x07, 0x07, 0x74, 0x23, 0xfa, 0x5d, 0x25, 0xf5, 0xaf, 0x85, 0xd9, 0xd4, 0x0f, 0x50, - 0x0f, 0x3d, 0x84, 0x79, 0xaa, 0xbc, 0xfc, 0xa3, 0x48, 0xb6, 0xd4, 0xdf, 0x0a, 0xe6, 0x0d, 0x2d, - 0x9e, 0x7a, 0xe8, 0x87, 0x70, 0xa3, 0xaf, 0x7f, 0x76, 0x47, 0x77, 0x52, 0xbb, 0x66, 0x9f, 0xbd, - 0x4d, 0x7c, 0x11, 0x09, 0xf5, 0x50, 0x0f, 0x6e, 0xf6, 0xf3, 0xde, 0xb0, 0xd1, 0x07, 0xf1, 0x02, - 0xb9, 0x8f, 0xeb, 0xe6, 0xdd, 0x8b, 0x89, 0xa8, 0x87, 0x8e, 0x01, 0x05, 0x99, 0x87, 0x5c, 0xb4, - 0x22, 0xe6, 0x6a, 0x1f, 0xa9, 0xcd, 0xf7, 0x0a, 0x46, 0xa9, 0x87, 0xba, 0xd0, 0xec, 0xe7, 0xbc, - 0xef, 0x21, 0x9c, 0xf8, 0xb7, 0x48, 0xfb, 0xb6, 0x69, 0x7e, 0x70, 0x21, 0x0d, 0xe7, 0xbb, 0x9f, - 0x79, 0xa0, 0x92, 0x7c, 0x6b, 0xdf, 0xd7, 0x24, 0xdf, 0x39, 0x2f, 0x5b, 0xcf, 0x60, 0xa9, 0x9f, - 0x7d, 0xb1, 0x41, 0xfa, 0x59, 0xd2, 0xca, 0x6e, 0x17, 0x0d, 0x53, 0x0f, 0xed, 0x41, 0xfd, 0x24, - 0xf9, 0x04, 0x81, 0xa2, 0x1f, 0xac, 0xb2, 0x2f, 0x31, 0xa6, 0x99, 0x37, 0x24, 0x45, 0x4e, 0xf5, - 0xf4, 0x55, 0x91, 0xb3, 0xcf, 0x0c, 0xaa, 0xc8, 0xba, 0xc7, 0x80, 0x43, 0x58, 0x1c, 0xa4, 0xdb, - 0xdc, 0xe8, 0x56, 0xd4, 0x99, 0xd6, 0xf4, 0xed, 0xcd, 0x95, 0xfc, 0x41, 0xbe, 0x5e, 0x3f, 0xdd, - 0x13, 0x96, 0xeb, 0xe9, 0x9a, 0xd9, 0xe6, 0x4a, 0xfe, 0x20, 0x77, 0x54, 0xb5, 0x75, 0x21, 0x1d, - 0x35, 0xd5, 0x1e, 0x31, 0x6f, 0x68, 0xf1, 0xd4, 0x43, 0xf7, 0x61, 0x36, 0xc2, 0x21, 0x94, 0x22, - 0x0a, 0x27, 0x2e, 0x65, 0x70, 0x3c, 0x34, 0xc9, 0x98, 0x81, 0xd2, 0x14, 0x54, 0x0d, 0x4d, 0xc9, - 0x0e, 0xe1, 0xb1, 0xec, 0x5b, 0x29, 0x2d, 0x2d, 0x79, 0x40, 0xda, 0xd6, 0x9a, 0x3c, 0x20, 0x7d, - 0x2f, 0x2c, 0xb4, 0x9e, 0x54, 0x0b, 0x4a, 0x5a, 0x4f, 0xb6, 0x45, 0x26, 0xad, 0x47, 0xd3, 0xb5, - 0x0a, 0xa3, 0xbc, 0xd2, 0x67, 0x92, 0x51, 0x3e, 0xd9, 0xc9, 0x92, 0x51, 0x3e, 0xd5, 0x92, 0x0a, - 0x45, 0xcb, 0x76, 0x52, 0x72, 0xdc, 0x4d, 0x94, 0xf0, 0x39, 0xee, 0x26, 0xab, 0xea, 0xe7, 0xd0, - 0xd0, 0xb6, 0x12, 0xd0, 0xfb, 0x62, 0x5e, 0x5e, 0xdb, 0xc3, 0x5c, 0x2d, 0x26, 0xe0, 0xec, 0x66, - 0x6b, 0x79, 0xc9, 0xae, 0xb6, 0xe3, 0x20, 0xd9, 0xcd, 0x69, 0x02, 0x3c, 0x84, 0x79, 0xb5, 0xce, - 0x96, 0xa6, 0x98, 0xaa, 0xf3, 0xa5, 0x29, 0x66, 0x8a, 0xf2, 0x3d, 0xa8, 0xa7, 0x2a, 0x3b, 0x79, - 0x94, 0xd9, 0xea, 0x53, 0x1e, 0xa5, 0xae, 0x18, 0x7c, 0x0e, 0x0d, 0x6d, 0xa5, 0x28, 0x35, 0x97, - 0x57, 0xd3, 0x4a, 0xcd, 0xe5, 0x17, 0x9a, 0x0f, 0xa0, 0x2a, 0xd1, 0xd2, 0xf6, 0xd5, 0xaa, 0x4c, - 0xda, 0x7e, 0xb2, 0x78, 0xda, 0x83, 0x7a, 0x6a, 0x51, 0x29, 0x5d, 0xb6, 0xb2, 0x93, 0xd2, 0xe9, - 0xca, 0xb0, 0x1f, 0xa4, 0x6f, 0x39, 0x51, 0xa5, 0x82, 0x56, 0x53, 0xe9, 0x38, 0x53, 0x71, 0x99, - 0x77, 0x2e, 0xa0, 0xe0, 0xa9, 0x3b, 0xa7, 0x84, 0x50, 0x53, 0x77, 0x4e, 0x5d, 0xa3, 0xa6, 0xee, - 0xdc, 0x2a, 0x84, 0xfb, 0x4a, 0xea, 0x72, 0xae, 0xfa, 0x4a, 0xb6, 0x62, 0x50, 0x7d, 0x45, 0x77, - 0xab, 0x3f, 0x06, 0x94, 0xbd, 0xf9, 0xc9, 0x25, 0xb5, 0x17, 0x6f, 0xb9, 0xa4, 0xfe, 0xca, 0xb8, - 0x59, 0x7f, 0x5e, 0x5b, 0xe3, 0x3f, 0x40, 0x7f, 0xcc, 0xbe, 0x2f, 0xaf, 0xb2, 0x7b, 0xe7, 0xfd, - 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x74, 0xbf, 0x1e, 0x89, 0x1c, 0x2d, 0x00, 0x00, +var fileDescriptor_group_5328f8e912d7cdbf = []byte{ + // 2512 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x41, 0x6f, 0x1c, 0x49, + 0xf5, 0x57, 0xdb, 0x9e, 0xd8, 0x7e, 0xb6, 0x33, 0x76, 0x39, 0x76, 0x26, 0x1d, 0x6f, 0xe2, 0xd4, + 0xe6, 0xbf, 0xff, 0x08, 0x82, 0x03, 0x8e, 0x14, 0x01, 0x8b, 0x08, 0xb1, 0x9d, 0xc4, 0x4e, 0x62, + 0x9b, 0xf4, 0x64, 0x41, 0x8a, 0x84, 0x42, 0x67, 0xba, 0x66, 0x18, 0x3c, 0xd3, 0xdd, 0xee, 0xea, + 0x49, 0x02, 0x97, 0x15, 0x17, 0xa4, 0x45, 0x48, 0x80, 0x90, 0x38, 0x2d, 0x82, 0x3d, 0xc1, 0x01, + 0x24, 0x0e, 0x70, 0x46, 0xdc, 0x39, 0x23, 0x71, 0xe5, 0x0b, 0xf0, 0x15, 0x50, 0x57, 0x55, 0x57, + 0x57, 0x77, 0x55, 0xb7, 0x27, 0xed, 0x64, 0x73, 0x69, 0xa9, 0xaa, 0x5e, 0x55, 0xfd, 0xde, 0xab, + 0x7a, 0xef, 0xd5, 0x7b, 0xaf, 0x61, 0xa9, 0x17, 0x05, 0xa3, 0xf0, 0x06, 0xfb, 0x6e, 0x84, 0x51, + 0x10, 0x07, 0xa8, 0xc1, 0x1a, 0xf6, 0x95, 0xc3, 0x90, 0xf8, 0xcf, 0xf6, 0xf6, 0x6f, 0x84, 0x47, + 0xbd, 0x1b, 0x6c, 0xe4, 0x06, 0xf5, 0x8e, 0x9e, 0xbd, 0xa4, 0x37, 0x5e, 0x52, 0x4e, 0x69, 0xff, + 0x7f, 0x39, 0x49, 0xe4, 0x86, 0x21, 0x89, 0x04, 0x21, 0xfe, 0x26, 0xc0, 0x76, 0x30, 0x1c, 0x06, + 0xbe, 0x43, 0x68, 0x88, 0x5a, 0x30, 0x7d, 0x37, 0x8a, 0xb6, 0x03, 0x8f, 0xb4, 0xac, 0x75, 0xeb, + 0x5a, 0xc3, 0x49, 0x9b, 0x68, 0x15, 0xce, 0xdc, 0x8d, 0xa2, 0x7d, 0xda, 0x6b, 0x4d, 0xac, 0x5b, + 0xd7, 0x66, 0x1d, 0xd1, 0xc2, 0x0f, 0x00, 0xdd, 0x4f, 0x40, 0xdd, 0xf1, 0xbc, 0x7d, 0x32, 0x7c, + 0x4e, 0xa2, 0x3d, 0xbf, 0x1b, 0x24, 0xd4, 0x1f, 0x51, 0x12, 0xed, 0xed, 0xb0, 0x65, 0x66, 0x1d, + 0xd1, 0x42, 0x6b, 0x30, 0xeb, 0x04, 0x03, 0xf2, 0x88, 0xbc, 0x20, 0x03, 0xb6, 0x50, 0xc3, 0xc9, + 0x3a, 0xf0, 0x7f, 0x2d, 0x38, 0xbb, 0x1d, 0x11, 0x37, 0x26, 0x6c, 0x49, 0x87, 0x1c, 0xa3, 0x3b, + 0x70, 0x76, 0xcf, 0xef, 0xc7, 0x7c, 0xe9, 0x47, 0x7d, 0x1a, 0xb7, 0xac, 0xf5, 0xc9, 0x6b, 0x73, + 0x9b, 0x17, 0x36, 0xb8, 0x5c, 0xf4, 0xbd, 0x9d, 0xc2, 0x04, 0xf4, 0x75, 0x98, 0x65, 0x54, 0xc9, + 0x20, 0xdb, 0x73, 0x6e, 0x73, 0x6d, 0x83, 0x92, 0xe8, 0x05, 0x89, 0x9e, 0xb9, 0x61, 0xff, 0x59, + 0xe8, 0x46, 0xee, 0x90, 0x6e, 0x48, 0x1a, 0x27, 0x23, 0x47, 0xeb, 0x30, 0x77, 0x18, 0x92, 0xc8, + 0x8d, 0xfb, 0x81, 0xbf, 0xb7, 0xd3, 0x9a, 0x64, 0xcc, 0xa8, 0x5d, 0xc8, 0x86, 0x99, 0xc3, 0x50, + 0xf0, 0x3a, 0xc5, 0x86, 0x65, 0x9b, 0xcd, 0x7e, 0xe9, 0x93, 0x48, 0x0c, 0x37, 0xc4, 0xec, 0xac, + 0x0b, 0x7f, 0x0c, 0xcd, 0x1c, 0xc3, 0x75, 0x8e, 0x20, 0xcf, 0xe0, 0xe4, 0x6b, 0x31, 0x88, 0x23, + 0x58, 0xbc, 0x4f, 0x62, 0xd6, 0xa6, 0x6c, 0x8c, 0x1c, 0x27, 0xb0, 0x39, 0xc1, 0x8e, 0x14, 0xf8, + 0xac, 0xa3, 0x76, 0x15, 0xc5, 0x32, 0x51, 0x2d, 0x96, 0xc9, 0xbc, 0x58, 0xf0, 0x27, 0x16, 0x2c, + 0x15, 0x36, 0xad, 0xc5, 0xf7, 0x16, 0x2c, 0x48, 0x46, 0x18, 0xd2, 0x49, 0x76, 0x35, 0xaa, 0x79, + 0xcf, 0x4f, 0xc1, 0xbf, 0xb5, 0xa0, 0xd9, 0x16, 0x58, 0x52, 0xfe, 0x1f, 0x41, 0xb3, 0x97, 0xb6, + 0xef, 0x05, 0x51, 0x9b, 0xc4, 0x0c, 0xd1, 0xdc, 0x26, 0xae, 0x5a, 0x99, 0x53, 0x3a, 0xc5, 0xa9, + 0x39, 0x49, 0x4c, 0x18, 0x2e, 0x48, 0xe5, 0xf5, 0xc2, 0x77, 0x61, 0x31, 0x0f, 0x8f, 0x86, 0xe8, + 0x2b, 0xaa, 0xca, 0x0a, 0x68, 0x4b, 0x42, 0x1f, 0xb2, 0x01, 0x47, 0x21, 0xc2, 0x3f, 0x06, 0x3b, + 0x95, 0xf8, 0x9d, 0x30, 0x1c, 0xf4, 0x3b, 0x6c, 0xfd, 0x44, 0x02, 0x09, 0xc3, 0x2a, 0x44, 0xab, + 0x1a, 0xa2, 0xe1, 0xa8, 0x2f, 0x01, 0xdc, 0x8b, 0x82, 0x61, 0xee, 0xb0, 0x95, 0x1e, 0xfc, 0xa9, + 0x05, 0x17, 0x4b, 0x37, 0xaf, 0x75, 0xf0, 0x0f, 0x61, 0x31, 0x35, 0x10, 0x23, 0x42, 0x63, 0xe5, + 0xec, 0x2f, 0x97, 0x9d, 0x90, 0x20, 0x75, 0xb4, 0x89, 0x38, 0x86, 0xb5, 0xfb, 0x24, 0x4e, 0xb0, + 0x3a, 0xe4, 0xd8, 0x20, 0x9c, 0x32, 0x53, 0x76, 0xba, 0x73, 0xfd, 0x9d, 0x05, 0xef, 0x55, 0x6c, + 0x5b, 0xeb, 0x94, 0x8d, 0x72, 0x99, 0xa8, 0x2b, 0x97, 0xbf, 0x5b, 0xb0, 0xf2, 0x24, 0x72, 0x7d, + 0xda, 0x25, 0x11, 0x1b, 0x64, 0x76, 0x2b, 0x91, 0x48, 0x0b, 0xa6, 0x85, 0x31, 0x10, 0x22, 0x49, + 0x9b, 0xe8, 0x03, 0x38, 0x7b, 0x38, 0xf0, 0x54, 0x9b, 0xc7, 0x25, 0x53, 0xe8, 0x4d, 0xe8, 0x0e, + 0xc8, 0x4b, 0x95, 0x8e, 0x8b, 0xa8, 0xd0, 0x5b, 0x94, 0xe3, 0x54, 0xb5, 0x9d, 0x69, 0x14, 0xec, + 0xcc, 0x43, 0x58, 0x35, 0x31, 0x50, 0x4f, 0x83, 0xfe, 0x69, 0xc1, 0xfc, 0x83, 0xa0, 0xef, 0x4b, + 0xcf, 0x54, 0x2e, 0x85, 0x4b, 0x00, 0x0e, 0x39, 0xde, 0x27, 0x94, 0xba, 0x3d, 0x22, 0x24, 0xa0, + 0xf4, 0x54, 0xd9, 0xc6, 0x31, 0x38, 0xbe, 0x04, 0x90, 0xe0, 0x68, 0x07, 0xa3, 0xa8, 0x43, 0x18, + 0xcf, 0x0d, 0x47, 0xe9, 0x41, 0x57, 0x61, 0x61, 0xcf, 0x7f, 0xd1, 0x8f, 0xa5, 0x68, 0xcf, 0xb0, + 0x35, 0xf2, 0x9d, 0x78, 0x0b, 0x16, 0x14, 0x6e, 0xea, 0x89, 0xe4, 0xdf, 0x89, 0x62, 0x17, 0xb4, + 0x3a, 0x19, 0x08, 0x7c, 0x4a, 0x84, 0x1f, 0x51, 0x79, 0xb1, 0xaa, 0x4f, 0xaf, 0xa8, 0x43, 0x8a, + 0x7c, 0x27, 0x35, 0xf9, 0x2a, 0x06, 0x67, 0xaa, 0x68, 0x70, 0x92, 0xf1, 0x5d, 0xd7, 0xf7, 0x06, + 0xc4, 0x4b, 0x4c, 0x07, 0xbf, 0x15, 0x4a, 0x0f, 0xc2, 0x30, 0xcf, 0x5b, 0x0e, 0xa1, 0xa3, 0x41, + 0xcc, 0x04, 0xd4, 0x70, 0x72, 0x7d, 0xf8, 0x31, 0xac, 0x95, 0xb3, 0x56, 0x4f, 0x5c, 0x5d, 0x98, + 0x7f, 0x3c, 0xea, 0xc7, 0x63, 0x5c, 0xa0, 0xd3, 0xb9, 0xd7, 0x2d, 0x58, 0x50, 0xf6, 0xa9, 0x87, + 0xf5, 0x33, 0x0b, 0x56, 0x52, 0x9b, 0x9d, 0x3d, 0xa5, 0xaa, 0x51, 0x9f, 0xca, 0x20, 0x26, 0x66, + 0xf6, 0x5e, 0x7f, 0x10, 0x93, 0x88, 0x1d, 0x68, 0xc3, 0x11, 0xad, 0x64, 0xbf, 0x03, 0xf2, 0x2a, + 0x6e, 0x93, 0x63, 0x71, 0xd7, 0xd3, 0x26, 0xfe, 0x93, 0x05, 0xab, 0x26, 0x8c, 0xb5, 0x5c, 0xca, + 0x3d, 0x80, 0x61, 0xf6, 0xc6, 0xe4, 0xce, 0xe4, 0x83, 0x32, 0xa3, 0xc9, 0x77, 0xbb, 0x37, 0x1a, + 0x0c, 0x98, 0x4f, 0x56, 0x66, 0x26, 0x3b, 0xfb, 0x02, 0x2e, 0xe7, 0x23, 0x6d, 0xe2, 0x5f, 0x6a, + 0x70, 0xe5, 0x83, 0xab, 0xd2, 0x94, 0x28, 0xb0, 0x26, 0xd8, 0x4b, 0x4c, 0xdd, 0xee, 0x54, 0xa6, + 0x04, 0xff, 0xda, 0x82, 0xf3, 0x46, 0x48, 0xef, 0x52, 0x84, 0xf8, 0x2f, 0x16, 0xa0, 0x87, 0xfd, + 0xce, 0x91, 0x42, 0x57, 0x2d, 0xa4, 0x2f, 0xc0, 0x62, 0x42, 0x4f, 0x3c, 0xce, 0xb8, 0x22, 0x2a, + 0xad, 0x3f, 0x01, 0xef, 0x10, 0x97, 0x06, 0xbe, 0x10, 0x97, 0x68, 0x15, 0x85, 0xd5, 0xa8, 0x56, + 0xb9, 0x33, 0x05, 0x95, 0xfb, 0x10, 0x66, 0xf7, 0xbc, 0x4d, 0x6e, 0x3a, 0x4a, 0x1f, 0x0c, 0x6c, + 0x6b, 0x66, 0x70, 0x78, 0xe0, 0x23, 0x5a, 0xf8, 0x63, 0x58, 0xd6, 0xd8, 0xad, 0x75, 0x00, 0xb7, + 0x60, 0x41, 0xa2, 0x50, 0xce, 0x60, 0x51, 0xa8, 0xba, 0x1c, 0x73, 0xf2, 0x64, 0x78, 0xc4, 0x74, + 0x3d, 0x71, 0x07, 0xc4, 0x63, 0x28, 0x52, 0x5d, 0xcf, 0x1b, 0x5a, 0x4b, 0x33, 0xb4, 0xeb, 0x30, + 0x17, 0xe8, 0x76, 0x2a, 0x18, 0xd3, 0x4e, 0xfd, 0x94, 0x2b, 0x84, 0xb6, 0xef, 0xa9, 0x62, 0xa0, + 0xb1, 0xe3, 0x80, 0x8c, 0x1c, 0xff, 0xd5, 0x82, 0x73, 0xdc, 0x3b, 0x26, 0xc8, 0x9e, 0x04, 0xd2, + 0x42, 0x9f, 0x6c, 0x87, 0xcb, 0x9d, 0x54, 0x76, 0xd1, 0xa6, 0x72, 0x17, 0xed, 0x3a, 0x2c, 0xf1, + 0xbd, 0xd4, 0xdb, 0xda, 0x60, 0xb7, 0x55, 0x1f, 0xa8, 0xbc, 0x74, 0x3f, 0xb1, 0x60, 0xc5, 0x00, + 0xfb, 0x73, 0xbd, 0x3a, 0x9f, 0x5a, 0x70, 0x4e, 0xbe, 0xed, 0x07, 0x83, 0x71, 0xb4, 0xf5, 0xd4, + 0x6e, 0xe2, 0xb0, 0xdb, 0xa5, 0x24, 0x4e, 0xdd, 0x04, 0x6f, 0xa1, 0x73, 0xd0, 0xd8, 0x0e, 0x46, + 0x7e, 0x2c, 0x9c, 0x04, 0x6f, 0xe0, 0x5f, 0x29, 0x6e, 0x4c, 0x81, 0xf7, 0x4e, 0xcd, 0xdb, 0x6f, + 0x2c, 0x98, 0xd9, 0xde, 0x6f, 0x33, 0xb2, 0x7c, 0xe8, 0x6e, 0xbd, 0x5e, 0x6e, 0xe2, 0x1a, 0x34, + 0xf9, 0x5e, 0x2e, 0x8d, 0x49, 0x74, 0xe0, 0x0e, 0xd3, 0xb7, 0x66, 0xb1, 0x3b, 0x79, 0x12, 0x2a, + 0x5d, 0x7b, 0x9e, 0x10, 0x6c, 0xbe, 0x33, 0xf1, 0x06, 0x73, 0xa9, 0xb0, 0x92, 0x23, 0x5c, 0x13, + 0xd8, 0xd8, 0xca, 0xfc, 0x10, 0xb3, 0x0e, 0xb4, 0x03, 0xf0, 0x6d, 0xb7, 0xd7, 0xf7, 0xd9, 0xc1, + 0x88, 0xb4, 0xca, 0x55, 0x03, 0x74, 0x11, 0x52, 0x64, 0xb4, 0x8e, 0x32, 0x6f, 0x8c, 0x40, 0xe9, + 0x33, 0x0b, 0xe6, 0x33, 0x54, 0x34, 0x44, 0x5f, 0x82, 0xd9, 0x54, 0x7c, 0x54, 0x24, 0x83, 0x9a, + 0xe9, 0x63, 0x46, 0xf4, 0x3b, 0x19, 0xc5, 0x1b, 0xc2, 0x29, 0x65, 0x31, 0x1a, 0x52, 0x86, 0xb2, + 0xe1, 0x64, 0x1d, 0xf8, 0x45, 0x06, 0x91, 0x26, 0x92, 0xcb, 0xef, 0x69, 0xbd, 0x19, 0xd9, 0xe8, + 0xd6, 0x07, 0xff, 0xde, 0x82, 0x05, 0x65, 0xe3, 0x77, 0x25, 0x1c, 0x1b, 0x66, 0x52, 0x59, 0x08, + 0xd9, 0xc8, 0x36, 0x3e, 0xcc, 0x52, 0x3d, 0x06, 0xe3, 0xe0, 0xe5, 0x8d, 0x83, 0x37, 0x06, 0xcf, + 0x47, 0xb0, 0xc2, 0x9b, 0x3c, 0x65, 0xd6, 0x8e, 0xdd, 0x78, 0x44, 0xab, 0x17, 0x5d, 0x85, 0x33, + 0x9c, 0x2c, 0x75, 0xbc, 0xbc, 0x35, 0xc6, 0xe5, 0x6b, 0xc1, 0xaa, 0x69, 0x33, 0x1a, 0x26, 0xce, + 0x0b, 0x89, 0x21, 0x16, 0xc3, 0x07, 0x03, 0x72, 0x22, 0x08, 0x66, 0xe4, 0xbc, 0xd4, 0xac, 0xf0, + 0x56, 0x3e, 0x23, 0x3a, 0x59, 0xc8, 0x88, 0x8e, 0xf1, 0x86, 0x5b, 0x81, 0x65, 0x0d, 0x07, 0x0d, + 0xf1, 0x23, 0x38, 0xbb, 0x43, 0x06, 0x44, 0xc9, 0xa4, 0x9e, 0x46, 0xe8, 0x4b, 0xd0, 0xcc, 0xad, + 0x46, 0x43, 0xbc, 0x0f, 0xcd, 0xf4, 0x60, 0xb7, 0x7e, 0xb4, 0xe7, 0x9d, 0x76, 0x87, 0xdb, 0x59, + 0x1e, 0x92, 0x2f, 0x47, 0x43, 0xf4, 0xc5, 0xcc, 0x50, 0x0a, 0x25, 0xd2, 0xee, 0xb2, 0x24, 0xc0, + 0x7f, 0xd3, 0x22, 0x16, 0xba, 0xbd, 0xdf, 0xae, 0x86, 0x65, 0xc3, 0x4c, 0x22, 0x34, 0xc5, 0x74, + 0xca, 0x76, 0x41, 0x35, 0x26, 0xdf, 0x8c, 0x0e, 0x1b, 0xce, 0xef, 0x1f, 0x7a, 0x58, 0xc0, 0x70, + 0xd3, 0x10, 0x7d, 0x0b, 0xa6, 0xb9, 0xdf, 0x48, 0x55, 0x79, 0x5c, 0x77, 0x93, 0x4e, 0x43, 0x77, + 0x0d, 0xfa, 0xfd, 0x7f, 0x46, 0x26, 0x78, 0x68, 0x5b, 0xc2, 0xc5, 0x25, 0x00, 0xbe, 0x83, 0x62, + 0xfe, 0x94, 0x1e, 0xfc, 0x73, 0x0b, 0x5a, 0x0e, 0x19, 0x06, 0x2f, 0xc8, 0x6b, 0x89, 0xbf, 0x05, + 0xd3, 0x5c, 0x09, 0xa8, 0x78, 0xae, 0xa7, 0xcd, 0xd7, 0x4a, 0xbb, 0x7b, 0x85, 0xb4, 0xbb, 0x87, + 0xf7, 0xe1, 0x42, 0x09, 0x1a, 0xee, 0xf8, 0xe9, 0xa8, 0xd3, 0x21, 0x94, 0x8a, 0xc4, 0x76, 0xda, + 0x4c, 0x34, 0xb4, 0xeb, 0xf6, 0x07, 0xc4, 0x13, 0x68, 0x44, 0x0b, 0x7f, 0x62, 0xc1, 0xca, 0x1d, + 0xcf, 0x7b, 0x1b, 0xac, 0x79, 0x3a, 0x6b, 0x5e, 0x25, 0x6b, 0x0f, 0x60, 0xd5, 0x04, 0xa5, 0x16, + 0x5f, 0x7d, 0x68, 0xee, 0xf4, 0xe9, 0xb0, 0x4f, 0xa9, 0xb4, 0x11, 0x36, 0xcc, 0x04, 0x85, 0x44, + 0x70, 0x10, 0x8e, 0xfd, 0xd8, 0x6f, 0xc1, 0x74, 0x2f, 0xff, 0x18, 0x16, 0x4d, 0x7c, 0x17, 0x16, + 0xf3, 0x5b, 0xf1, 0xac, 0x44, 0x67, 0x9c, 0xac, 0x44, 0x46, 0x84, 0xff, 0x68, 0x01, 0xda, 0x1f, + 0xc5, 0xa4, 0xe0, 0x4e, 0xde, 0x12, 0xea, 0x44, 0x70, 0x23, 0x35, 0xc7, 0x24, 0x5a, 0x08, 0xc3, + 0xfc, 0x70, 0x14, 0x13, 0xaf, 0x4d, 0x3a, 0x81, 0xef, 0x51, 0xf6, 0xe4, 0x5c, 0x70, 0x72, 0x7d, + 0x78, 0x17, 0x96, 0x35, 0xa4, 0xf5, 0x98, 0xfe, 0x99, 0x05, 0xad, 0x6d, 0xd7, 0xef, 0x90, 0xc1, + 0xbb, 0x67, 0x1d, 0x1f, 0xc0, 0x85, 0x12, 0x2c, 0xf5, 0x98, 0xeb, 0xc2, 0xbc, 0x5c, 0xe9, 0x6d, + 0x5e, 0xc0, 0x2d, 0x58, 0x50, 0xf6, 0xa9, 0x87, 0x75, 0x00, 0xa8, 0xc0, 0xfb, 0xdb, 0x44, 0xbc, + 0x0b, 0xcb, 0xda, 0x6e, 0xf5, 0x70, 0xff, 0xc1, 0x82, 0x0b, 0xed, 0x9c, 0x87, 0x39, 0xe8, 0x77, + 0x8e, 0x7c, 0x77, 0x98, 0xbe, 0x58, 0x7a, 0xf9, 0x40, 0xad, 0x97, 0x05, 0x6a, 0xbe, 0x20, 0x4c, + 0xbd, 0x63, 0xda, 0xce, 0x71, 0x3d, 0x59, 0xcd, 0xf5, 0x94, 0xce, 0x75, 0x76, 0xbb, 0x1a, 0xb9, + 0xdb, 0x75, 0x08, 0x76, 0x19, 0xd0, 0x7a, 0x69, 0xcc, 0x88, 0x95, 0xbd, 0x78, 0x86, 0xa1, 0x3d, + 0x0a, 0x45, 0x1d, 0x20, 0x4d, 0x6f, 0x14, 0x80, 0x5a, 0x55, 0x40, 0x27, 0x72, 0x16, 0xa0, 0x82, + 0xfd, 0xc4, 0x19, 0x5e, 0x2c, 0xdd, 0xb4, 0xd6, 0x09, 0x9e, 0x2a, 0xb9, 0xf1, 0x92, 0x3d, 0x8b, + 0x32, 0x1c, 0x9f, 0x5b, 0x95, 0xf7, 0x17, 0xfc, 0x61, 0xa3, 0xed, 0x5c, 0x4f, 0x04, 0x6f, 0xa2, + 0xd6, 0xfb, 0x9f, 0x09, 0x58, 0xc9, 0xdf, 0x2f, 0x25, 0x01, 0x5b, 0xa2, 0x04, 0x35, 0x6e, 0xc0, + 0x18, 0x0a, 0xf0, 0x55, 0x45, 0xb5, 0x1a, 0x22, 0xea, 0xef, 0x05, 0x41, 0x6f, 0x40, 0xf8, 0x5f, + 0x19, 0xcf, 0x47, 0xdd, 0x8d, 0x76, 0x1c, 0xf5, 0xfd, 0xde, 0x77, 0xdc, 0xc1, 0x88, 0x28, 0x8a, + 0x77, 0x0b, 0xa6, 0xbb, 0x6e, 0x87, 0x7c, 0xe4, 0x3c, 0x62, 0xf9, 0xa0, 0x93, 0x26, 0xa6, 0xc4, + 0xe8, 0x6b, 0x30, 0x1b, 0xc9, 0x30, 0x63, 0x9a, 0xcd, 0xbc, 0xa8, 0xcd, 0xdc, 0xf3, 0xe3, 0x9b, + 0x9b, 0x7c, 0x62, 0x46, 0x8d, 0xae, 0xc3, 0x04, 0x79, 0xd5, 0x9a, 0x19, 0x63, 0xb7, 0x09, 0xf2, + 0x0a, 0x3f, 0x84, 0x55, 0x93, 0x8c, 0xeb, 0xe9, 0xef, 0x71, 0x96, 0x9f, 0xbe, 0xf3, 0x9c, 0xc6, + 0x91, 0xdb, 0x89, 0x4f, 0x3e, 0x32, 0xf5, 0x68, 0x26, 0xaa, 0x8f, 0x66, 0x52, 0x3b, 0x1a, 0xfc, + 0x67, 0x0b, 0x5a, 0xe6, 0x3d, 0xeb, 0xd5, 0x64, 0xaf, 0x8b, 0xff, 0x78, 0xe4, 0x73, 0xf9, 0x39, + 0x89, 0x44, 0x1c, 0xaa, 0x0f, 0xa0, 0x2f, 0xc3, 0x72, 0x2f, 0x5f, 0xcf, 0xd8, 0x75, 0xe9, 0x0f, + 0x18, 0xce, 0x29, 0xc7, 0x34, 0xb4, 0xf9, 0xaf, 0x73, 0xc0, 0xff, 0x0a, 0x42, 0xdf, 0x80, 0xb9, + 0x4e, 0xf6, 0x2f, 0x09, 0x5a, 0x49, 0x71, 0xe5, 0x7e, 0xa8, 0xb1, 0x57, 0x4d, 0xdd, 0x34, 0x44, + 0xb7, 0x60, 0xf6, 0x87, 0x69, 0x41, 0x10, 0x2d, 0x0b, 0x22, 0xb5, 0xe0, 0x69, 0x9f, 0xd3, 0x3b, + 0xf9, 0xbc, 0xe3, 0xb4, 0xda, 0x24, 0xe7, 0xa9, 0x75, 0x2e, 0x39, 0x2f, 0x5f, 0x94, 0xda, 0x82, + 0x85, 0x9e, 0xfa, 0x0f, 0x08, 0x3a, 0x9f, 0xfe, 0xd1, 0x53, 0xf8, 0x1d, 0xc5, 0x6e, 0x99, 0x07, + 0x68, 0x88, 0x6e, 0xc3, 0x3c, 0x55, 0x7e, 0x8e, 0x40, 0x29, 0x6f, 0x85, 0x1f, 0x3a, 0xec, 0xf3, + 0xc6, 0x7e, 0x1a, 0xa2, 0xef, 0xc3, 0xf9, 0x9e, 0xf9, 0xcf, 0x04, 0x74, 0xa5, 0xb0, 0xab, 0xfe, + 0x67, 0x80, 0x8d, 0x4f, 0x22, 0xa1, 0x21, 0xea, 0xc2, 0x85, 0x5e, 0x59, 0x99, 0x1f, 0xbd, 0x9f, + 0x2d, 0x50, 0xfa, 0xff, 0x81, 0x7d, 0xf5, 0x64, 0x22, 0x1a, 0xa2, 0xc7, 0x80, 0x62, 0xad, 0xd6, + 0x8d, 0xd6, 0xc4, 0x5c, 0x63, 0x1d, 0xdf, 0x7e, 0xaf, 0x62, 0x94, 0x86, 0xa8, 0x03, 0xad, 0x5e, + 0x49, 0x09, 0x14, 0xe1, 0xdc, 0xef, 0x57, 0xc6, 0xf2, 0xaf, 0xfd, 0xfe, 0x89, 0x34, 0x1c, 0x77, + 0x4f, 0xab, 0xe1, 0x49, 0xdc, 0xc6, 0x12, 0xa4, 0xc4, 0x5d, 0x52, 0xfc, 0x7b, 0x02, 0xcb, 0x3d, + 0xbd, 0xa8, 0x85, 0xcc, 0xb3, 0xe4, 0x2d, 0xbb, 0x54, 0x35, 0x4c, 0x43, 0xb4, 0x0b, 0xcd, 0xa3, + 0x7c, 0x95, 0x06, 0xa5, 0xff, 0xa0, 0xe9, 0xc5, 0x2a, 0xdb, 0x2e, 0x1b, 0x92, 0x2c, 0x17, 0xca, + 0x1e, 0x2a, 0xcb, 0x7a, 0x25, 0x46, 0x65, 0xd9, 0x54, 0x2f, 0x39, 0x80, 0xa5, 0x7e, 0xb1, 0x12, + 0x80, 0x2e, 0xa6, 0xc9, 0x7b, 0x43, 0x69, 0xc3, 0x5e, 0x2b, 0x1f, 0xe4, 0xeb, 0xf5, 0x8a, 0x69, + 0x73, 0xb9, 0x9e, 0x29, 0xdf, 0x6f, 0xaf, 0x95, 0x0f, 0x72, 0x45, 0x55, 0xb3, 0x3b, 0x52, 0x51, + 0x0b, 0x19, 0x24, 0xfb, 0xbc, 0xb1, 0x9f, 0x86, 0xe8, 0x26, 0xcc, 0xa4, 0x7d, 0x08, 0x15, 0x88, + 0x92, 0x89, 0xcb, 0x5a, 0x1f, 0x37, 0x4d, 0xd2, 0x66, 0xa0, 0x22, 0x05, 0x55, 0x4d, 0x53, 0x3e, + 0x89, 0xfa, 0x58, 0xa6, 0xf6, 0x94, 0xac, 0x9f, 0x3c, 0x20, 0x63, 0xf6, 0x51, 0x1e, 0x90, 0x39, + 0x5d, 0x98, 0xdc, 0x9e, 0x42, 0x96, 0x4e, 0xde, 0x1e, 0x3d, 0x8b, 0x28, 0x6f, 0x8f, 0x21, 0xb1, + 0x97, 0x58, 0x79, 0x25, 0x15, 0x27, 0xad, 0x7c, 0x3e, 0xd9, 0x27, 0xad, 0x7c, 0x21, 0x6b, 0x97, + 0xb0, 0xa6, 0x27, 0x9b, 0x4a, 0xd4, 0x4d, 0x64, 0x39, 0x4a, 0xd4, 0x4d, 0x26, 0x1e, 0x9e, 0xc2, + 0x8a, 0x31, 0xdb, 0x82, 0x2e, 0x8b, 0x79, 0x65, 0x99, 0x21, 0x7b, 0xbd, 0x9a, 0x80, 0xc3, 0xd5, + 0xd3, 0x1d, 0x12, 0xae, 0x31, 0x29, 0x23, 0xe1, 0x96, 0xe4, 0x49, 0x6e, 0xc3, 0xbc, 0x9a, 0x8a, + 0x90, 0x57, 0xb1, 0x90, 0x0a, 0x91, 0x57, 0x51, 0xcb, 0x5b, 0xec, 0x42, 0xb3, 0x10, 0xfc, 0xca, + 0xa3, 0xd4, 0x03, 0x74, 0x79, 0x94, 0xa6, 0x78, 0xf9, 0x29, 0xac, 0x18, 0x83, 0x69, 0x29, 0xb9, + 0xb2, 0xb0, 0x5f, 0x4a, 0xae, 0x3c, 0x16, 0xbf, 0x05, 0xb3, 0xb2, 0x5b, 0xde, 0x7d, 0x35, 0x70, + 0x95, 0x77, 0x3f, 0x1f, 0x5f, 0xee, 0x42, 0xb3, 0xb0, 0xa8, 0xe4, 0x4e, 0x0f, 0x7e, 0x25, 0x77, + 0xa6, 0x48, 0xf5, 0x7b, 0xc5, 0x87, 0x60, 0x1a, 0xcc, 0xa1, 0xf5, 0x82, 0x3b, 0xd6, 0x82, 0x52, + 0xfb, 0xca, 0x09, 0x14, 0xdc, 0x75, 0x97, 0x44, 0x59, 0xaa, 0xeb, 0x2e, 0x09, 0xfd, 0x54, 0xd7, + 0x5d, 0x1a, 0xa8, 0x71, 0x5d, 0x29, 0xc4, 0x2f, 0xaa, 0xae, 0xe8, 0x41, 0x95, 0xaa, 0x2b, 0xa6, + 0xc0, 0xe7, 0x31, 0x20, 0xfd, 0x71, 0x2c, 0x97, 0x34, 0xc6, 0x26, 0x72, 0xc9, 0x92, 0x57, 0xf5, + 0x77, 0x95, 0x02, 0xac, 0xf2, 0x5c, 0x45, 0x45, 0x7f, 0x56, 0x78, 0x3f, 0xdb, 0x97, 0x2b, 0xc7, + 0x69, 0xb8, 0xd5, 0x7c, 0xba, 0xb0, 0xc1, 0x7f, 0x3e, 0xff, 0x90, 0x7d, 0x9f, 0x9f, 0x61, 0x6f, + 0xfe, 0x9b, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x8f, 0xec, 0x97, 0xb5, 0x98, 0x2e, 0x00, 0x00, } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index a2544e922..3d3158409 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -433,6 +433,19 @@ message SetGroupMemberInfoResp{ CommonResp CommonResp = 1; } +message GetGroupAbstractInfoReq{ + string groupID = 1; + string opUserID = 2; + string operationID = 3; +} + +message GetGroupAbstractInfoResp{ + CommonResp CommonResp = 1; + int32 groupMemberNumber = 2; + uint64 groupMemberListHash = 3; +} + + service group{ rpc createGroup(CreateGroupReq) returns(CreateGroupResp); rpc joinGroup(JoinGroupReq) returns(JoinGroupResp); @@ -471,7 +484,7 @@ service group{ rpc GetJoinedSuperGroupList(GetJoinedSuperGroupListReq) returns (GetJoinedSuperGroupListResp); rpc GetSuperGroupsInfo(GetSuperGroupsInfoReq) returns (GetSuperGroupsInfoResp); rpc SetGroupMemberInfo(SetGroupMemberInfoReq) returns (SetGroupMemberInfoResp); - + rpc GetGroupAbstractInfo(GetGroupAbstractInfoReq) returns (GetGroupAbstractInfoResp); } From 87c64bdb2b54484a11023ae9f30e4bc50d8e23aa Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 5 Aug 2022 14:42:39 +0800 Subject: [PATCH 037/230] del conversation bug fix --- internal/api/msg/del_msg.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/api/msg/del_msg.go b/internal/api/msg/del_msg.go index 2ae84505f..f52bf83ea 100644 --- a/internal/api/msg/del_msg.go +++ b/internal/api/msg/del_msg.go @@ -79,7 +79,7 @@ func DelSuperGroupMsg(c *gin.Context) { resp api.DelSuperGroupMsgResp ) rpcReq := &rpc.DelSuperGroupMsgReq{} - utils.CopyStructFields(req, &req) + utils.CopyStructFields(rpcReq, &req) if err := c.BindJSON(&req); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return @@ -140,8 +140,8 @@ func DelSuperGroupMsg(c *gin.Context) { client := rpc.NewMsgClient(etcdConn) log.Info(req.OperationID, "", "api DelSuperGroupMsg call, api call rpc...") - if req.IsAllDelete { - RpcResp, err := client.DelSuperGroupMsg(context.Background(),rpcReq) + if req.IsAllDelete { + RpcResp, err := client.DelSuperGroupMsg(context.Background(), rpcReq) if err != nil { log.NewError(req.OperationID, "call delete DelSuperGroupMsg rpc server failed", err.Error()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call DelSuperGroupMsg rpc server failed"}) @@ -152,7 +152,7 @@ func DelSuperGroupMsg(c *gin.Context) { resp.ErrMsg = RpcResp.ErrMsg log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp) c.JSON(http.StatusOK, resp) - }else{ + } else { RpcResp, err := client.SendMsg(context.Background(), &pbData) if err != nil { log.NewError(req.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) From 1dfe8f866a7d266209ecca00b8919ab69e64ada1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 5 Aug 2022 15:13:35 +0800 Subject: [PATCH 038/230] del conversation bug fix --- cmd/open_im_api/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index f042d3605..9ff203659 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -106,7 +106,7 @@ func main() { groupRouterGroup.POST("/cancel_mute_group", group.CancelMuteGroup) groupRouterGroup.POST("/set_group_member_nickname", group.SetGroupMemberNickname) groupRouterGroup.POST("/set_group_member_info", group.SetGroupMemberInfo) - groupRouterGroup.POST("/get_group_all_member_list_by_split", group.GetGroupAllMemberListBySplit) + //groupRouterGroup.POST("/get_group_all_member_list_by_split", group.GetGroupAllMemberListBySplit) } superGroupRouterGroup := r.Group("/super_group") { From ba5edabb2c575843502573db4ffc773064a5727a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 5 Aug 2022 15:16:43 +0800 Subject: [PATCH 039/230] del conversation bug fix --- internal/rpc/group/group.go | 4 ++++ pkg/common/db/RedisModel.go | 1 + 2 files changed, 5 insertions(+) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 8e279d82b..f318e03bb 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -34,6 +34,10 @@ type groupServer struct { etcdAddr []string } +func (s *groupServer) GetGroupAbstractInfo(c context.Context, req *pbGroup.GetGroupAbstractInfoReq) (*pbGroup.GetGroupAbstractInfoResp, error) { + panic("implement me") +} + func NewGroupServer(port int) *groupServer { log.NewPrivateLog(constant.LogFileName) return &groupServer{ diff --git a/pkg/common/db/RedisModel.go b/pkg/common/db/RedisModel.go index b4dfd6139..589999d4c 100644 --- a/pkg/common/db/RedisModel.go +++ b/pkg/common/db/RedisModel.go @@ -202,6 +202,7 @@ func (d *DataBases) GetMessageListBySeq(userID string, seqList []uint32, operati } return seqMsg, failedSeqList, errResult } + func (d *DataBases) SetMessageToCache(msgList []*pbChat.MsgDataToMQ, uid string, operationID string) error { ctx := context.Background() pipe := d.RDB.Pipeline() From 37799ca0bed1b30980f59a6973e8de84c5d022f8 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 5 Aug 2022 15:51:34 +0800 Subject: [PATCH 040/230] del conversation bug fix --- internal/rpc/msg/send_msg.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 11a646b8b..478800a95 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -70,14 +70,14 @@ func isMessageHasReadEnabled(pb *pbChat.SendMsgReq) (bool, int32, string) { } func messageVerification(data *pbChat.SendMsgReq) (bool, int32, string, []string) { - if utils.IsContain(data.MsgData.SendID, config.Config.Manager.AppManagerUid) { - return true, 0, "", nil - } - if data.MsgData.ContentType <= constant.NotificationEnd && data.MsgData.ContentType >= constant.NotificationBegin { - return true, 0, "", nil - } switch data.MsgData.SessionType { case constant.SingleChatType: + if utils.IsContain(data.MsgData.SendID, config.Config.Manager.AppManagerUid) { + return true, 0, "", nil + } + if data.MsgData.ContentType <= constant.NotificationEnd && data.MsgData.ContentType >= constant.NotificationBegin { + return true, 0, "", nil + } log.NewDebug(data.OperationID, config.Config.MessageVerify.FriendVerify) reqGetBlackIDListFromCache := &cacheRpc.GetBlackIDListFromCacheReq{UserID: data.MsgData.RecvID, OperationID: data.OperationID} etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, data.OperationID) @@ -157,6 +157,9 @@ func messageVerification(data *pbChat.SendMsgReq) (bool, int32, string, []string return false, cacheResp.CommonResp.ErrCode, cacheResp.CommonResp.ErrMsg, nil } if !token_verify.IsManagerUserID(data.MsgData.SendID) { + if data.MsgData.ContentType <= constant.NotificationEnd && data.MsgData.ContentType >= constant.NotificationBegin { + return true, 0, "", cacheResp.UserIDList + } if !utils.IsContain(data.MsgData.SendID, cacheResp.UserIDList) { //return returnMsg(&replay, pb, 202, "you are not in group", "", 0) return false, 202, "you are not in group", nil From d1ffa9b330d1d6ddc75d643d2f8e74571d6e0a97 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 5 Aug 2022 15:54:00 +0800 Subject: [PATCH 041/230] callback fix --- config/config.yaml | 4 ++ internal/demo/register/onboarding_process.go | 41 +++++++++++++------- internal/demo/register/set_password.go | 2 +- pkg/common/config/config.go | 8 +++- 4 files changed, 39 insertions(+), 16 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 7ef492d6f..6ffb11f92 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -731,6 +731,10 @@ demo: smtpPort: 25 #需开放此端口 出口方向 testDepartMentID: 001 imAPIURL: http://127.0.0.1:10002 + onboardProcess: false # 是否开启注册流程 + joinDepartmentIDList: [] # 用户注册进来默认加的部门ID列表 不填就随机 + joinDepartmentGroups: false # 注册是否加部门群 + oaNotification: false # 注册是否发送OA通知 rtc: signalTimeout: 35 diff --git a/internal/demo/register/onboarding_process.go b/internal/demo/register/onboarding_process.go index c87074ad9..5a10b6ec0 100644 --- a/internal/demo/register/onboarding_process.go +++ b/internal/demo/register/onboarding_process.go @@ -50,23 +50,38 @@ func onboardingProcess(operationID, userID, userName, faceURL, phoneNumber, emai if err := createOrganizationUser(operationID, userID, userName, phoneNumber, email); err != nil { log.NewError(operationID, utils.GetSelfFuncName(), "createOrganizationUser failed", err.Error()) } - departmentID, err := imdb.GetRandomDepartmentID() + var joinDepartmentIDList []string + if len(config.Config.Demo.JoinDepartmentIDList) == 0 { + departmentID, err := imdb.GetRandomDepartmentID() + if err != nil { + log.NewError(utils.GetSelfFuncName(), "GetRandomDepartmentID failed", err.Error()) + return + } + joinDepartmentIDList = []string{departmentID} + } else { + joinDepartmentIDList = config.Config.Demo.JoinDepartmentIDList + } - if err := joinTestDepartment(operationID, userID, departmentID); err != nil { - log.NewError(operationID, utils.GetSelfFuncName(), "joinTestDepartment failed", err.Error()) + for _, departmentID := range joinDepartmentIDList { + if err := joinTestDepartment(operationID, userID, departmentID); err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), "joinTestDepartment failed", err.Error()) + } } - log.NewInfo(operationID, utils.GetSelfFuncName(), "random departmentID", departmentID) - if err != nil { - log.NewError(utils.GetSelfFuncName(), "GetRandomDepartmentID failed", err.Error()) - return + + if config.Config.Demo.JoinDepartmentGroups { + for _, departmentID := range joinDepartmentIDList { + groupIDList, err := GetDepartmentGroupIDList(operationID, departmentID) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error()) + } + joinGroups(operationID, userID, userName, faceURL, groupIDList) + log.NewInfo(operationID, utils.GetSelfFuncName(), "fineshed") + } } - groupIDList, err := GetDepartmentGroupIDList(operationID, departmentID) - if err != nil { - log.NewError(operationID, utils.GetSelfFuncName(), err.Error()) + + if config.Config.Demo.OaNotification { + oaNotification(operationID, userID) } - joinGroups(operationID, userID, userName, faceURL, groupIDList) - log.NewInfo(operationID, utils.GetSelfFuncName(), "fineshed") - oaNotification(operationID, userID) } func createOrganizationUser(operationID, userID, userName, phoneNumber, email string) error { diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 89e746aaf..c6728edb4 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -107,7 +107,7 @@ func SetPassword(c *gin.Context) { } log.Info(params.OperationID, "end setPassword", account, params.Password) // demo onboarding - if params.UserID == "" { + if params.UserID == "" && config.Config.Demo.OnboardProcess { select { case Ch <- OnboardingProcessReq{ OperationID: params.OperationID, diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index f7d7d20f2..74c03ca4a 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -488,8 +488,12 @@ type config struct { SmtpAddr string `yaml:"smtpAddr"` SmtpPort int `yaml:"smtpPort"` } - TestDepartMentID string `yaml:"testDepartMentID"` - ImAPIURL string `yaml:"imAPIURL"` + TestDepartMentID string `yaml:"testDepartMentID"` + ImAPIURL string `yaml:"imAPIURL"` + OnboardProcess bool `yaml:"onboardProcess"` + JoinDepartmentIDList []string `yaml:"joinDepartmentIDList"` + JoinDepartmentGroups bool `yaml:"joinDepartmentGroups"` + OaNotification bool `yaml:"oaNotification"` } Rtc struct { SignalTimeout string `yaml:"signalTimeout"` From 403489865c57b9e3407f5462791f8de2e85c69d9 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 5 Aug 2022 16:43:23 +0800 Subject: [PATCH 042/230] del conversation bug fix --- internal/rpc/auth/auth.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index 7c5aa9168..c405f9acb 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -82,7 +82,7 @@ func (rpc *rpcAuth) ForceLogout(_ context.Context, req *pbAuth.ForceLogoutReq) ( } func (rpc *rpcAuth) forceKickOff(userID string, platformID int32, operationID string) error { - + return nil grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName) for _, v := range grpcCons { client := pbRelay.NewRelayClient(v) From 00bddd5e57ce327aed32ed6e1463ab8b637bb336 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 5 Aug 2022 17:01:08 +0800 Subject: [PATCH 043/230] fix bug --- pkg/base_info/group_api_struct.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 9afdcc042..896f40438 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -73,8 +73,8 @@ type GetGroupMemberListResp struct { type GetGroupAllMemberReq struct { GroupID string `json:"groupID" binding:"required"` OperationID string `json:"operationID" binding:"required"` - Offset int32 `json:"offset" binding:"required"` - Count int32 `json:"count" binding:"required"` + Offset int32 `json:"offset"` + Count int32 `json:"count"` } type GetGroupAllMemberResp struct { CommResp From faae01cb8af02e554bcdfd67813116f24583bc12 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 5 Aug 2022 18:38:25 +0800 Subject: [PATCH 044/230] fix bug --- pkg/common/db/rocks_cache/rocks_cache.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 9d91aad66..c23a8777c 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -245,6 +245,7 @@ func GetGroupMembersInfoFromCache(count, offset int32, groupID string) ([]*db.Gr groupMembers, err := GetGroupMemberInfoFromCache(groupID, userID) if err != nil { log.NewError("", utils.GetSelfFuncName(), err.Error(), groupID, userID) + continue } groupMemberList = append(groupMemberList, groupMembers) } From 4ba248a1018c007a6a5b5aaa4df5f5a9a2ece960 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 5 Aug 2022 18:56:00 +0800 Subject: [PATCH 045/230] fix bug --- cmd/open_im_api/docs/docs.go | 74 +++++++++++++++++++++++-------- cmd/open_im_api/docs/swagger.json | 74 +++++++++++++++++++++++-------- cmd/open_im_api/docs/swagger.yaml | 50 +++++++++++++++------ 3 files changed, 149 insertions(+), 49 deletions(-) diff --git a/cmd/open_im_api/docs/docs.go b/cmd/open_im_api/docs/docs.go index 183ab0bf4..fb401960c 100644 --- a/cmd/open_im_api/docs/docs.go +++ b/cmd/open_im_api/docs/docs.go @@ -155,13 +155,6 @@ const docTemplate = `{ "summary": "用户注册", "operationId": "UserRegister", "parameters": [ - { - "type": "string", - "description": "im token", - "name": "token", - "in": "header", - "required": true - }, { "description": "secret为openIM密钥, 详细见服务端config.yaml secret字段 \u003cbr\u003e platform为平台ID \u003cbr\u003e ex为拓展字段 \u003cbr\u003e gender为性别, 0为女, 1为男", "name": "req", @@ -209,13 +202,6 @@ const docTemplate = `{ "summary": "用户登录", "operationId": "UserToken", "parameters": [ - { - "type": "string", - "description": "im token", - "name": "token", - "in": "header", - "required": true - }, { "description": "secret为openIM密钥, 详细见服务端config.yaml secret字段 \u003cbr\u003e platform为平台ID", "name": "req", @@ -4596,7 +4582,6 @@ const docTemplate = `{ "Open_IM_internal_api_manage.OANotificationElem": { "type": "object", "required": [ - "notificationFaceURL", "notificationName", "notificationType", "text" @@ -5950,9 +5935,15 @@ const docTemplate = `{ "operationID" ], "properties": { + "count": { + "type": "integer" + }, "groupID": { "type": "string" }, + "offset": { + "type": "integer" + }, "operationID": { "type": "string" } @@ -6521,7 +6512,11 @@ const docTemplate = `{ ], "properties": { "roleLevel": { - "type": "integer" + "type": "integer", + "enum": [ + 1, + 3 + ] }, "userID": { "type": "string" @@ -6652,6 +6647,12 @@ const docTemplate = `{ "groupID": { "type": "string" }, + "inviterUserID": { + "type": "string" + }, + "joinSource": { + "type": "integer" + }, "operationID": { "type": "string" }, @@ -6751,6 +6752,9 @@ const docTemplate = `{ "sessionType" ], "properties": { + "businessOperationID": { + "type": "string" + }, "contentType": { "type": "integer" }, @@ -6760,6 +6764,9 @@ const docTemplate = `{ "isOnlineOnly": { "type": "boolean" }, + "notOfflinePush": { + "type": "boolean" + }, "offlinePushInfo": { "$ref": "#/definitions/server_api_params.OfflinePushInfo" }, @@ -6798,6 +6805,9 @@ const docTemplate = `{ "sessionType" ], "properties": { + "businessOperationID": { + "type": "string" + }, "contentType": { "type": "integer" }, @@ -6807,6 +6817,9 @@ const docTemplate = `{ "isOnlineOnly": { "type": "boolean" }, + "notOfflinePush": { + "type": "boolean" + }, "offlinePushInfo": { "$ref": "#/definitions/server_api_params.OfflinePushInfo" }, @@ -7063,7 +7076,6 @@ const docTemplate = `{ "required": [ "fromUserID", "operationID", - "remark", "toUserID" ], "properties": { @@ -7129,6 +7141,9 @@ const docTemplate = `{ "operationID" ], "properties": { + "applyMemberFriend": { + "type": "integer" + }, "ex": { "type": "string" }, @@ -7144,6 +7159,9 @@ const docTemplate = `{ "introduction": { "type": "string" }, + "lookMemberInfo": { + "type": "integer" + }, "needVerification": { "type": "integer" }, @@ -7747,7 +7765,6 @@ const docTemplate = `{ "internal_api_manage.OANotificationElem": { "type": "object", "required": [ - "notificationFaceURL", "notificationName", "notificationType", "text" @@ -8231,6 +8248,9 @@ const docTemplate = `{ "server_api_params.GroupInfo": { "type": "object", "properties": { + "applyMemberFriend": { + "type": "integer" + }, "createTime": { "type": "integer" }, @@ -8255,6 +8275,9 @@ const docTemplate = `{ "introduction": { "type": "string" }, + "lookMemberInfo": { + "type": "integer" + }, "memberCount": { "type": "integer" }, @@ -8264,6 +8287,12 @@ const docTemplate = `{ "notification": { "type": "string" }, + "notificationUpdateTime": { + "type": "integer" + }, + "notificationUserID": { + "type": "string" + }, "ownerUserID": { "type": "string" }, @@ -8287,6 +8316,9 @@ const docTemplate = `{ "groupID": { "type": "string" }, + "inviterUserID": { + "type": "string" + }, "joinSource": { "type": "integer" }, @@ -8331,6 +8363,12 @@ const docTemplate = `{ "handleUserID": { "type": "string" }, + "inviterUserID": { + "type": "string" + }, + "joinSource": { + "type": "integer" + }, "reqMsg": { "type": "string" }, diff --git a/cmd/open_im_api/docs/swagger.json b/cmd/open_im_api/docs/swagger.json index d93a390f8..dad0df3fe 100644 --- a/cmd/open_im_api/docs/swagger.json +++ b/cmd/open_im_api/docs/swagger.json @@ -147,13 +147,6 @@ "summary": "用户注册", "operationId": "UserRegister", "parameters": [ - { - "type": "string", - "description": "im token", - "name": "token", - "in": "header", - "required": true - }, { "description": "secret为openIM密钥, 详细见服务端config.yaml secret字段 \u003cbr\u003e platform为平台ID \u003cbr\u003e ex为拓展字段 \u003cbr\u003e gender为性别, 0为女, 1为男", "name": "req", @@ -201,13 +194,6 @@ "summary": "用户登录", "operationId": "UserToken", "parameters": [ - { - "type": "string", - "description": "im token", - "name": "token", - "in": "header", - "required": true - }, { "description": "secret为openIM密钥, 详细见服务端config.yaml secret字段 \u003cbr\u003e platform为平台ID", "name": "req", @@ -4588,7 +4574,6 @@ "Open_IM_internal_api_manage.OANotificationElem": { "type": "object", "required": [ - "notificationFaceURL", "notificationName", "notificationType", "text" @@ -5942,9 +5927,15 @@ "operationID" ], "properties": { + "count": { + "type": "integer" + }, "groupID": { "type": "string" }, + "offset": { + "type": "integer" + }, "operationID": { "type": "string" } @@ -6513,7 +6504,11 @@ ], "properties": { "roleLevel": { - "type": "integer" + "type": "integer", + "enum": [ + 1, + 3 + ] }, "userID": { "type": "string" @@ -6644,6 +6639,12 @@ "groupID": { "type": "string" }, + "inviterUserID": { + "type": "string" + }, + "joinSource": { + "type": "integer" + }, "operationID": { "type": "string" }, @@ -6743,6 +6744,9 @@ "sessionType" ], "properties": { + "businessOperationID": { + "type": "string" + }, "contentType": { "type": "integer" }, @@ -6752,6 +6756,9 @@ "isOnlineOnly": { "type": "boolean" }, + "notOfflinePush": { + "type": "boolean" + }, "offlinePushInfo": { "$ref": "#/definitions/server_api_params.OfflinePushInfo" }, @@ -6790,6 +6797,9 @@ "sessionType" ], "properties": { + "businessOperationID": { + "type": "string" + }, "contentType": { "type": "integer" }, @@ -6799,6 +6809,9 @@ "isOnlineOnly": { "type": "boolean" }, + "notOfflinePush": { + "type": "boolean" + }, "offlinePushInfo": { "$ref": "#/definitions/server_api_params.OfflinePushInfo" }, @@ -7055,7 +7068,6 @@ "required": [ "fromUserID", "operationID", - "remark", "toUserID" ], "properties": { @@ -7121,6 +7133,9 @@ "operationID" ], "properties": { + "applyMemberFriend": { + "type": "integer" + }, "ex": { "type": "string" }, @@ -7136,6 +7151,9 @@ "introduction": { "type": "string" }, + "lookMemberInfo": { + "type": "integer" + }, "needVerification": { "type": "integer" }, @@ -7739,7 +7757,6 @@ "internal_api_manage.OANotificationElem": { "type": "object", "required": [ - "notificationFaceURL", "notificationName", "notificationType", "text" @@ -8223,6 +8240,9 @@ "server_api_params.GroupInfo": { "type": "object", "properties": { + "applyMemberFriend": { + "type": "integer" + }, "createTime": { "type": "integer" }, @@ -8247,6 +8267,9 @@ "introduction": { "type": "string" }, + "lookMemberInfo": { + "type": "integer" + }, "memberCount": { "type": "integer" }, @@ -8256,6 +8279,12 @@ "notification": { "type": "string" }, + "notificationUpdateTime": { + "type": "integer" + }, + "notificationUserID": { + "type": "string" + }, "ownerUserID": { "type": "string" }, @@ -8279,6 +8308,9 @@ "groupID": { "type": "string" }, + "inviterUserID": { + "type": "string" + }, "joinSource": { "type": "integer" }, @@ -8323,6 +8355,12 @@ "handleUserID": { "type": "string" }, + "inviterUserID": { + "type": "string" + }, + "joinSource": { + "type": "integer" + }, "reqMsg": { "type": "string" }, diff --git a/cmd/open_im_api/docs/swagger.yaml b/cmd/open_im_api/docs/swagger.yaml index 08b433cd2..c9b99dfb2 100644 --- a/cmd/open_im_api/docs/swagger.yaml +++ b/cmd/open_im_api/docs/swagger.yaml @@ -38,7 +38,6 @@ definitions: videoElem: $ref: '#/definitions/Open_IM_internal_api_manage.VideoElem' required: - - notificationFaceURL - notificationName - notificationType - text @@ -910,8 +909,12 @@ definitions: type: object base_info.GetGroupAllMemberReq: properties: + count: + type: integer groupID: type: string + offset: + type: integer operationID: type: string required: @@ -1285,6 +1288,9 @@ definitions: base_info.GroupAddMemberInfo: properties: roleLevel: + enum: + - 1 + - 3 type: integer userID: type: string @@ -1372,6 +1378,10 @@ definitions: properties: groupID: type: string + inviterUserID: + type: string + joinSource: + type: integer operationID: type: string reqMessage: @@ -1436,12 +1446,16 @@ definitions: type: object base_info.ManagementBatchSendMsgReq: properties: + businessOperationID: + type: string contentType: type: integer groupID: type: string isOnlineOnly: type: boolean + notOfflinePush: + type: boolean offlinePushInfo: $ref: '#/definitions/server_api_params.OfflinePushInfo' operationID: @@ -1468,12 +1482,16 @@ definitions: type: object base_info.ManagementSendMsgReq: properties: + businessOperationID: + type: string contentType: type: integer groupID: type: string isOnlineOnly: type: boolean + notOfflinePush: + type: boolean offlinePushInfo: $ref: '#/definitions/server_api_params.OfflinePushInfo' operationID: @@ -1657,7 +1675,6 @@ definitions: required: - fromUserID - operationID - - remark - toUserID type: object base_info.SetFriendRemarkResp: @@ -1689,6 +1706,8 @@ definitions: type: object base_info.SetGroupInfoReq: properties: + applyMemberFriend: + type: integer ex: type: string faceURL: @@ -1699,6 +1718,8 @@ definitions: type: string introduction: type: string + lookMemberInfo: + type: integer needVerification: type: integer notification: @@ -2134,7 +2155,6 @@ definitions: videoElem: $ref: '#/definitions/internal_api_manage.VideoElem' required: - - notificationFaceURL - notificationName - notificationType - text @@ -2428,6 +2448,8 @@ definitions: type: object server_api_params.GroupInfo: properties: + applyMemberFriend: + type: integer createTime: type: integer creatorUserID: @@ -2444,12 +2466,18 @@ definitions: type: integer introduction: type: string + lookMemberInfo: + type: integer memberCount: type: integer needVerification: type: integer notification: type: string + notificationUpdateTime: + type: integer + notificationUserID: + type: string ownerUserID: type: string status: @@ -2465,6 +2493,8 @@ definitions: type: string groupID: type: string + inviterUserID: + type: string joinSource: type: integer joinTime: @@ -2494,6 +2524,10 @@ definitions: type: integer handleUserID: type: string + inviterUserID: + type: string + joinSource: + type: integer reqMsg: type: string reqTime: @@ -2702,11 +2736,6 @@ paths: description: 用户注册 operationId: UserRegister parameters: - - description: im token - in: header - name: token - required: true - type: string - description: secret为openIM密钥, 详细见服务端config.yaml secret字段
platform为平台ID
ex为拓展字段
gender为性别, 0为女, 1为男 in: body @@ -2739,11 +2768,6 @@ paths: description: 获取用户的token operationId: UserToken parameters: - - description: im token - in: header - name: token - required: true - type: string - description: secret为openIM密钥, 详细见服务端config.yaml secret字段
platform为平台ID in: body name: req From 2cf10fce3827d02d0ee7d7913b9bdac571509dfe Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 5 Aug 2022 19:10:08 +0800 Subject: [PATCH 046/230] del conversation bug fix --- internal/rpc/msg/send_msg.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 478800a95..a73f14016 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -29,6 +29,8 @@ import ( //When the number of group members is greater than this value,Online users will be sent first,Guaranteed service availability const GroupMemberNum = 500 +var ExcludeContentType = []int{constant.HasReadReceipt, constant.GroupHasReadReceipt} + type MsgCallBackReq struct { SendID string `json:"sendID"` RecvID string `json:"recvID"` @@ -546,6 +548,9 @@ func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType i case constant.ReceiveMessage: return true case constant.NotReceiveMessage: + if utils.IsContainInt(int(pb.MsgData.ContentType), ExcludeContentType) { + return true + } return false case constant.ReceiveNotNotifyMessage: if pb.MsgData.Options == nil { From 11f29280b1b155c152a68cb54394e2c03035b57d Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 8 Aug 2022 11:30:10 +0800 Subject: [PATCH 047/230] group hash --- cmd/open_im_api/docs/docs.go | 2 + cmd/open_im_api/docs/swagger.json | 2 + cmd/open_im_api/docs/swagger.yaml | 2 + cmd/open_im_api/main.go | 1 + go.mod | 4 +- go.sum | 20 +++- internal/api/group/group.go | 38 ++++++ internal/msg_transfer/logic/init.go | 4 +- internal/rpc/group/group.go | 145 ++++++++++++----------- internal/timed_task/clear_msg.go | 89 ++++++++++++++ internal/timed_task/init.go | 27 +---- internal/timed_task/timed_task.go | 37 +++--- pkg/base_info/group_api_struct.go | 11 ++ pkg/common/db/mongoModel.go | 41 +++++++ pkg/common/db/rocks_cache/rocks_cache.go | 49 +++++++- script/mongo-init.sh | 2 +- 16 files changed, 351 insertions(+), 123 deletions(-) create mode 100644 internal/timed_task/clear_msg.go diff --git a/cmd/open_im_api/docs/docs.go b/cmd/open_im_api/docs/docs.go index fb401960c..db9817fad 100644 --- a/cmd/open_im_api/docs/docs.go +++ b/cmd/open_im_api/docs/docs.go @@ -5931,7 +5931,9 @@ const docTemplate = `{ "base_info.GetGroupAllMemberReq": { "type": "object", "required": [ + "count", "groupID", + "offset", "operationID" ], "properties": { diff --git a/cmd/open_im_api/docs/swagger.json b/cmd/open_im_api/docs/swagger.json index dad0df3fe..e367d21cf 100644 --- a/cmd/open_im_api/docs/swagger.json +++ b/cmd/open_im_api/docs/swagger.json @@ -5923,7 +5923,9 @@ "base_info.GetGroupAllMemberReq": { "type": "object", "required": [ + "count", "groupID", + "offset", "operationID" ], "properties": { diff --git a/cmd/open_im_api/docs/swagger.yaml b/cmd/open_im_api/docs/swagger.yaml index c9b99dfb2..77f32fd30 100644 --- a/cmd/open_im_api/docs/swagger.yaml +++ b/cmd/open_im_api/docs/swagger.yaml @@ -918,7 +918,9 @@ definitions: operationID: type: string required: + - count - groupID + - offset - operationID type: object base_info.GetGroupAllMemberResp: diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 9ff203659..e63749da3 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -106,6 +106,7 @@ func main() { groupRouterGroup.POST("/cancel_mute_group", group.CancelMuteGroup) groupRouterGroup.POST("/set_group_member_nickname", group.SetGroupMemberNickname) groupRouterGroup.POST("/set_group_member_info", group.SetGroupMemberInfo) + groupRouterGroup.POST("/get_group_abstract_info", group.GetGroupAbstractInfo) //groupRouterGroup.POST("/get_group_all_member_list_by_split", group.GetGroupAllMemberListBySplit) } superGroupRouterGroup := r.Group("/super_group") diff --git a/go.mod b/go.mod index 568aee953..57dee2392 100644 --- a/go.mod +++ b/go.mod @@ -35,6 +35,7 @@ require ( github.com/pelletier/go-toml/v2 v2.0.2 // indirect github.com/pkg/errors v0.9.1 github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 + github.com/robfig/cron/v3 v3.0.1 github.com/sirupsen/logrus v1.8.1 github.com/stretchr/testify v1.7.2 github.com/swaggo/files v0.0.0-20220610200504-28940afbdbfe @@ -43,6 +44,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.428 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms v1.0.428 github.com/tencentyun/qcloud-cos-sts-sdk v0.0.0-20210325043845-84a0811633ca + github.com/xuri/excelize/v2 v2.6.0 go.etcd.io/etcd/api/v3 v3.5.4 go.etcd.io/etcd/client/v3 v3.5.4 go.mongodb.org/mongo-driver v1.8.3 @@ -50,7 +52,7 @@ require ( go.uber.org/multierr v1.7.0 // indirect go.uber.org/zap v1.19.1 // indirect golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e // indirect - golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb + golang.org/x/image v0.0.0-20211028202545-6944b10bf410 golang.org/x/net v0.0.0-20220622184535-263ec571b305 golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664 // indirect golang.org/x/tools v0.1.11 // indirect diff --git a/go.sum b/go.sum index 16b96bd44..161dba147 100644 --- a/go.sum +++ b/go.sum @@ -423,6 +423,8 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -481,8 +483,14 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM= +github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk= +github.com/richardlehane/msoleps v1.0.1 h1:RfrALnSNXzmXLbGct/P2b4xkFz4e8Gmj/0Vj9M9xC1o= +github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg= github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 h1:mZHayPoR0lNmnHyvtYjDeq0zlVHn9K/ZXoy17ylucdo= github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5/go.mod h1:GEXHk5HgEKCvEIIrSpFI3ozzG5xOKA2DVlEX/gGnewM= +github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= +github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -548,6 +556,12 @@ github.com/xdg-go/stringprep v1.0.2 h1:6iq84/ryjjeRmMJwxutI51F2GIPlP5BfTvXHeYjyh github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= github.com/xdg/scram v1.0.3/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= github.com/xdg/stringprep v1.0.3/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +github.com/xuri/efp v0.0.0-20220407160117-ad0f7a785be8 h1:3X7aE0iLKJ5j+tz58BpvIZkXNV7Yq4jC93Z/rbN2Fxk= +github.com/xuri/efp v0.0.0-20220407160117-ad0f7a785be8/go.mod h1:ybY/Jr0T0GTCnYjKqmdwxyxn2BQf2RcQIIvex5QldPI= +github.com/xuri/excelize/v2 v2.6.0 h1:m/aXAzSAqxgt74Nfd+sNzpzVKhTGl7+S9nbG4A57mF4= +github.com/xuri/excelize/v2 v2.6.0/go.mod h1:Q1YetlHesXEKwGFfeJn7PfEZz2IvHb6wdOeYjBxVcVs= +github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 h1:OAmKAfT06//esDdpi/DZ8Qsdt4+M5+ltca05dA5bG2M= +github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22/go.mod h1:WwHg+CVyzlv/TX9xqBFXEZAuxOPxn2k1GNHwG41IIUQ= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -602,6 +616,7 @@ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220408190544-5352b0902921/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e h1:T8NU3HyQ8ClP4SEE+KbFlg6n0NhuTsN4MyznaarGsZM= golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -616,8 +631,8 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb h1:fqpd0EBDzlHRCjiphRR5Zo/RSWWQlWv34418dnEixWk= -golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20211028202545-6944b10bf410 h1:hTftEOvwiOq2+O8k2D5/Q7COC7k5Qcrgc2TFURJYnvQ= +golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -691,6 +706,7 @@ golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220622184535-263ec571b305 h1:dAgbJ2SP4jD6XYfMNLVj0BF21jo2PjChrtGaAvF5M3I= golang.org/x/net v0.0.0-20220622184535-263ec571b305/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= diff --git a/internal/api/group/group.go b/internal/api/group/group.go index e79e781a8..13ee7c581 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -1272,3 +1272,41 @@ func SetGroupMemberInfo(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", resp) c.JSON(http.StatusOK, resp) } + +func GetGroupAbstractInfo(c *gin.Context) { + var ( + req api.GetGroupAbstractInfoReq + resp api.GetGroupAbstractInfoResp + ) + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + ok, opUserID, errInfo := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") + log.NewError(req.OperationID, errMsg) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + if etcdConn == nil { + errMsg := req.OperationID + "getcdv3.GetConn == nil" + log.NewError(req.OperationID, errMsg) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + client := rpc.NewGroupClient(etcdConn) + respPb, err := client.GetGroupAbstractInfo(context.Background(), &rpc.GetGroupAbstractInfoReq{ + GroupID: req.GroupID, + OpUserID: opUserID, + OperationID: req.OperationID, + }) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), " failed ", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + return +} diff --git a/internal/msg_transfer/logic/init.go b/internal/msg_transfer/logic/init.go index 38d0e5b66..44ce192a6 100644 --- a/internal/msg_transfer/logic/init.go +++ b/internal/msg_transfer/logic/init.go @@ -36,8 +36,8 @@ var ( func Init() { cmdCh = make(chan Cmd2Value, 10000) w = new(sync.Mutex) - persistentCH.Init() - historyCH.Init(cmdCh) + persistentCH.Init() // 订阅ws2mschat 消费到 mysql + historyCH.Init(cmdCh) // 订阅ws2mschat 如果可靠性存储 消费到 incrseq 再存入mongo 再push || 非可靠性 直接incr再push 初始化ws2mschat historyMongoCH.Init() onlineTopicStatus = OnlineTopicVacancy //offlineHistoryCH.Init(cmdCh) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index f318e03bb..42887c6fd 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -34,10 +34,6 @@ type groupServer struct { etcdAddr []string } -func (s *groupServer) GetGroupAbstractInfo(c context.Context, req *pbGroup.GetGroupAbstractInfoReq) (*pbGroup.GetGroupAbstractInfoResp, error) { - panic("implement me") -} - func NewGroupServer(port int) *groupServer { log.NewPrivateLog(constant.LogFileName) return &groupServer{ @@ -148,7 +144,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR if req.GroupInfo.GroupType != constant.SuperGroup { //to group member for _, user := range req.InitMemberList { - us, err := imdb.GetUserByUserID(user.UserID) + us, err := rocksCache.GetUserInfoFromCache(user.UserID) if err != nil { log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), user.UserID) continue @@ -168,7 +164,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } okUserIDList = append(okUserIDList, user.UserID) } - group, err := imdb.GetGroupInfoByGroupID(groupId) + group, err := rocksCache.GetGroupInfoFromCache(groupId) if err != nil { log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), groupId) resp.ErrCode = constant.ErrDB.ErrCode @@ -176,7 +172,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR return resp, nil } utils.CopyStructFields(resp.GroupInfo, group) - memberCount, err := imdb.GetGroupMemberNumByGroupID(groupId) + memberCount, err := rocksCache.GetGroupMemberNumFromCache(groupId) resp.GroupInfo.MemberCount = uint32(memberCount) if err != nil { log.NewError(req.OperationID, "GetGroupMemberNumByGroupID failed ", err.Error(), groupId) @@ -245,7 +241,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo var resp pbGroup.GetJoinedGroupListResp for _, v := range joinedGroupList { var groupNode open_im_sdk.GroupInfo - num, err := imdb.GetGroupMemberNumByGroupID(v) + num, err := rocksCache.GetGroupMemberNumFromCache(v) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), v) continue @@ -463,7 +459,12 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } - + if err := rocksCache.DelGroupMemberListHashFromCache(req.GroupID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), req.GroupID, err.Error()) + } + if err := rocksCache.DelGroupMemberNumFromCache(req.GroupID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + } if groupInfo.GroupType != constant.SuperGroup { for _, userID := range okUserIDList { err = rocksCache.DelJoinedGroupIDListFromCache(userID) @@ -687,6 +688,9 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } + if err := rocksCache.DelGroupMemberListHashFromCache(req.GroupID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), req.GroupID, err.Error()) + } if groupInfo.GroupType != constant.SuperGroup { for _, userID := range okUserIDList { @@ -698,7 +702,9 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) } } - + if err := rocksCache.DelGroupMemberNumFromCache(req.GroupID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + } chat.MemberKickedNotification(req, okUserIDList) } else { for _, userID := range okUserIDList { @@ -913,19 +919,15 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - - //group, err := rocksCache.GetGroupInfoFromCache(req.GroupID) - //if err != nil { - // log.NewError(req.OperationID, utils.GetSelfFuncName(), req.GroupID, err.Error()) - //} - //if group != nil { - // if group.GroupType != constant.SuperGroup { - // if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { - // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - // } - // } - //} - + if err := rocksCache.DelGroupMemberListHashFromCache(req.GroupID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), req.GroupID, err.Error()) + } + if err := rocksCache.DelJoinedGroupIDListFromCache(req.FromUserID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), req.FromUserID, err.Error()) + } + if err := rocksCache.DelGroupMemberNumFromCache(req.GroupID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + } chat.GroupApplicationAcceptedNotification(req) chat.MemberEnterNotification(req) } else if req.HandleResult == constant.GroupResponseRefuse { @@ -991,22 +993,16 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - //for _, userID := range okUserIDList { - // err = rocksCache.DelJoinedGroupIDListFromCache(userID) - // if err != nil { - // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), userID) - // } - //} err = rocksCache.DelJoinedGroupIDListFromCache(req.OpUserID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) } - - //err = rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID) - //if err != nil { - // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - //} - + if err := rocksCache.DelGroupMemberListHashFromCache(req.GroupID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), req.GroupID, err.Error()) + } + if err := rocksCache.DelGroupMemberNumFromCache(req.GroupID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + } chat.MemberEnterDirectlyNotification(req.GroupID, req.OpUserID, req.OperationID) log.NewInfo(req.OperationID, "JoinGroup rpc return ") return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil @@ -1113,17 +1109,19 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) return &pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - + if err := rocksCache.DelGroupMemberListHashFromCache(req.GroupID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), req.GroupID, err.Error()) + } if groupInfo.GroupType != constant.SuperGroup { - //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { - // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - //} - if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.OpUserID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - } if err := rocksCache.DelJoinedGroupIDListFromCache(req.OpUserID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.OpUserID) } + if err := rocksCache.DelGroupMemberNumFromCache(req.GroupID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupId) + } + if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.OpUserID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + } chat.MemberQuitNotification(req) } else { if err := rocksCache.DelJoinedSuperGroupIDListFromCache(req.OpUserID); err != nil { @@ -1322,9 +1320,6 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe log.NewError(req.OperationID, "UpdateGroupMemberInfo failed ", groupMemberInfo) return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { - // log.NewError(req.OperationID, utils.GetSelfFuncName(), req.GroupID, err.Error()) - //} err = rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.NewOwnerUserID) if err != nil { log.NewError(req.OperationID, "DelGroupMemberInfoFromCache failed ", req.GroupID, req.NewOwnerUserID) @@ -1607,9 +1602,13 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) return resp, http.WrapError(constant.ErrDB) } - //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupId); err != nil { - // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupId) - //} + if err := rocksCache.DelGroupMemberListHashFromCache(req.GroupId); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupId) + } + if err := rocksCache.DelGroupMemberNumFromCache(req.GroupId); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupId) + } + for _, userID := range resp.Success { if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupId, userID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupId, userID) @@ -1674,9 +1673,12 @@ func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGrou log.NewError(req.OperationId, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) return resp, http.WrapError(constant.ErrDB) } - //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupId); err != nil { - // log.NewError(req.OperationId, utils.GetSelfFuncName(), err.Error(), req.GroupId) - //} + if err := rocksCache.DelGroupMemberListHashFromCache(req.GroupId); err != nil { + log.NewError(req.OperationId, utils.GetSelfFuncName(), err.Error(), req.GroupId) + } + if err := rocksCache.DelGroupMemberNumFromCache(req.GroupId); err != nil { + log.NewError(req.OperationId, utils.GetSelfFuncName(), err.Error(), req.GroupId) + } chat.MemberInvitedNotification(req.OperationId, req.GroupId, req.OpUserId, "admin add you to group", resp.Success) return resp, nil @@ -1798,9 +1800,9 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: cacheResp.CommonResp.ErrCode, ErrMsg: cacheResp.CommonResp.ErrMsg}}, nil } - //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { - // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - //} + if err := rocksCache.DelGroupInfoFromCache(req.GroupID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } @@ -1846,9 +1848,6 @@ func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGrou log.Error(req.OperationID, "UpdateGroupMemberInfo failed ", err.Error(), groupMemberInfo) return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { - // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - //} if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.UserID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) } @@ -1893,9 +1892,6 @@ func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.Ca log.Error(req.OperationID, "UpdateGroupMemberInfo failed ", err.Error(), groupMemberInfo) return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { - // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - //} if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.UserID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) } @@ -2016,9 +2012,6 @@ func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.S log.Error(req.OperationID, errMsg) return &pbGroup.SetGroupMemberNicknameResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { - // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - //} if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.UserID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) } @@ -2054,9 +2047,6 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGr resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg + ":" + err.Error() return resp, nil } - //if err := rocksCache.DelAllGroupMembersInfoFromCache(req.GroupID); err != nil { - // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - //} if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.UserID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID, req.UserID) } @@ -2075,3 +2065,26 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGr log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil } + +func (s *groupServer) GetGroupAbstractInfo(c context.Context, req *pbGroup.GetGroupAbstractInfoReq) (*pbGroup.GetGroupAbstractInfoResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &pbGroup.GetGroupAbstractInfoResp{CommonResp: &pbGroup.CommonResp{}} + hashCode, err := rocksCache.GetGroupMemberListHashFromCache(req.GroupID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMemberListHashFromCache failed", req.GroupID, err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } + resp.GroupMemberListHash = hashCode + num, err := rocksCache.GetGroupMemberNumFromCache(req.GroupID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMemberNumByGroupID failed", req.GroupID, err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } + resp.GroupMemberNumber = int32(num) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", resp.String()) + return resp, nil +} diff --git a/internal/timed_task/clear_msg.go b/internal/timed_task/clear_msg.go new file mode 100644 index 000000000..6cb3cba79 --- /dev/null +++ b/internal/timed_task/clear_msg.go @@ -0,0 +1,89 @@ +package timedTask + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db" + "Open_IM/pkg/common/log" + server_api_params "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "github.com/golang/protobuf/proto" + "strconv" + "strings" +) + +const oldestList = 0 +const newestList = -1 + +func DeleteMongoMsgAndResetRedisSeq(operationID, ID string, diffusionType int) error { + // -1 表示从当前最早的一个开始 + var delMsgIDList []string + minSeq, err := deleteMongoMsg(operationID, ID, oldestList, &delMsgIDList) + if err != nil { + return utils.Wrap(err, "") + } + log.NewDebug(operationID, utils.GetSelfFuncName(), "delMsgIDList: ", delMsgIDList) + if diffusionType == constant.WriteDiffusion { + err = db.DB.SetUserMinSeq(ID, minSeq) + } else if diffusionType == constant.ReadDiffusion { + err = db.DB.SetGroupMinSeq(ID, minSeq) + } + return err +} + +// recursion +func deleteMongoMsg(operationID string, ID string, index int64, IDList *[]string) (uint32, error) { + // 从最旧的列表开始找 + msgs, err := db.DB.GetUserMsgListByIndex(ID, index) + if err != nil { + return 0, utils.Wrap(err, "GetUserMsgListByIndex failed") + } + log.NewDebug(operationID, utils.GetSelfFuncName(), "get msgs: ", msgs.UID) + for i, msg := range msgs.Msg { + // 找到列表中不需要删除的消息了 + if msg.SendTime+int64(config.Config.Mongo.DBRetainChatRecords) > utils.GetCurrentTimestampByMill() { + if len(*IDList) > 0 { + err := db.DB.DelMongoMsgs(*IDList) + if err != nil { + return 0, utils.Wrap(err, "DelMongoMsgs failed") + } + } + minSeq := getDelMaxSeqByIDList(*IDList) + if i > 0 { + msgPb := &server_api_params.MsgData{} + err = proto.Unmarshal(msg.Msg, msgPb) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), ID, index) + } else { + err = db.DB.ReplaceMsgToBlankByIndex(msgs.UID, i-1) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), msgs.UID, i) + return minSeq, nil + } + minSeq = msgPb.Seq - 1 + } + } + return minSeq, nil + } + } + *IDList = append(*IDList, msgs.UID) + // 没有找到 代表需要全部删除掉 继续查找下一个比较旧的列表 + seq, err := deleteMongoMsg(operationID, utils.GetSelfFuncName(), index-1, IDList) + if err != nil { + return 0, utils.Wrap(err, "deleteMongoMsg failed") + } + return seq, nil +} + +func getDelMaxSeqByIDList(IDList []string) uint32 { + if len(IDList) == 0 { + return 0 + } + l := strings.Split(IDList[len(IDList)-1], ":") + index, _ := strconv.Atoi(l[len(l)-1]) + if index == 0 { + // 4999 + return uint32(db.GetSingleGocMsgNum()) - 1 + } // 5000 + return (uint32(db.GetSingleGocMsgNum()) - 1) + uint32(index*db.GetSingleGocMsgNum()) +} diff --git a/internal/timed_task/init.go b/internal/timed_task/init.go index 8ee5d9452..fe4e214b0 100644 --- a/internal/timed_task/init.go +++ b/internal/timed_task/init.go @@ -1,26 +1 @@ -package timed_task - -type TimeTask struct { - delMgoChatChan chan bool -} - -var timeTask TimeTask - -func GetInstance() *TimeTask { - if timeTask.delMgoChatChan == nil { - timeTask.delMgoChatChan = make(chan bool) - go func() { - timeTask.delMgoChatChan <- true - }() - } - return &timeTask -} - -func (t *TimeTask) Run() { - for { - select { - case <-t.delMgoChatChan: - t.timedDeleteUserChat() - } - } -} +package timedTask diff --git a/internal/timed_task/timed_task.go b/internal/timed_task/timed_task.go index 5b0264123..2498c730b 100644 --- a/internal/timed_task/timed_task.go +++ b/internal/timed_task/timed_task.go @@ -1,26 +1,23 @@ -package timed_task +package timedTask import ( - "Open_IM/pkg/common/db" - "time" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" + "github.com/robfig/cron/v3" ) -func (t *TimeTask) timedDeleteUserChat() { - now := time.Now() - next := now.Add(time.Hour * 24) - next = time.Date(next.Year(), next.Month(), next.Day(), 0, 0, 0, 0, next.Location()) - tm := time.NewTimer(next.Sub(now)) - - <-tm.C - - count, _ := db.DB.MgoUserCount() - for i := 0; i < count; i++ { - time.Sleep(10 * time.Millisecond) - uid, _ := db.DB.MgoSkipUID(i) - db.DB.DelUserChatMongo2(uid) +func main() { + log.NewInfo(utils.OperationIDGenerator(), "start cron task") + c := cron.New() + _, err := c.AddFunc("30 3-6,20-23 * * *", func() { + operationID := utils.OperationIDGenerator() + if err := DeleteMongoMsgAndResetRedisSeq(operationID, "", constant.ReadDiffusion); err != nil { + log.NewError(operationID) + } + }) + if err != nil { + panic(err) } - - go func() { - t.delMgoChatChan <- true - }() + c.Start() } diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 896f40438..8918b852c 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -289,3 +289,14 @@ type SetGroupMemberInfoReq struct { type SetGroupMemberInfoResp struct { CommResp } + +type GetGroupAbstractInfoReq struct { + OperationID string `json:"operationID"` + GroupID string `json:"groupID"` +} + +type GetGroupAbstractInfoResp struct { + CommResp + GroupMemberNumber int32 `json:"groupMemberNumber"` + GroupMemberListHash uint64 `json:"groupMemberListHash"` +} diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index fdecf5e8f..083d89b2a 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -46,6 +46,7 @@ type MsgInfo struct { type UserChat struct { UID string + //ListIndex int `bson:"index"` Msg []MsgInfo } @@ -258,6 +259,45 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []uint32, operationID st return seqMsg, nil } +func (d *DataBases) GetUserMsgListByIndex(ID string, index int64) (msg *UserChat, err error) { + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cChat) + regex := fmt.Sprintf("^%s", ID) + findOpts := options.Find().SetLimit(1).SetSkip(index).SetSort(bson.M{"$regex": regex}) + msg = &UserChat{} + cursor, err := c.Find(ctx, bson.M{"uid": bson.M{"$regex": regex}}, findOpts) + if err != nil { + return nil, err + } + err = cursor.Decode(&msg) + return msg, err +} + +func (d *DataBases) DelMongoMsgs(IDList []string) error { + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cChat) + _, err := c.DeleteMany(ctx, bson.M{"uid": bson.M{"$in": IDList}}) + return err +} + +func (d *DataBases) ReplaceMsgToBlankByIndex(suffixID string, index int) error { + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cChat) + userChat := &UserChat{} + err := c.FindOne(ctx, bson.M{"uid": suffixID}).Decode(&userChat) + if err != nil { + return err + } + for i, msg := range userChat.Msg { + if i <= index { + msg.Msg = nil + msg.SendTime = 0 + } + } + _, err = c.UpdateOne(ctx, bson.M{"uid": suffixID}, userChat) + return err +} + func (d *DataBases) GetMsgBySeqListMongo2(uid string, seqList []uint32, operationID string) (seqMsg []*open_im_sdk.MsgData, err error) { var hasSeqList []uint32 singleCount := 0 @@ -1192,6 +1232,7 @@ func isNotContainInt32(target uint32, List []uint32) bool { func indexGen(uid string, seqSuffix uint32) string { return uid + ":" + strconv.FormatInt(int64(seqSuffix), 10) } + func superGroupIndexGen(groupID string, seqSuffix uint32) string { return "super_group_" + groupID + ":" + strconv.FormatInt(int64(seqSuffix), 10) } diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index c23a8777c..1304aeedf 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -10,6 +10,9 @@ import ( "encoding/json" "errors" "fmt" + "math/big" + "sort" + "strconv" "time" ) @@ -27,6 +30,8 @@ const ( allDepartmentCache = "ALL_DEPARTMENT_CACHE:" allDepartmentMemberCache = "ALL_DEPARTMENT_MEMBER_CACHE:" joinedSuperGroupListCache = "JOINED_SUPER_GROUP_LIST_CACHE:" + groupMemberListHashCache = "GROUP_MEMBER_LIST_HASH_CACHE:" + groupMemberNumCache = "GROUP_MEMBER_NUM_CACHE:" ) func init() { @@ -374,7 +379,7 @@ func GetJoinedSuperGroupListFromCache(userID string) ([]string, error) { bytes, err := json.Marshal(userToSuperGroup.GroupIDList) return string(bytes), utils.Wrap(err, "") } - joinedSuperGroupListStr, err := db.DB.Rc.Fetch(joinedSuperGroupListCache+userID, time.Second, getJoinedSuperGroupIDList) + joinedSuperGroupListStr, err := db.DB.Rc.Fetch(joinedSuperGroupListCache+userID, time.Second*30*60, getJoinedSuperGroupIDList) var joinedSuperGroupList []string err = json.Unmarshal([]byte(joinedSuperGroupListStr), &joinedSuperGroupList) return joinedSuperGroupList, err @@ -385,10 +390,44 @@ func DelJoinedSuperGroupIDListFromCache(userID string) error { return err } -func GetSuperGroupMemberIDListFromCache(groupID string) ([]string, error) { - return GetGroupMemberIDListFromCache(groupID) +func GetGroupMemberListHashFromCache(groupID string) (uint64, error) { + generateHash := func() (string, error) { + groupMemberIDList, err := GetGroupMemberIDListFromCache(groupID) + if err != nil { + return "", utils.Wrap(err, "") + } + sort.Strings(groupMemberIDList) + var all string + for _, v := range groupMemberIDList { + all += v + } + bi := big.NewInt(0) + bi.SetString(utils.Md5(all)[0:8], 16) + return strconv.Itoa(int(bi.Uint64())), nil + } + hashCode, err := db.DB.Rc.Fetch(groupMemberListHashCache+groupID, time.Second*30*60, generateHash) + hashCodeUint64, err := strconv.Atoi(hashCode) + return uint64(hashCodeUint64), err } -func DelSuperGroupMemberIDListFromCache(groupID string) error { - return DelGroupMemberIDListFromCache(groupID) +func DelGroupMemberListHashFromCache(groupID string) error { + err := db.DB.Rc.TagAsDeleted(groupMemberListHashCache + groupID) + return err +} + +func GetGroupMemberNumFromCache(groupID string) (int64, error) { + getGroupMemberNum := func() (string, error) { + num, err := imdb.GetGroupMemberNumByGroupID(groupID) + if err != nil { + return "", utils.Wrap(err, "") + } + return strconv.Itoa(int(num)), nil + } + groupMember, err := db.DB.Rc.Fetch(groupMemberNumCache+groupID, time.Second*30*60, getGroupMemberNum) + num, err := strconv.Atoi(groupMember) + return int64(num), err +} + +func DelGroupMemberNumFromCache(groupID string) error { + return db.DB.Rc.TagAsDeleted(groupMemberNumCache + groupID) } diff --git a/script/mongo-init.sh b/script/mongo-init.sh index ad9c84428..3d1faa60b 100644 --- a/script/mongo-init.sh +++ b/script/mongo-init.sh @@ -6,7 +6,7 @@ db.createUser({ user: "$MONGO_USERNAME", pwd: "$MONGO_PASSWORD", roles: [ - { role: 'readWrite', db: '$MONGO_INITDB_DATABASE' } + { role: 'root', db: '$MONGO_INITDB_DATABASE' } ] }) EOF From e2ff7ef1133ee4dd37c9a697be4900b41fcd2a95 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 8 Aug 2022 12:07:41 +0800 Subject: [PATCH 048/230] group hash --- internal/api/group/group.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 13ee7c581..9e77bbfe3 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -1308,5 +1308,9 @@ func GetGroupAbstractInfo(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } + resp.ErrMsg = respPb.CommonResp.ErrMsg + resp.ErrCode = respPb.CommonResp.ErrCode + resp.GroupMemberNumber = respPb.GroupMemberNumber + resp.GroupMemberListHash = respPb.GroupMemberListHash return } From b4b215a3f87d7e085094e4c49dd4df8fde36c108 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 8 Aug 2022 12:10:28 +0800 Subject: [PATCH 049/230] group hash --- internal/rpc/group/group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 42887c6fd..31fa0ff72 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1117,7 +1117,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.OpUserID) } if err := rocksCache.DelGroupMemberNumFromCache(req.GroupID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupId) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) } if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.OpUserID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) From 1f8e161001f7ec38e7b88341b0bdc1a2c12ba051 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 8 Aug 2022 12:14:46 +0800 Subject: [PATCH 050/230] group hash --- internal/api/group/group.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 9e77bbfe3..1d6cf6a06 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -1312,5 +1312,6 @@ func GetGroupAbstractInfo(c *gin.Context) { resp.ErrCode = respPb.CommonResp.ErrCode resp.GroupMemberNumber = respPb.GroupMemberNumber resp.GroupMemberListHash = respPb.GroupMemberListHash + c.JSON(http.StatusOK, resp) return } From 12cbb1f6f9e58e76605523905160b86f34cd2b3a Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 8 Aug 2022 12:19:23 +0800 Subject: [PATCH 051/230] group hash --- pkg/base_info/group_api_struct.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 8918b852c..01e117c09 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -297,6 +297,8 @@ type GetGroupAbstractInfoReq struct { type GetGroupAbstractInfoResp struct { CommResp - GroupMemberNumber int32 `json:"groupMemberNumber"` - GroupMemberListHash uint64 `json:"groupMemberListHash"` + Data struct { + GroupMemberNumber int32 `json:"groupMemberNumber"` + GroupMemberListHash uint64 `json:"groupMemberListHash"` + } `json:"data"` } From 2ba7fcd6289ef6592a1c0a339b0d998dc7879387 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 8 Aug 2022 12:22:10 +0800 Subject: [PATCH 052/230] group hash --- internal/api/group/group.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 1d6cf6a06..2ee60e8cc 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -1310,8 +1310,8 @@ func GetGroupAbstractInfo(c *gin.Context) { } resp.ErrMsg = respPb.CommonResp.ErrMsg resp.ErrCode = respPb.CommonResp.ErrCode - resp.GroupMemberNumber = respPb.GroupMemberNumber - resp.GroupMemberListHash = respPb.GroupMemberListHash + resp.Data.GroupMemberNumber = respPb.GroupMemberNumber + resp.Data.GroupMemberListHash = respPb.GroupMemberListHash c.JSON(http.StatusOK, resp) return } From 1e1381df8e5e30d3f4d03e9e04834f57dc93160b Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 8 Aug 2022 13:10:34 +0800 Subject: [PATCH 053/230] log --- internal/api/group/group.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 2ee60e8cc..c288e3bd4 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -1251,7 +1251,7 @@ func SetGroupMemberInfo(c *gin.Context) { if req.RoleLevel != nil { reqPb.RoleLevel = &wrappers.Int32Value{Value: *req.RoleLevel} } - + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", reqPb.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { errMsg := req.OperationID + "getcdv3.GetConn == nil" @@ -1269,7 +1269,7 @@ func SetGroupMemberInfo(c *gin.Context) { resp.ErrMsg = respPb.CommonResp.ErrMsg resp.ErrCode = respPb.CommonResp.ErrCode - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", resp) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp) c.JSON(http.StatusOK, resp) } @@ -1290,6 +1290,7 @@ func GetGroupAbstractInfo(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) return } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { errMsg := req.OperationID + "getcdv3.GetConn == nil" @@ -1303,6 +1304,7 @@ func GetGroupAbstractInfo(c *gin.Context) { OpUserID: opUserID, OperationID: req.OperationID, }) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", respPb.String()) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), " failed ", err.Error()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) @@ -1312,6 +1314,7 @@ func GetGroupAbstractInfo(c *gin.Context) { resp.ErrCode = respPb.CommonResp.ErrCode resp.Data.GroupMemberNumber = respPb.GroupMemberNumber resp.Data.GroupMemberListHash = respPb.GroupMemberListHash + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp) c.JSON(http.StatusOK, resp) return } From ae8acc6eba318600759f725d5fc26d7e0816568a Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 8 Aug 2022 13:16:58 +0800 Subject: [PATCH 054/230] GetGroupAbstractInfoResp --- internal/api/group/group.go | 4 ++-- pkg/base_info/group_api_struct.go | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index c288e3bd4..f14046b3d 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -1312,8 +1312,8 @@ func GetGroupAbstractInfo(c *gin.Context) { } resp.ErrMsg = respPb.CommonResp.ErrMsg resp.ErrCode = respPb.CommonResp.ErrCode - resp.Data.GroupMemberNumber = respPb.GroupMemberNumber - resp.Data.GroupMemberListHash = respPb.GroupMemberListHash + resp.GroupMemberNumber = respPb.GroupMemberNumber + resp.GroupMemberListHash = respPb.GroupMemberListHash log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp) c.JSON(http.StatusOK, resp) return diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 01e117c09..8918b852c 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -297,8 +297,6 @@ type GetGroupAbstractInfoReq struct { type GetGroupAbstractInfoResp struct { CommResp - Data struct { - GroupMemberNumber int32 `json:"groupMemberNumber"` - GroupMemberListHash uint64 `json:"groupMemberListHash"` - } `json:"data"` + GroupMemberNumber int32 `json:"groupMemberNumber"` + GroupMemberListHash uint64 `json:"groupMemberListHash"` } From 92a68108a697198e02328fcdfb026b59042605ea Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 8 Aug 2022 13:21:06 +0800 Subject: [PATCH 055/230] fix bug --- pkg/common/db/rocks_cache/rocks_cache.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 1304aeedf..99e1fbb2d 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -402,7 +402,7 @@ func GetGroupMemberListHashFromCache(groupID string) (uint64, error) { all += v } bi := big.NewInt(0) - bi.SetString(utils.Md5(all)[0:8], 16) + bi.SetString(utils.Md5(all)[0:8], 10) return strconv.Itoa(int(bi.Uint64())), nil } hashCode, err := db.DB.Rc.Fetch(groupMemberListHashCache+groupID, time.Second*30*60, generateHash) From eb960f26063d0548841a27c6f7d6b47bb27e6245 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 8 Aug 2022 13:43:57 +0800 Subject: [PATCH 056/230] fix bug --- pkg/common/db/rocks_cache/rocks_cache.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 99e1fbb2d..1304aeedf 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -402,7 +402,7 @@ func GetGroupMemberListHashFromCache(groupID string) (uint64, error) { all += v } bi := big.NewInt(0) - bi.SetString(utils.Md5(all)[0:8], 10) + bi.SetString(utils.Md5(all)[0:8], 16) return strconv.Itoa(int(bi.Uint64())), nil } hashCode, err := db.DB.Rc.Fetch(groupMemberListHashCache+groupID, time.Second*30*60, generateHash) From bba5e7db0c301085ad6efc2b6b677e53ab4a0340 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 8 Aug 2022 13:44:43 +0800 Subject: [PATCH 057/230] fix bug --- pkg/common/db/rocks_cache/rocks_cache.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 1304aeedf..80f18db6a 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -394,7 +394,7 @@ func GetGroupMemberListHashFromCache(groupID string) (uint64, error) { generateHash := func() (string, error) { groupMemberIDList, err := GetGroupMemberIDListFromCache(groupID) if err != nil { - return "", utils.Wrap(err, "") + return "", utils.Wrap(err, "GetGroupMemberIDListFromCache failed") } sort.Strings(groupMemberIDList) var all string From cd65d4200448c9e1d23aa4ad8fc57191951590e1 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 8 Aug 2022 16:46:43 +0800 Subject: [PATCH 058/230] getui debug --- internal/push/getui/push.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/push/getui/push.go b/internal/push/getui/push.go index 03d3346ce..a02a57ea8 100644 --- a/internal/push/getui/push.go +++ b/internal/push/getui/push.go @@ -179,7 +179,7 @@ func (g *Getui) request(url string, content interface{}, token string, returnStr return err } client := &http.Client{} - log.Debug(operationID, utils.GetSelfFuncName(), "json:", string(con)) + log.Debug(operationID, utils.GetSelfFuncName(), "json:", string(con), "token:", token) req, err := http.NewRequest("POST", config.Config.Push.Getui.PushUrl+url, bytes.NewBuffer(con)) if err != nil { return err @@ -197,7 +197,7 @@ func (g *Getui) request(url string, content interface{}, token string, returnStr if err != nil { return err } - log.NewInfo(operationID, "getui", utils.GetSelfFuncName(), "resp, ", string(result)) + log.NewDebug(operationID, "getui", utils.GetSelfFuncName(), "resp, ", string(result)) commonResp := GetuiCommonResp{} commonResp.Data = returnStruct if err := json.Unmarshal(result, &commonResp); err != nil { From 4cfa8d880fc38967fbe04d639b88bd260f8e31fb Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 8 Aug 2022 17:14:59 +0800 Subject: [PATCH 059/230] getui debug --- pkg/common/db/RedisModel.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/RedisModel.go b/pkg/common/db/RedisModel.go index 589999d4c..4bbd66039 100644 --- a/pkg/common/db/RedisModel.go +++ b/pkg/common/db/RedisModel.go @@ -383,8 +383,8 @@ func (d *DataBases) SetGetuiToken(token string, expireTime int64) error { } func (d *DataBases) GetGetuiToken() (string, error) { - result := d.RDB.Get(context.Background(), getuiToken) - return result.String(), result.Err() + result, err := d.RDB.Get(context.Background(), getuiToken).Result() + return result, err } func (d *DataBases) SetSendMsgFailedFlag(operationID string) error { From ffc4da1589aa91199e818c36a3223df510e83d41 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 8 Aug 2022 17:42:06 +0800 Subject: [PATCH 060/230] callback add seq --- internal/rpc/msg/callback.go | 1 + internal/rpc/msg/send_msg.go | 5 ----- pkg/call_back_struct/common.go | 1 + 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index ba03998a5..e00ee001a 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -28,6 +28,7 @@ func copyCallbackCommonReqStruct(msg *pbChat.SendMsgReq) cbApi.CommonCallbackReq AtUserIDList: msg.MsgData.AtUserIDList, SenderFaceURL: msg.MsgData.SenderFaceURL, Content: callback.GetContent(msg.MsgData), + Seq: msg.MsgData.Seq, } return req } diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index a73f14016..c9b17544d 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -476,11 +476,6 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S log.NewError(msgToMQSingle.OperationID, "kafka send msg err:RecvID", msgToMQSingle.MsgData.RecvID, msgToMQSingle.String()) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) } - // callback - callbackResp = callbackAfterSendSingleMsg(pb) - if callbackResp.ErrCode != 0 { - log.NewError(pb.OperationID, utils.GetSelfFuncName(), "callbackAfterSendSuperGroupMsg resp: ", callbackResp) - } return returnMsg(&replay, pb, 0, "", msgToMQSingle.MsgData.ServerMsgID, msgToMQSingle.MsgData.SendTime) default: diff --git a/pkg/call_back_struct/common.go b/pkg/call_back_struct/common.go index acbfced6d..ea61818e5 100644 --- a/pkg/call_back_struct/common.go +++ b/pkg/call_back_struct/common.go @@ -14,6 +14,7 @@ type CommonCallbackReq struct { Status int32 `json:"status"` CreateTime int64 `json:"createTime"` Content string `json:"content"` + Seq uint32 `json:"seq"` AtUserIDList []string `json:"atUserList"` SenderFaceURL string `json:"faceURL"` } From 52e57cf547b967673b15efe1a240ad69846de556 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 8 Aug 2022 20:01:29 +0800 Subject: [PATCH 061/230] fix bug --- internal/api/user/user.go | 3 +-- internal/rpc/user/user.go | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index 48171ece0..c473ef9a6 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -342,8 +342,7 @@ func GetSelfUserInfo(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) return } - - req.UserIDList = append(req.UserIDList, req.OpUserID) + req.UserIDList = append(req.UserIDList, params.UserID) log.NewInfo(params.OperationID, "GetUserInfo args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 57a456d4e..80d4879c1 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -109,6 +109,7 @@ func syncPeerUserConversation(conversation *pbUser.Conversation, operationID str func (s *userServer) GetUserInfo(ctx context.Context, req *pbUser.GetUserInfoReq) (*pbUser.GetUserInfoResp, error) { log.NewInfo(req.OperationID, "GetUserInfo args ", req.String()) + var userInfoList []*sdkws.UserInfo if len(req.UserIDList) > 0 { for _, userID := range req.UserIDList { From c304de92883e1f834a106e9c1a530f5b4875a2a6 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 8 Aug 2022 20:03:08 +0800 Subject: [PATCH 062/230] userinfo get --- internal/api/user/user.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index 48171ece0..257c2a7cf 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -343,7 +343,7 @@ func GetSelfUserInfo(c *gin.Context) { return } - req.UserIDList = append(req.UserIDList, req.OpUserID) + req.UserIDList = append(req.UserIDList, params.UserID) log.NewInfo(params.OperationID, "GetUserInfo args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) From 9358aa1bd8455c48a7749f99a6e6fec713055e18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AC=A7=E9=98=B3=E6=B0=8F?= Date: Sun, 7 Aug 2022 22:37:27 +0800 Subject: [PATCH 063/230] =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=A1=A8=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=B3=A8=E5=86=8CIP=20=E7=99=BB=E9=99=86IP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、用户表增加注册IP 登陆IP 2、新增ip_limit表、user_ip_limit表 3、用户创建需要增加createIp参数同步 用户登录需要增加loginIp参数同步 login_limit 限制说明 0:读取ip_limits表 限制用户注册+用户登陆IP 1:读取user_ip_limits表 限制用户在指定IP登陆 2:读取black_lists表 限制用户在限制时间不能登陆 --- internal/api/auth/auth.go | 16 +- internal/demo/register/login.go | 14 +- internal/demo/register/set_password.go | 14 +- internal/rpc/auth/auth.go | 37 +- internal/rpc/user/user.go | 59 +- pkg/base_info/auth_api_struct.go | 1 + pkg/base_info/public_struct.go | 25 +- pkg/cms_api_struct/user.go | 19 +- pkg/common/constant/error.go | 2 + pkg/common/db/model_struct.go | 24 +- pkg/common/db/mysql.go | 17 +- .../mysql_model/im_mysql_model/user_model.go | 46 +- pkg/proto/auth/auth.pb.go | 875 +- pkg/proto/auth/auth.proto | 1 + pkg/proto/sdk_ws/ws.pb.go | 10553 ++++++++++------ pkg/proto/sdk_ws/ws.proto | 11 +- pkg/proto/user/user.pb.go | 5801 ++++++--- pkg/proto/user/user.proto | 11 +- 18 files changed, 11016 insertions(+), 6510 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 9d713410b..eaf1af6fc 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -3,6 +3,7 @@ package apiAuth import ( api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" @@ -10,10 +11,11 @@ import ( open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" - "github.com/fatih/structs" - "github.com/gin-gonic/gin" "net/http" "strings" + + "github.com/fatih/structs" + "github.com/gin-gonic/gin" ) // @Summary 用户注册 @@ -65,11 +67,15 @@ func UserRegister(c *gin.Context) { if reply.CommonResp.ErrCode != 0 { errMsg := req.OperationID + " " + " UserRegister failed " + reply.CommonResp.ErrMsg + req.String() log.NewError(req.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + if reply.CommonResp.ErrCode == constant.RegisterLimit { + c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterLimit, "errMsg": "用户注册被限制"}) + } else { + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + } return } - pbDataToken := &rpc.UserTokenReq{Platform: params.Platform, FromUserID: params.UserID, OperationID: params.OperationID} + pbDataToken := &rpc.UserTokenReq{Platform: params.Platform, FromUserID: params.UserID, OperationID: params.OperationID, LoginIp: params.CreateIp} replyToken, err := client.UserToken(context.Background(), pbDataToken) if err != nil { errMsg := req.OperationID + " " + " client.UserToken failed " + err.Error() + pbDataToken.String() @@ -110,7 +116,7 @@ func UserToken(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": errMsg}) return } - req := &rpc.UserTokenReq{Platform: params.Platform, FromUserID: params.UserID, OperationID: params.OperationID} + req := &rpc.UserTokenReq{Platform: params.Platform, FromUserID: params.UserID, OperationID: params.OperationID, LoginIp: params.LoginIp} log.NewInfo(req.OperationID, "UserToken args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName, req.OperationID) if etcdConn == nil { diff --git a/internal/demo/register/login.go b/internal/demo/register/login.go index 28852a83d..4f0ae811c 100644 --- a/internal/demo/register/login.go +++ b/internal/demo/register/login.go @@ -10,8 +10,9 @@ import ( "Open_IM/pkg/utils" "encoding/json" "fmt" - "github.com/gin-gonic/gin" "net/http" + + "github.com/gin-gonic/gin" ) type ParamsLogin struct { @@ -62,6 +63,11 @@ func Login(c *gin.Context) { openIMGetUserToken.Platform = params.Platform openIMGetUserToken.Secret = config.Config.Secret openIMGetUserToken.UserID = userID + loginIp := c.Request.Header.Get("X-Forward-For") + if loginIp == "" { + loginIp = c.ClientIP() + } + openIMGetUserToken.LoginIp = loginIp openIMGetUserTokenResp := api.UserTokenResp{} bMsg, err := http2.Post(url, openIMGetUserToken, 2) if err != nil { @@ -72,7 +78,11 @@ func Login(c *gin.Context) { err = json.Unmarshal(bMsg, &openIMGetUserTokenResp) if err != nil || openIMGetUserTokenResp.ErrCode != 0 { log.NewError(params.OperationID, "request get user token", account, "err", "") - c.JSON(http.StatusOK, gin.H{"errCode": constant.GetIMTokenErr, "errMsg": ""}) + if openIMGetUserTokenResp.ErrCode == constant.LoginLimit { + c.JSON(http.StatusOK, gin.H{"errCode": constant.LoginLimit, "errMsg": "用户登录被限制"}) + } else { + c.JSON(http.StatusOK, gin.H{"errCode": constant.GetIMTokenErr, "errMsg": ""}) + } return } c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "", "data": openIMGetUserTokenResp.UserToken}) diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index c6728edb4..f88b9b42c 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -10,11 +10,12 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "encoding/json" - "github.com/gin-gonic/gin" "math/big" "net/http" "strconv" "time" + + "github.com/gin-gonic/gin" ) type ParamsSetPassword struct { @@ -81,6 +82,11 @@ func SetPassword(c *gin.Context) { openIMRegisterReq.Nickname = params.Nickname openIMRegisterReq.Secret = config.Config.Secret openIMRegisterReq.FaceURL = params.FaceURL + createIp := c.Request.Header.Get("X-Forward-For") + if createIp == "" { + createIp = c.ClientIP() + } + openIMRegisterReq.CreateIp = createIp openIMRegisterResp := api.UserRegisterResp{} log.NewDebug(params.OperationID, utils.GetSelfFuncName(), "register req:", openIMRegisterReq) bMsg, err := http2.Post(url, openIMRegisterReq, 2) @@ -95,7 +101,11 @@ func SetPassword(c *gin.Context) { if err != nil { log.NewError(params.OperationID, utils.GetSelfFuncName(), err.Error()) } - c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register failed: " + openIMRegisterResp.ErrMsg}) + if openIMRegisterResp.ErrCode == constant.RegisterLimit { + c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterLimit, "errMsg": "用户注册被限制"}) + } else { + c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register failed: " + openIMRegisterResp.ErrMsg}) + } return } log.Info(params.OperationID, "begin store mysql", account, params.Password, "info", params.FaceURL, params.Nickname) diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index c405f9acb..6bfcf683b 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -15,6 +15,7 @@ import ( "net" "strconv" "strings" + "time" "Open_IM/pkg/common/config" @@ -29,6 +30,13 @@ func (rpc *rpcAuth) UserRegister(_ context.Context, req *pbAuth.UserRegisterReq) user.Birth = utils.UnixSecondToTime(int64(req.UserInfo.Birth)) } log.Debug(req.OperationID, "copy ", user, req.UserInfo) + Limited, LimitError := imdb.IsLimitRegisterIp(req.UserInfo.CreateIp) + if LimitError != nil { + return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: LimitError.Error()}}, nil + } + if Limited { + return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.RegisterLimit, ErrMsg: "Register Limit"}}, nil + } err := imdb.UserRegister(user) if err != nil { errMsg := req.OperationID + " imdb.UserRegister failed " + err.Error() + user.UserID @@ -42,20 +50,43 @@ func (rpc *rpcAuth) UserRegister(_ context.Context, req *pbAuth.UserRegisterReq) func (rpc *rpcAuth) UserToken(_ context.Context, req *pbAuth.UserTokenReq) (*pbAuth.UserTokenResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc args ", req.String()) - _, err := imdb.GetUserByUserID(req.FromUserID) + user, err := imdb.GetUserByUserID(req.FromUserID) if err != nil { errMsg := req.OperationID + " imdb.GetUserByUserID failed " + err.Error() + req.FromUserID log.NewError(req.OperationID, errMsg) return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}}, nil } - + var Limited bool + var LimitError error + if user.LoginLimit == 0 { + Limited, LimitError = imdb.IsLimitLoginIp(req.LoginIp) + } else if user.LoginLimit == 1 { + Limited, LimitError = imdb.IsLimitUserLoginIp(user.UserID, req.LoginIp) + } else if user.LoginLimit == 2 { + Limited, LimitError = imdb.UserIsBlock(user.UserID) + } + if LimitError != nil { + return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: LimitError.Error()}}, nil + } + if Limited { + return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.LoginLimit, ErrMsg: "用户被限制"}}, nil + } tokens, expTime, err := token_verify.CreateToken(req.FromUserID, int(req.Platform)) if err != nil { errMsg := req.OperationID + " token_verify.CreateToken failed " + err.Error() + req.FromUserID + utils.Int32ToString(req.Platform) log.NewError(req.OperationID, errMsg) return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}}, nil } - + //增加用户登录信息 + user.LoginTimes = user.LoginTimes + 1 + user.LastLoginIp = req.LoginIp + user.LastLoginTime = time.Now() + err = imdb.UpdateUserInfo(*user) + if err != nil { + errMsg := req.OperationID + " imdb.UpdateUserInfo failed " + err.Error() + req.FromUserID + log.NewError(req.OperationID, errMsg) + return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}}, nil + } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc return ", pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{}, Token: tokens, ExpiredTime: expTime}) return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{}, Token: tokens, ExpiredTime: expTime}, nil } diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 57a456d4e..deae3621b 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -6,7 +6,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/db/rocks_cache" + rocksCache "Open_IM/pkg/common/db/rocks_cache" errors "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" @@ -539,11 +539,20 @@ func (s *userServer) GetUsersByName(ctx context.Context, req *pbUser.GetUsersByN continue } resp.Users = append(resp.Users, &pbUser.User{ - ProfilePhoto: user.FaceURL, - Nickname: user.Nickname, - UserId: user.UserID, - CreateTime: user.CreateTime.String(), - IsBlock: isBlock, + ProfilePhoto: user.FaceURL, + Nickname: user.Nickname, + UserId: user.UserID, + CreateTime: user.CreateTime.Format("2006-01-02 15:04:05"), + CreateIp: user.CreateIp, + IsBlock: isBlock, + Birth: user.Birth.Format("2006-01-02"), + PhoneNumber: user.PhoneNumber, + Email: user.Email, + LastLoginIp: user.LastLoginIp, + LastLoginTime: user.LastLoginTime.Format("2006-01-02 15:04:05"), + LoginTimes: user.LoginTimes, + Gender: user.Gender, + LoginLimit: user.LoginLimit, }) } user := db.User{Nickname: req.UserName} @@ -575,11 +584,20 @@ func (s *userServer) GetUserById(ctx context.Context, req *pbUser.GetUserByIdReq return resp, errors.WrapError(constant.ErrDB) } resp.User = &pbUser.User{ - ProfilePhoto: user.FaceURL, - Nickname: user.Nickname, - UserId: user.UserID, - CreateTime: user.CreateTime.String(), - IsBlock: isBlock, + ProfilePhoto: user.FaceURL, + Nickname: user.Nickname, + UserId: user.UserID, + CreateTime: user.CreateTime.Format("2006-01-02 15:04:05"), + CreateIp: user.CreateIp, + IsBlock: isBlock, + Birth: user.Birth.Format("2006-01-02"), + PhoneNumber: user.PhoneNumber, + Email: user.Email, + LastLoginIp: user.LastLoginIp, + LastLoginTime: user.LastLoginTime.Format("2006-01-02 15:04:05"), + LoginTimes: user.LoginTimes, + Gender: user.Gender, + LoginLimit: user.LoginLimit, } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil @@ -597,11 +615,20 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb isBlock, err := imdb.UserIsBlock(v.UserID) if err == nil { user := &pbUser.User{ - ProfilePhoto: v.FaceURL, - UserId: v.UserID, - CreateTime: v.CreateTime.String(), - Nickname: v.Nickname, - IsBlock: isBlock, + ProfilePhoto: v.FaceURL, + UserId: v.UserID, + CreateTime: v.CreateTime.Format("2006-01-02 15:04:05"), + CreateIp: v.CreateIp, + Nickname: v.Nickname, + Birth: v.Birth.Format("2006-01-02"), + PhoneNumber: v.PhoneNumber, + Email: v.Email, + IsBlock: isBlock, + LastLoginIp: v.LastLoginIp, + LastLoginTime: v.LastLoginTime.Format("2006-01-02 15:04:05"), + LoginTimes: v.LoginTimes, + Gender: v.Gender, + LoginLimit: v.LoginLimit, } resp.User = append(resp.User, user) } else { diff --git a/pkg/base_info/auth_api_struct.go b/pkg/base_info/auth_api_struct.go index 3b2fb2b13..fea71aa58 100644 --- a/pkg/base_info/auth_api_struct.go +++ b/pkg/base_info/auth_api_struct.go @@ -30,6 +30,7 @@ type UserTokenReq struct { Secret string `json:"secret" binding:"required,max=32"` Platform int32 `json:"platform" binding:"required,min=1,max=8"` UserID string `json:"userID" binding:"required,min=1,max=64"` + LoginIp string `json:"loginIp" binding:"required,max=15"` OperationID string `json:"operationID" binding:"required"` } diff --git a/pkg/base_info/public_struct.go b/pkg/base_info/public_struct.go index e00be850d..458af9da9 100644 --- a/pkg/base_info/public_struct.go +++ b/pkg/base_info/public_struct.go @@ -1,19 +1,26 @@ package base_info import ( - "github.com/gin-gonic/gin" "net/http" + + "github.com/gin-gonic/gin" ) type ApiUserInfo struct { - UserID string `json:"userID" binding:"required,min=1,max=64" swaggo:"true,用户ID,"` - Nickname string `json:"nickname" binding:"omitempty,min=1,max=64" swaggo:"true,my id,19"` - FaceURL string `json:"faceURL" binding:"omitempty,max=1024"` - Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"` - PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"` - Birth uint32 `json:"birth" binding:"omitempty"` - Email string `json:"email" binding:"omitempty,max=64"` - Ex string `json:"ex" binding:"omitempty,max=1024"` + UserID string `json:"userID" binding:"required,min=1,max=64" swaggo:"true,用户ID,"` + Nickname string `json:"nickname" binding:"omitempty,min=1,max=64" swaggo:"true,my id,19"` + FaceURL string `json:"faceURL" binding:"omitempty,max=1024"` + Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"` + PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"` + Birth uint32 `json:"birth" binding:"omitempty"` + Email string `json:"email" binding:"omitempty,max=64"` + CreateIp string `json:"createIp" binding:"omitempty,max=15"` + CreateTime int64 `json:"createTime"` + LastLoginIp string `json:"LastLoginIp" binding:"omitempty,max=15"` + LastLoginTime int64 `json:"lastLoginTime"` + LoginTimes int32 `json:"loginTimes" binding:"omitempty"` + LoginLimit int32 `json:"loginLimit" binding:"omitempty"` + Ex string `json:"ex" binding:"omitempty,max=1024"` } //type Conversation struct { diff --git a/pkg/cms_api_struct/user.go b/pkg/cms_api_struct/user.go index 2c0b004b0..bf54cd765 100644 --- a/pkg/cms_api_struct/user.go +++ b/pkg/cms_api_struct/user.go @@ -1,11 +1,20 @@ package cms_api_struct type UserResponse struct { - ProfilePhoto string `json:"profile_photo"` - Nickname string `json:"nick_name"` - UserId string `json:"user_id"` - CreateTime string `json:"create_time,omitempty"` - IsBlock bool `json:"is_block"` + ProfilePhoto string `json:"profile_photo"` + Nickname string `json:"nick_name"` + UserId string `json:"user_id"` + CreateTime string `json:"create_time,omitempty"` + CreateIp string `json:"create_ip,omitempty"` + LastLoginTime string `json:"last_login_time,omitempty"` + LastLoginIp string `json:"last_login_ip,omitempty"` + LoginTimes int32 `json:"login_times"` + LoginLimit int32 `json:"login_limit"` + IsBlock bool `json:"is_block"` + PhoneNumber string `json:"phone_number"` + Email string `json:"email"` + Birth string `json:"birth"` + Gender int `json:"gender"` } type GetUserRequest struct { diff --git a/pkg/common/constant/error.go b/pkg/common/constant/error.go index 10d8a219c..b77fc1657 100644 --- a/pkg/common/constant/error.go +++ b/pkg/common/constant/error.go @@ -67,6 +67,8 @@ const ( CodeInvalidOrExpired = 10009 RegisterFailed = 10010 ResetPasswordFailed = 10011 + RegisterLimit = 10012 + LoginLimit = 10013 DatabaseError = 10002 ServerError = 10004 HttpError = 10005 diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 60f2de972..cd08ec8ae 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -153,8 +153,9 @@ type GroupRequest struct { //string Birth = 6; //string Email = 7; //string Ex = 8; -//int64 CreateTime = 9; -//int32 AppMangerLevel = 10; +//string CreateIp = 9; +//int64 CreateTime = 10; +//int32 AppMangerLevel = 11; //open_im_sdk.User == imdb.User type User struct { UserID string `gorm:"column:user_id;primary_key;size:64"` @@ -166,11 +167,30 @@ type User struct { Email string `gorm:"column:email;size:64"` Ex string `gorm:"column:ex;size:1024"` CreateTime time.Time `gorm:"column:create_time"` + CreateIp string `gorm:"column:create_ip;size:15"` + LastLoginTime time.Time `gorm:"column:last_login_time"` + LastLoginIp string `gorm:"column:last_login_ip;size:15"` + LoginTimes int32 `gorm:"column:login_times"` + LoginLimit int32 `gorm:"column:login_limit"` AppMangerLevel int32 `gorm:"column:app_manger_level"` GlobalRecvMsgOpt int32 `gorm:"column:global_recv_msg_opt"` status int32 `gorm:"column:status"` } +type IpLimit struct { + Ip string `gorm:"column:ip;primary_key;size:15"` + LimitRegister int32 `gorm:"column:limit_register;size:1"` + LimitLogin int32 `gorm:"column:limit_login;size:1"` + CreateTime time.Time `gorm:"column:create_time"` + LimitTime time.Time `gorm:"column:limit_time"` +} + +type UserIpLimit struct { + UserID string `gorm:"column:user_id;primary_key;size:64"` + Ip string `gorm:"column:ip;primary_key;size:15"` + CreateTime time.Time `gorm:"column:create_time"` +} + //message BlackInfo{ //string OwnerUserID = 1; //int64 CreateTime = 2; diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 17de81d56..e794b4884 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -2,14 +2,13 @@ package db import ( "Open_IM/pkg/common/config" - "gorm.io/gorm/logger" - "fmt" "sync" "time" "gorm.io/driver/mysql" "gorm.io/gorm" + "gorm.io/gorm/logger" ) type mysqlDB struct { @@ -79,7 +78,7 @@ func initMysqlDB() { &GroupMember{}, &GroupRequest{}, &User{}, - &Black{}, &ChatLog{}, &Register{}, &Conversation{}, &AppVersion{}, &Department{}) + &Black{}, &ChatLog{}, &Register{}, &Conversation{}, &AppVersion{}, &Department{}, &BlackList{}, &IpLimit{}, &UserIpLimit{}) db.Set("gorm:table_options", "CHARSET=utf8") db.Set("gorm:table_options", "collation=utf8_unicode_ci") @@ -143,6 +142,18 @@ func initMysqlDB() { fmt.Println("CreateTable DepartmentMember") db.Migrator().CreateTable(&AppVersion{}) } + if !db.Migrator().HasTable(&BlackList{}) { + fmt.Println("CreateTable BlackList") + db.Migrator().CreateTable(&BlackList{}) + } + if !db.Migrator().HasTable(&IpLimit{}) { + fmt.Println("CreateTable IpLimit") + db.Migrator().CreateTable(&IpLimit{}) + } + if !db.Migrator().HasTable(&UserIpLimit{}) { + fmt.Println("CreateTable UserIpLimit") + db.Migrator().CreateTable(&UserIpLimit{}) + } DB.MysqlDB.db = db return } diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index ddc4a93cf..6e8a1d280 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -42,6 +42,9 @@ func UserRegister(user db.User) error { if user.Birth.Unix() < 0 { user.Birth = utils.UnixSecondToTime(0) } + user.LastLoginTime = time.Now() + user.LoginTimes = 0 + user.LastLoginIp = user.CreateIp err := db.DB.MysqlDB.DefaultGormDB().Table("users").Create(&user).Error if err != nil { return err @@ -130,7 +133,7 @@ func UserIsBlock(userId string) (bool, error) { var user db.BlackList rows := db.DB.MysqlDB.DefaultGormDB().Table("black_lists").Where("uid=?", userId).First(&user).RowsAffected if rows >= 1 { - return true, nil + return user.EndDisableTime.After(time.Now()), nil } return false, nil } @@ -151,6 +154,9 @@ func BlockUser(userId, endDisableTime string) error { db.DB.MysqlDB.DefaultGormDB().Table("black_lists").Where("uid=?", userId).First(&blockUser) if blockUser.UserId != "" { db.DB.MysqlDB.DefaultGormDB().Model(&blockUser).Where("uid=?", blockUser.UserId).Update("end_disable_time", end) + if user.LoginLimit != 2 { + db.DB.MysqlDB.DefaultGormDB().Table("users").Where("user_id=?", blockUser.UserId).Update("login_limit", 2) + } return nil } blockUser = db.BlackList{ @@ -159,11 +165,20 @@ func BlockUser(userId, endDisableTime string) error { EndDisableTime: end, } result := db.DB.MysqlDB.DefaultGormDB().Create(&blockUser) + if result.Error == nil { + if user.LoginLimit != 2 { + db.DB.MysqlDB.DefaultGormDB().Table("users").Where("user_id=?", blockUser.UserId).Update("login_limit", 2) + } + } return result.Error } func UnBlockUser(userId string) error { - return db.DB.MysqlDB.DefaultGormDB().Where("uid=?", userId).Delete(&db.BlackList{}).Error + err := db.DB.MysqlDB.DefaultGormDB().Where("uid=?", userId).Delete(&db.BlackList{}).Error + if err != nil { + return err + } + return db.DB.MysqlDB.DefaultGormDB().Table("users").Where("user_id=?", userId).Update("login_limit", 0).Error } type BlockUserInfo struct { @@ -238,3 +253,30 @@ func GetBlockUsersNumCount() (int32, error) { } return int32(count), nil } + +func IsLimitRegisterIp(RegisterIp string) (bool, error) { + //如果已经存在则限制 + var count int64 + if err := db.DB.MysqlDB.DefaultGormDB().Table("ip_limits").Where("ip=? and limit_register=? and limit_time>now()", RegisterIp, 1).Count(&count).Error; err != nil { + return false, err + } + return count > 0, nil +} + +func IsLimitLoginIp(LoginIp string) (bool, error) { + //如果已经存在则限制 + var count int64 + if err := db.DB.MysqlDB.DefaultGormDB().Table("ip_limits").Where("ip=? and limit_login=? and limit_time>now()", LoginIp, 1).Count(&count).Error; err != nil { + return false, err + } + return count > 0, nil +} + +func IsLimitUserLoginIp(userID string, LoginIp string) (bool, error) { + //如果已经存在则放行 + var count int64 + if err := db.DB.MysqlDB.DefaultGormDB().Table("user_ip_limits").Where("ip=? and user_id=?", LoginIp, userID).Count(&count).Error; err != nil { + return false, err + } + return count == 0, nil +} diff --git a/pkg/proto/auth/auth.pb.go b/pkg/proto/auth/auth.pb.go index 09f54b1f9..7035233c0 100644 --- a/pkg/proto/auth/auth.pb.go +++ b/pkg/proto/auth/auth.pb.go @@ -1,395 +1,680 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.15.5 // source: auth/auth.proto -package pbAuth // import "./auth" - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" -import sdk_ws "Open_IM/pkg/proto/sdk_ws" +package pbAuth import ( - context "golang.org/x/net/context" + sdk_ws "Open_IM/pkg/proto/sdk_ws" + context "context" grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) type CommonResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ErrCode int32 `protobuf:"varint,1,opt,name=errCode,proto3" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg,omitempty"` } -func (m *CommonResp) Reset() { *m = CommonResp{} } -func (m *CommonResp) String() string { return proto.CompactTextString(m) } -func (*CommonResp) ProtoMessage() {} +func (x *CommonResp) Reset() { + *x = CommonResp{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_auth_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommonResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommonResp) ProtoMessage() {} + +func (x *CommonResp) ProtoReflect() protoreflect.Message { + mi := &file_auth_auth_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 CommonResp.ProtoReflect.Descriptor instead. func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_68293efd650e0000, []int{0} -} -func (m *CommonResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CommonResp.Unmarshal(m, b) -} -func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic) -} -func (dst *CommonResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_CommonResp.Merge(dst, src) -} -func (m *CommonResp) XXX_Size() int { - return xxx_messageInfo_CommonResp.Size(m) -} -func (m *CommonResp) XXX_DiscardUnknown() { - xxx_messageInfo_CommonResp.DiscardUnknown(m) + return file_auth_auth_proto_rawDescGZIP(), []int{0} } -var xxx_messageInfo_CommonResp proto.InternalMessageInfo - -func (m *CommonResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *CommonResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *CommonResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *CommonResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } type UserRegisterReq struct { - UserInfo *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=UserInfo" json:"UserInfo,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserInfo *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=UserInfo,proto3" json:"UserInfo,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *UserRegisterReq) Reset() { *m = UserRegisterReq{} } -func (m *UserRegisterReq) String() string { return proto.CompactTextString(m) } -func (*UserRegisterReq) ProtoMessage() {} +func (x *UserRegisterReq) Reset() { + *x = UserRegisterReq{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_auth_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserRegisterReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserRegisterReq) ProtoMessage() {} + +func (x *UserRegisterReq) ProtoReflect() protoreflect.Message { + mi := &file_auth_auth_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 UserRegisterReq.ProtoReflect.Descriptor instead. func (*UserRegisterReq) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_68293efd650e0000, []int{1} -} -func (m *UserRegisterReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserRegisterReq.Unmarshal(m, b) -} -func (m *UserRegisterReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserRegisterReq.Marshal(b, m, deterministic) -} -func (dst *UserRegisterReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserRegisterReq.Merge(dst, src) -} -func (m *UserRegisterReq) XXX_Size() int { - return xxx_messageInfo_UserRegisterReq.Size(m) -} -func (m *UserRegisterReq) XXX_DiscardUnknown() { - xxx_messageInfo_UserRegisterReq.DiscardUnknown(m) + return file_auth_auth_proto_rawDescGZIP(), []int{1} } -var xxx_messageInfo_UserRegisterReq proto.InternalMessageInfo - -func (m *UserRegisterReq) GetUserInfo() *sdk_ws.UserInfo { - if m != nil { - return m.UserInfo +func (x *UserRegisterReq) GetUserInfo() *sdk_ws.UserInfo { + if x != nil { + return x.UserInfo } return nil } -func (m *UserRegisterReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *UserRegisterReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type UserRegisterResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (m *UserRegisterResp) Reset() { *m = UserRegisterResp{} } -func (m *UserRegisterResp) String() string { return proto.CompactTextString(m) } -func (*UserRegisterResp) ProtoMessage() {} +func (x *UserRegisterResp) Reset() { + *x = UserRegisterResp{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_auth_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserRegisterResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserRegisterResp) ProtoMessage() {} + +func (x *UserRegisterResp) ProtoReflect() protoreflect.Message { + mi := &file_auth_auth_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 UserRegisterResp.ProtoReflect.Descriptor instead. func (*UserRegisterResp) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_68293efd650e0000, []int{2} -} -func (m *UserRegisterResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserRegisterResp.Unmarshal(m, b) -} -func (m *UserRegisterResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserRegisterResp.Marshal(b, m, deterministic) -} -func (dst *UserRegisterResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserRegisterResp.Merge(dst, src) -} -func (m *UserRegisterResp) XXX_Size() int { - return xxx_messageInfo_UserRegisterResp.Size(m) -} -func (m *UserRegisterResp) XXX_DiscardUnknown() { - xxx_messageInfo_UserRegisterResp.DiscardUnknown(m) + return file_auth_auth_proto_rawDescGZIP(), []int{2} } -var xxx_messageInfo_UserRegisterResp proto.InternalMessageInfo - -func (m *UserRegisterResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *UserRegisterResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type UserTokenReq struct { - Platform int32 `protobuf:"varint,1,opt,name=Platform" json:"Platform,omitempty"` - FromUserID string `protobuf:"bytes,2,opt,name=FromUserID" json:"FromUserID,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform int32 `protobuf:"varint,1,opt,name=Platform,proto3" json:"Platform,omitempty"` + FromUserID string `protobuf:"bytes,2,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + LoginIp string `protobuf:"bytes,5,opt,name=LoginIp,proto3" json:"LoginIp,omitempty"` } -func (m *UserTokenReq) Reset() { *m = UserTokenReq{} } -func (m *UserTokenReq) String() string { return proto.CompactTextString(m) } -func (*UserTokenReq) ProtoMessage() {} +func (x *UserTokenReq) Reset() { + *x = UserTokenReq{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_auth_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserTokenReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserTokenReq) ProtoMessage() {} + +func (x *UserTokenReq) ProtoReflect() protoreflect.Message { + mi := &file_auth_auth_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 UserTokenReq.ProtoReflect.Descriptor instead. func (*UserTokenReq) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_68293efd650e0000, []int{3} -} -func (m *UserTokenReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserTokenReq.Unmarshal(m, b) -} -func (m *UserTokenReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserTokenReq.Marshal(b, m, deterministic) -} -func (dst *UserTokenReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserTokenReq.Merge(dst, src) -} -func (m *UserTokenReq) XXX_Size() int { - return xxx_messageInfo_UserTokenReq.Size(m) -} -func (m *UserTokenReq) XXX_DiscardUnknown() { - xxx_messageInfo_UserTokenReq.DiscardUnknown(m) + return file_auth_auth_proto_rawDescGZIP(), []int{3} } -var xxx_messageInfo_UserTokenReq proto.InternalMessageInfo - -func (m *UserTokenReq) GetPlatform() int32 { - if m != nil { - return m.Platform +func (x *UserTokenReq) GetPlatform() int32 { + if x != nil { + return x.Platform } return 0 } -func (m *UserTokenReq) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *UserTokenReq) GetFromUserID() string { + if x != nil { + return x.FromUserID } return "" } -func (m *UserTokenReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *UserTokenReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *UserTokenReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *UserTokenReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +func (x *UserTokenReq) GetLoginIp() string { + if x != nil { + return x.LoginIp } return "" } type UserTokenResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` - ExpiredTime int64 `protobuf:"varint,3,opt,name=ExpiredTime" json:"ExpiredTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + Token string `protobuf:"bytes,2,opt,name=Token,proto3" json:"Token,omitempty"` + ExpiredTime int64 `protobuf:"varint,3,opt,name=ExpiredTime,proto3" json:"ExpiredTime,omitempty"` } -func (m *UserTokenResp) Reset() { *m = UserTokenResp{} } -func (m *UserTokenResp) String() string { return proto.CompactTextString(m) } -func (*UserTokenResp) ProtoMessage() {} +func (x *UserTokenResp) Reset() { + *x = UserTokenResp{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_auth_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserTokenResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserTokenResp) ProtoMessage() {} + +func (x *UserTokenResp) ProtoReflect() protoreflect.Message { + mi := &file_auth_auth_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 UserTokenResp.ProtoReflect.Descriptor instead. func (*UserTokenResp) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_68293efd650e0000, []int{4} -} -func (m *UserTokenResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserTokenResp.Unmarshal(m, b) -} -func (m *UserTokenResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserTokenResp.Marshal(b, m, deterministic) -} -func (dst *UserTokenResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserTokenResp.Merge(dst, src) -} -func (m *UserTokenResp) XXX_Size() int { - return xxx_messageInfo_UserTokenResp.Size(m) -} -func (m *UserTokenResp) XXX_DiscardUnknown() { - xxx_messageInfo_UserTokenResp.DiscardUnknown(m) + return file_auth_auth_proto_rawDescGZIP(), []int{4} } -var xxx_messageInfo_UserTokenResp proto.InternalMessageInfo - -func (m *UserTokenResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *UserTokenResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *UserTokenResp) GetToken() string { - if m != nil { - return m.Token +func (x *UserTokenResp) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *UserTokenResp) GetExpiredTime() int64 { - if m != nil { - return m.ExpiredTime +func (x *UserTokenResp) GetExpiredTime() int64 { + if x != nil { + return x.ExpiredTime } return 0 } type ForceLogoutReq struct { - Platform int32 `protobuf:"varint,1,opt,name=Platform" json:"Platform,omitempty"` - FromUserID string `protobuf:"bytes,2,opt,name=FromUserID" json:"FromUserID,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform int32 `protobuf:"varint,1,opt,name=Platform,proto3" json:"Platform,omitempty"` + FromUserID string `protobuf:"bytes,2,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *ForceLogoutReq) Reset() { *m = ForceLogoutReq{} } -func (m *ForceLogoutReq) String() string { return proto.CompactTextString(m) } -func (*ForceLogoutReq) ProtoMessage() {} +func (x *ForceLogoutReq) Reset() { + *x = ForceLogoutReq{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_auth_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ForceLogoutReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ForceLogoutReq) ProtoMessage() {} + +func (x *ForceLogoutReq) ProtoReflect() protoreflect.Message { + mi := &file_auth_auth_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 ForceLogoutReq.ProtoReflect.Descriptor instead. func (*ForceLogoutReq) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_68293efd650e0000, []int{5} -} -func (m *ForceLogoutReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ForceLogoutReq.Unmarshal(m, b) -} -func (m *ForceLogoutReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ForceLogoutReq.Marshal(b, m, deterministic) -} -func (dst *ForceLogoutReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_ForceLogoutReq.Merge(dst, src) -} -func (m *ForceLogoutReq) XXX_Size() int { - return xxx_messageInfo_ForceLogoutReq.Size(m) -} -func (m *ForceLogoutReq) XXX_DiscardUnknown() { - xxx_messageInfo_ForceLogoutReq.DiscardUnknown(m) + return file_auth_auth_proto_rawDescGZIP(), []int{5} } -var xxx_messageInfo_ForceLogoutReq proto.InternalMessageInfo - -func (m *ForceLogoutReq) GetPlatform() int32 { - if m != nil { - return m.Platform +func (x *ForceLogoutReq) GetPlatform() int32 { + if x != nil { + return x.Platform } return 0 } -func (m *ForceLogoutReq) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *ForceLogoutReq) GetFromUserID() string { + if x != nil { + return x.FromUserID } return "" } -func (m *ForceLogoutReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *ForceLogoutReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *ForceLogoutReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *ForceLogoutReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type ForceLogoutResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (m *ForceLogoutResp) Reset() { *m = ForceLogoutResp{} } -func (m *ForceLogoutResp) String() string { return proto.CompactTextString(m) } -func (*ForceLogoutResp) ProtoMessage() {} +func (x *ForceLogoutResp) Reset() { + *x = ForceLogoutResp{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_auth_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ForceLogoutResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ForceLogoutResp) ProtoMessage() {} + +func (x *ForceLogoutResp) ProtoReflect() protoreflect.Message { + mi := &file_auth_auth_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 ForceLogoutResp.ProtoReflect.Descriptor instead. func (*ForceLogoutResp) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_68293efd650e0000, []int{6} -} -func (m *ForceLogoutResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ForceLogoutResp.Unmarshal(m, b) -} -func (m *ForceLogoutResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ForceLogoutResp.Marshal(b, m, deterministic) -} -func (dst *ForceLogoutResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_ForceLogoutResp.Merge(dst, src) -} -func (m *ForceLogoutResp) XXX_Size() int { - return xxx_messageInfo_ForceLogoutResp.Size(m) -} -func (m *ForceLogoutResp) XXX_DiscardUnknown() { - xxx_messageInfo_ForceLogoutResp.DiscardUnknown(m) + return file_auth_auth_proto_rawDescGZIP(), []int{6} } -var xxx_messageInfo_ForceLogoutResp proto.InternalMessageInfo - -func (m *ForceLogoutResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *ForceLogoutResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func init() { - proto.RegisterType((*CommonResp)(nil), "pbAuth.CommonResp") - proto.RegisterType((*UserRegisterReq)(nil), "pbAuth.UserRegisterReq") - proto.RegisterType((*UserRegisterResp)(nil), "pbAuth.UserRegisterResp") - proto.RegisterType((*UserTokenReq)(nil), "pbAuth.UserTokenReq") - proto.RegisterType((*UserTokenResp)(nil), "pbAuth.UserTokenResp") - proto.RegisterType((*ForceLogoutReq)(nil), "pbAuth.ForceLogoutReq") - proto.RegisterType((*ForceLogoutResp)(nil), "pbAuth.ForceLogoutResp") +var File_auth_auth_proto protoreflect.FileDescriptor + +var file_auth_auth_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x06, 0x70, 0x62, 0x41, 0x75, 0x74, 0x68, 0x1a, 0x21, 0x4f, 0x70, 0x65, 0x6e, 0x5f, + 0x49, 0x4d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x64, 0x6b, + 0x5f, 0x77, 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3e, 0x0a, 0x0a, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, + 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x6c, 0x0a, 0x0f, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, + 0x37, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x46, 0x0a, 0x10, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x32, + 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0xa2, 0x01, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, + 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, + 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x22, 0x7b, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x32, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, + 0x62, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x0e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4c, 0x6f, + 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x22, 0x45, 0x0a, 0x0f, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x32, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x41, 0x75, 0x74, + 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x32, 0xc3, 0x01, 0x0a, 0x04, 0x41, 0x75, 0x74, + 0x68, 0x12, 0x41, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x41, + 0x75, 0x74, 0x68, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x41, 0x75, 0x74, 0x68, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3e, + 0x0a, 0x0b, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x2e, + 0x70, 0x62, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x67, 0x6f, + 0x75, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x46, + 0x6f, 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, + 0x5a, 0x0d, 0x2e, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x3b, 0x70, 0x62, 0x41, 0x75, 0x74, 0x68, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_auth_auth_proto_rawDescOnce sync.Once + file_auth_auth_proto_rawDescData = file_auth_auth_proto_rawDesc +) + +func file_auth_auth_proto_rawDescGZIP() []byte { + file_auth_auth_proto_rawDescOnce.Do(func() { + file_auth_auth_proto_rawDescData = protoimpl.X.CompressGZIP(file_auth_auth_proto_rawDescData) + }) + return file_auth_auth_proto_rawDescData +} + +var file_auth_auth_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_auth_auth_proto_goTypes = []interface{}{ + (*CommonResp)(nil), // 0: pbAuth.CommonResp + (*UserRegisterReq)(nil), // 1: pbAuth.UserRegisterReq + (*UserRegisterResp)(nil), // 2: pbAuth.UserRegisterResp + (*UserTokenReq)(nil), // 3: pbAuth.UserTokenReq + (*UserTokenResp)(nil), // 4: pbAuth.UserTokenResp + (*ForceLogoutReq)(nil), // 5: pbAuth.ForceLogoutReq + (*ForceLogoutResp)(nil), // 6: pbAuth.ForceLogoutResp + (*sdk_ws.UserInfo)(nil), // 7: server_api_params.UserInfo +} +var file_auth_auth_proto_depIdxs = []int32{ + 7, // 0: pbAuth.UserRegisterReq.UserInfo:type_name -> server_api_params.UserInfo + 0, // 1: pbAuth.UserRegisterResp.CommonResp:type_name -> pbAuth.CommonResp + 0, // 2: pbAuth.UserTokenResp.CommonResp:type_name -> pbAuth.CommonResp + 0, // 3: pbAuth.ForceLogoutResp.CommonResp:type_name -> pbAuth.CommonResp + 1, // 4: pbAuth.Auth.UserRegister:input_type -> pbAuth.UserRegisterReq + 3, // 5: pbAuth.Auth.UserToken:input_type -> pbAuth.UserTokenReq + 5, // 6: pbAuth.Auth.ForceLogout:input_type -> pbAuth.ForceLogoutReq + 2, // 7: pbAuth.Auth.UserRegister:output_type -> pbAuth.UserRegisterResp + 4, // 8: pbAuth.Auth.UserToken:output_type -> pbAuth.UserTokenResp + 6, // 9: pbAuth.Auth.ForceLogout:output_type -> pbAuth.ForceLogoutResp + 7, // [7:10] is the sub-list for method output_type + 4, // [4:7] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_auth_auth_proto_init() } +func file_auth_auth_proto_init() { + if File_auth_auth_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_auth_auth_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommonResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_auth_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserRegisterReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_auth_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserRegisterResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_auth_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserTokenReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_auth_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserTokenResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_auth_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ForceLogoutReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_auth_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ForceLogoutResp); 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_auth_auth_proto_rawDesc, + NumEnums: 0, + NumMessages: 7, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_auth_auth_proto_goTypes, + DependencyIndexes: file_auth_auth_proto_depIdxs, + MessageInfos: file_auth_auth_proto_msgTypes, + }.Build() + File_auth_auth_proto = out.File + file_auth_auth_proto_rawDesc = nil + file_auth_auth_proto_goTypes = nil + file_auth_auth_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConn +var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 - -// Client API for Auth service +const _ = grpc.SupportPackageIsVersion6 +// AuthClient is the client API for Auth service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type AuthClient interface { UserRegister(ctx context.Context, in *UserRegisterReq, opts ...grpc.CallOption) (*UserRegisterResp, error) UserToken(ctx context.Context, in *UserTokenReq, opts ...grpc.CallOption) (*UserTokenResp, error) @@ -397,16 +682,16 @@ type AuthClient interface { } type authClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewAuthClient(cc *grpc.ClientConn) AuthClient { +func NewAuthClient(cc grpc.ClientConnInterface) AuthClient { return &authClient{cc} } func (c *authClient) UserRegister(ctx context.Context, in *UserRegisterReq, opts ...grpc.CallOption) (*UserRegisterResp, error) { out := new(UserRegisterResp) - err := grpc.Invoke(ctx, "/pbAuth.Auth/UserRegister", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/pbAuth.Auth/UserRegister", in, out, opts...) if err != nil { return nil, err } @@ -415,7 +700,7 @@ func (c *authClient) UserRegister(ctx context.Context, in *UserRegisterReq, opts func (c *authClient) UserToken(ctx context.Context, in *UserTokenReq, opts ...grpc.CallOption) (*UserTokenResp, error) { out := new(UserTokenResp) - err := grpc.Invoke(ctx, "/pbAuth.Auth/UserToken", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/pbAuth.Auth/UserToken", in, out, opts...) if err != nil { return nil, err } @@ -424,21 +709,34 @@ func (c *authClient) UserToken(ctx context.Context, in *UserTokenReq, opts ...gr func (c *authClient) ForceLogout(ctx context.Context, in *ForceLogoutReq, opts ...grpc.CallOption) (*ForceLogoutResp, error) { out := new(ForceLogoutResp) - err := grpc.Invoke(ctx, "/pbAuth.Auth/ForceLogout", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/pbAuth.Auth/ForceLogout", in, out, opts...) if err != nil { return nil, err } return out, nil } -// Server API for Auth service - +// AuthServer is the server API for Auth service. type AuthServer interface { UserRegister(context.Context, *UserRegisterReq) (*UserRegisterResp, error) UserToken(context.Context, *UserTokenReq) (*UserTokenResp, error) ForceLogout(context.Context, *ForceLogoutReq) (*ForceLogoutResp, error) } +// UnimplementedAuthServer can be embedded to have forward compatible implementations. +type UnimplementedAuthServer struct { +} + +func (*UnimplementedAuthServer) UserRegister(context.Context, *UserRegisterReq) (*UserRegisterResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UserRegister not implemented") +} +func (*UnimplementedAuthServer) UserToken(context.Context, *UserTokenReq) (*UserTokenResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UserToken not implemented") +} +func (*UnimplementedAuthServer) ForceLogout(context.Context, *ForceLogoutReq) (*ForceLogoutResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ForceLogout not implemented") +} + func RegisterAuthServer(s *grpc.Server, srv AuthServer) { s.RegisterService(&_Auth_serviceDesc, srv) } @@ -517,36 +815,3 @@ var _Auth_serviceDesc = grpc.ServiceDesc{ Streams: []grpc.StreamDesc{}, Metadata: "auth/auth.proto", } - -func init() { proto.RegisterFile("auth/auth.proto", fileDescriptor_auth_68293efd650e0000) } - -var fileDescriptor_auth_68293efd650e0000 = []byte{ - // 417 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x53, 0x5d, 0x8b, 0xda, 0x40, - 0x14, 0x25, 0xf5, 0xa3, 0x7a, 0xad, 0x4d, 0x19, 0xac, 0x86, 0x14, 0x8a, 0xcd, 0x93, 0x4f, 0x09, - 0xd8, 0x87, 0x16, 0x0a, 0x82, 0xb5, 0x0a, 0x42, 0xc5, 0x12, 0xec, 0xcb, 0xbe, 0x84, 0xb8, 0x8e, - 0x31, 0x68, 0x32, 0xb3, 0x33, 0x71, 0x5d, 0xd8, 0x3f, 0xb0, 0xec, 0xdf, 0xda, 0x3f, 0xb6, 0xcc, - 0xe4, 0x63, 0x47, 0xd7, 0x27, 0x5f, 0xf6, 0x25, 0xe1, 0x9e, 0x73, 0x66, 0xee, 0x39, 0x77, 0x66, - 0x40, 0xf7, 0xf7, 0xc9, 0xc6, 0x11, 0x1f, 0x9b, 0x32, 0x92, 0x10, 0x54, 0xa5, 0xcb, 0xe1, 0x3e, - 0xd9, 0x98, 0xdf, 0xe6, 0x14, 0xc7, 0xde, 0x74, 0xe6, 0xd0, 0x6d, 0xe0, 0x48, 0xca, 0xe1, 0xab, - 0xad, 0x77, 0xe0, 0xce, 0x81, 0xa7, 0x52, 0x6b, 0x00, 0x30, 0x22, 0x51, 0x44, 0x62, 0x17, 0x73, - 0x8a, 0x0c, 0x78, 0x8f, 0x19, 0x1b, 0x91, 0x15, 0x36, 0xb4, 0xae, 0xd6, 0xab, 0xb8, 0x79, 0x89, - 0xda, 0x50, 0xc5, 0x8c, 0xcd, 0x78, 0x60, 0xbc, 0xeb, 0x6a, 0xbd, 0xba, 0x9b, 0x55, 0xd6, 0x0e, - 0xf4, 0xff, 0x1c, 0x33, 0x17, 0x07, 0x21, 0x4f, 0xc4, 0xff, 0x06, 0xfd, 0x80, 0x9a, 0x80, 0xa6, - 0xf1, 0x9a, 0xc8, 0x5d, 0x1a, 0xfd, 0x2f, 0x36, 0xc7, 0xec, 0x16, 0x33, 0xcf, 0xa7, 0xa1, 0x47, - 0x7d, 0xe6, 0x47, 0xdc, 0xce, 0x25, 0x6e, 0x21, 0x46, 0x5d, 0x68, 0xcc, 0x29, 0x66, 0x7e, 0x12, - 0x92, 0x78, 0xfa, 0x27, 0x6b, 0xa4, 0x42, 0xd6, 0x04, 0x3e, 0x1d, 0x77, 0xe3, 0x14, 0xf5, 0xd5, - 0x04, 0x59, 0x43, 0x64, 0xa7, 0x13, 0xb0, 0x5f, 0x18, 0x57, 0x51, 0x59, 0x0f, 0x1a, 0x7c, 0x10, - 0x1b, 0x2d, 0xc8, 0x16, 0xc7, 0xc2, 0xb3, 0x09, 0xb5, 0x7f, 0x3b, 0x3f, 0x59, 0x13, 0x16, 0x65, - 0xc9, 0x8b, 0x1a, 0x7d, 0x05, 0x98, 0x30, 0x12, 0x49, 0x9b, 0xb9, 0x2b, 0x05, 0x11, 0x6b, 0xe7, - 0x34, 0x63, 0x4b, 0x92, 0x2d, 0xea, 0xd3, 0x48, 0xe5, 0xd7, 0x91, 0xee, 0xa1, 0xa9, 0x38, 0xb9, - 0x2c, 0x0f, 0x6a, 0x41, 0x45, 0x6e, 0x90, 0xb9, 0x4b, 0x0b, 0xd1, 0x7c, 0x7c, 0x47, 0x43, 0x86, - 0x57, 0x8b, 0x30, 0xc2, 0xd2, 0x5b, 0xc9, 0x55, 0x21, 0xeb, 0x51, 0x83, 0x8f, 0x13, 0xc2, 0xae, - 0xf1, 0x5f, 0x12, 0x90, 0x7d, 0xf2, 0xb6, 0x93, 0x18, 0x83, 0x7e, 0xe4, 0xe5, 0xb2, 0x59, 0xf4, - 0x9f, 0x34, 0x28, 0x0b, 0x1e, 0x0d, 0xd3, 0x33, 0xce, 0x2f, 0x0b, 0xea, 0xe4, 0x0b, 0x4f, 0x2e, - 0xac, 0x69, 0x9c, 0x27, 0x38, 0x45, 0x3f, 0xa1, 0x5e, 0x1c, 0x0e, 0x6a, 0xa9, 0xb2, 0xfc, 0xe6, - 0x98, 0x9f, 0xcf, 0xa0, 0x9c, 0xa2, 0x01, 0x34, 0x94, 0x30, 0xa8, 0x9d, 0xab, 0x8e, 0xa7, 0x6d, - 0x76, 0xce, 0xe2, 0x9c, 0xfe, 0xd6, 0xaf, 0x9a, 0xb6, 0x7c, 0xd2, 0xbf, 0x52, 0xc1, 0xb2, 0x2a, - 0xdf, 0xeb, 0xf7, 0xe7, 0x00, 0x00, 0x00, 0xff, 0xff, 0xed, 0x61, 0xac, 0x2b, 0xed, 0x03, 0x00, - 0x00, -} diff --git a/pkg/proto/auth/auth.proto b/pkg/proto/auth/auth.proto index 53a14d760..675aa1a02 100644 --- a/pkg/proto/auth/auth.proto +++ b/pkg/proto/auth/auth.proto @@ -22,6 +22,7 @@ message UserTokenReq { string FromUserID = 2; string OpUserID = 3; string OperationID = 4; + string LoginIp = 5; } message UserTokenResp { CommonResp CommonResp = 1; diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index b62698035..924ee2c48 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,3989 +1,4532 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.15.5 // source: sdk_ws/ws.proto -package server_api_params // import "Open_IM/pkg/proto/sdk_ws" +package server_api_params -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" -import wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + reflect "reflect" + sync "sync" +) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) type GroupInfo struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` - FaceURL string `protobuf:"bytes,5,opt,name=faceURL" json:"faceURL,omitempty"` - OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID" json:"ownerUserID,omitempty"` - CreateTime uint32 `protobuf:"varint,7,opt,name=createTime" json:"createTime,omitempty"` - MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount" json:"memberCount,omitempty"` - Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` - Status int32 `protobuf:"varint,10,opt,name=status" json:"status,omitempty"` - CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID" json:"creatorUserID,omitempty"` - GroupType int32 `protobuf:"varint,12,opt,name=groupType" json:"groupType,omitempty"` - NeedVerification int32 `protobuf:"varint,13,opt,name=needVerification" json:"needVerification,omitempty"` - LookMemberInfo int32 `protobuf:"varint,14,opt,name=lookMemberInfo" json:"lookMemberInfo,omitempty"` - ApplyMemberFriend int32 `protobuf:"varint,15,opt,name=applyMemberFriend" json:"applyMemberFriend,omitempty"` - NotificationUpdateTime uint32 `protobuf:"varint,16,opt,name=notificationUpdateTime" json:"notificationUpdateTime,omitempty"` - NotificationUserID string `protobuf:"bytes,17,opt,name=notificationUserID" json:"notificationUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"` + FaceURL string `protobuf:"bytes,5,opt,name=faceURL,proto3" json:"faceURL,omitempty"` + OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"` + CreateTime uint32 `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"` + MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount,proto3" json:"memberCount,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=ex,proto3" json:"ex,omitempty"` + Status int32 `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"` + CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID,proto3" json:"creatorUserID,omitempty"` + GroupType int32 `protobuf:"varint,12,opt,name=groupType,proto3" json:"groupType,omitempty"` + NeedVerification int32 `protobuf:"varint,13,opt,name=needVerification,proto3" json:"needVerification,omitempty"` + LookMemberInfo int32 `protobuf:"varint,14,opt,name=lookMemberInfo,proto3" json:"lookMemberInfo,omitempty"` + ApplyMemberFriend int32 `protobuf:"varint,15,opt,name=applyMemberFriend,proto3" json:"applyMemberFriend,omitempty"` + NotificationUpdateTime uint32 `protobuf:"varint,16,opt,name=notificationUpdateTime,proto3" json:"notificationUpdateTime,omitempty"` + NotificationUserID string `protobuf:"bytes,17,opt,name=notificationUserID,proto3" json:"notificationUserID,omitempty"` } -func (m *GroupInfo) Reset() { *m = GroupInfo{} } -func (m *GroupInfo) String() string { return proto.CompactTextString(m) } -func (*GroupInfo) ProtoMessage() {} +func (x *GroupInfo) Reset() { + *x = GroupInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupInfo) ProtoMessage() {} + +func (x *GroupInfo) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 GroupInfo.ProtoReflect.Descriptor instead. func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{0} -} -func (m *GroupInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupInfo.Unmarshal(m, b) -} -func (m *GroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupInfo.Marshal(b, m, deterministic) -} -func (dst *GroupInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupInfo.Merge(dst, src) -} -func (m *GroupInfo) XXX_Size() int { - return xxx_messageInfo_GroupInfo.Size(m) -} -func (m *GroupInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupInfo.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{0} } -var xxx_messageInfo_GroupInfo proto.InternalMessageInfo - -func (m *GroupInfo) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GroupInfo) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GroupInfo) GetGroupName() string { - if m != nil { - return m.GroupName +func (x *GroupInfo) GetGroupName() string { + if x != nil { + return x.GroupName } return "" } -func (m *GroupInfo) GetNotification() string { - if m != nil { - return m.Notification +func (x *GroupInfo) GetNotification() string { + if x != nil { + return x.Notification } return "" } -func (m *GroupInfo) GetIntroduction() string { - if m != nil { - return m.Introduction +func (x *GroupInfo) GetIntroduction() string { + if x != nil { + return x.Introduction } return "" } -func (m *GroupInfo) GetFaceURL() string { - if m != nil { - return m.FaceURL +func (x *GroupInfo) GetFaceURL() string { + if x != nil { + return x.FaceURL } return "" } -func (m *GroupInfo) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID +func (x *GroupInfo) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID } return "" } -func (m *GroupInfo) GetCreateTime() uint32 { - if m != nil { - return m.CreateTime +func (x *GroupInfo) GetCreateTime() uint32 { + if x != nil { + return x.CreateTime } return 0 } -func (m *GroupInfo) GetMemberCount() uint32 { - if m != nil { - return m.MemberCount +func (x *GroupInfo) GetMemberCount() uint32 { + if x != nil { + return x.MemberCount } return 0 } -func (m *GroupInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *GroupInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } -func (m *GroupInfo) GetStatus() int32 { - if m != nil { - return m.Status +func (x *GroupInfo) GetStatus() int32 { + if x != nil { + return x.Status } return 0 } -func (m *GroupInfo) GetCreatorUserID() string { - if m != nil { - return m.CreatorUserID +func (x *GroupInfo) GetCreatorUserID() string { + if x != nil { + return x.CreatorUserID } return "" } -func (m *GroupInfo) GetGroupType() int32 { - if m != nil { - return m.GroupType +func (x *GroupInfo) GetGroupType() int32 { + if x != nil { + return x.GroupType } return 0 } -func (m *GroupInfo) GetNeedVerification() int32 { - if m != nil { - return m.NeedVerification +func (x *GroupInfo) GetNeedVerification() int32 { + if x != nil { + return x.NeedVerification } return 0 } -func (m *GroupInfo) GetLookMemberInfo() int32 { - if m != nil { - return m.LookMemberInfo +func (x *GroupInfo) GetLookMemberInfo() int32 { + if x != nil { + return x.LookMemberInfo } return 0 } -func (m *GroupInfo) GetApplyMemberFriend() int32 { - if m != nil { - return m.ApplyMemberFriend +func (x *GroupInfo) GetApplyMemberFriend() int32 { + if x != nil { + return x.ApplyMemberFriend } return 0 } -func (m *GroupInfo) GetNotificationUpdateTime() uint32 { - if m != nil { - return m.NotificationUpdateTime +func (x *GroupInfo) GetNotificationUpdateTime() uint32 { + if x != nil { + return x.NotificationUpdateTime } return 0 } -func (m *GroupInfo) GetNotificationUserID() string { - if m != nil { - return m.NotificationUserID +func (x *GroupInfo) GetNotificationUserID() string { + if x != nil { + return x.NotificationUserID } return "" } type GroupInfoForSet struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` - FaceURL string `protobuf:"bytes,5,opt,name=faceURL" json:"faceURL,omitempty"` - Ex string `protobuf:"bytes,6,opt,name=ex" json:"ex,omitempty"` - NeedVerification *wrapperspb.Int32Value `protobuf:"bytes,7,opt,name=needVerification" json:"needVerification,omitempty"` - LookMemberInfo *wrapperspb.Int32Value `protobuf:"bytes,8,opt,name=lookMemberInfo" json:"lookMemberInfo,omitempty"` - ApplyMemberFriend *wrapperspb.Int32Value `protobuf:"bytes,9,opt,name=applyMemberFriend" json:"applyMemberFriend,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"` + FaceURL string `protobuf:"bytes,5,opt,name=faceURL,proto3" json:"faceURL,omitempty"` + Ex string `protobuf:"bytes,6,opt,name=ex,proto3" json:"ex,omitempty"` + NeedVerification *wrapperspb.Int32Value `protobuf:"bytes,7,opt,name=needVerification,proto3" json:"needVerification,omitempty"` + LookMemberInfo *wrapperspb.Int32Value `protobuf:"bytes,8,opt,name=lookMemberInfo,proto3" json:"lookMemberInfo,omitempty"` + ApplyMemberFriend *wrapperspb.Int32Value `protobuf:"bytes,9,opt,name=applyMemberFriend,proto3" json:"applyMemberFriend,omitempty"` } -func (m *GroupInfoForSet) Reset() { *m = GroupInfoForSet{} } -func (m *GroupInfoForSet) String() string { return proto.CompactTextString(m) } -func (*GroupInfoForSet) ProtoMessage() {} +func (x *GroupInfoForSet) Reset() { + *x = GroupInfoForSet{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupInfoForSet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupInfoForSet) ProtoMessage() {} + +func (x *GroupInfoForSet) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 GroupInfoForSet.ProtoReflect.Descriptor instead. func (*GroupInfoForSet) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{1} -} -func (m *GroupInfoForSet) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupInfoForSet.Unmarshal(m, b) -} -func (m *GroupInfoForSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupInfoForSet.Marshal(b, m, deterministic) -} -func (dst *GroupInfoForSet) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupInfoForSet.Merge(dst, src) -} -func (m *GroupInfoForSet) XXX_Size() int { - return xxx_messageInfo_GroupInfoForSet.Size(m) -} -func (m *GroupInfoForSet) XXX_DiscardUnknown() { - xxx_messageInfo_GroupInfoForSet.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{1} } -var xxx_messageInfo_GroupInfoForSet proto.InternalMessageInfo - -func (m *GroupInfoForSet) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GroupInfoForSet) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GroupInfoForSet) GetGroupName() string { - if m != nil { - return m.GroupName +func (x *GroupInfoForSet) GetGroupName() string { + if x != nil { + return x.GroupName } return "" } -func (m *GroupInfoForSet) GetNotification() string { - if m != nil { - return m.Notification +func (x *GroupInfoForSet) GetNotification() string { + if x != nil { + return x.Notification } return "" } -func (m *GroupInfoForSet) GetIntroduction() string { - if m != nil { - return m.Introduction +func (x *GroupInfoForSet) GetIntroduction() string { + if x != nil { + return x.Introduction } return "" } -func (m *GroupInfoForSet) GetFaceURL() string { - if m != nil { - return m.FaceURL +func (x *GroupInfoForSet) GetFaceURL() string { + if x != nil { + return x.FaceURL } return "" } -func (m *GroupInfoForSet) GetEx() string { - if m != nil { - return m.Ex +func (x *GroupInfoForSet) GetEx() string { + if x != nil { + return x.Ex } return "" } -func (m *GroupInfoForSet) GetNeedVerification() *wrapperspb.Int32Value { - if m != nil { - return m.NeedVerification +func (x *GroupInfoForSet) GetNeedVerification() *wrapperspb.Int32Value { + if x != nil { + return x.NeedVerification } return nil } -func (m *GroupInfoForSet) GetLookMemberInfo() *wrapperspb.Int32Value { - if m != nil { - return m.LookMemberInfo +func (x *GroupInfoForSet) GetLookMemberInfo() *wrapperspb.Int32Value { + if x != nil { + return x.LookMemberInfo } return nil } -func (m *GroupInfoForSet) GetApplyMemberFriend() *wrapperspb.Int32Value { - if m != nil { - return m.ApplyMemberFriend +func (x *GroupInfoForSet) GetApplyMemberFriend() *wrapperspb.Int32Value { + if x != nil { + return x.ApplyMemberFriend } return nil } type GroupMemberFullInfo struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` - RoleLevel int32 `protobuf:"varint,3,opt,name=roleLevel" json:"roleLevel,omitempty"` - JoinTime int32 `protobuf:"varint,4,opt,name=joinTime" json:"joinTime,omitempty"` - Nickname string `protobuf:"bytes,5,opt,name=nickname" json:"nickname,omitempty"` - FaceURL string `protobuf:"bytes,6,opt,name=faceURL" json:"faceURL,omitempty"` - AppMangerLevel int32 `protobuf:"varint,7,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` - JoinSource int32 `protobuf:"varint,8,opt,name=joinSource" json:"joinSource,omitempty"` - OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID" json:"operatorUserID,omitempty"` - Ex string `protobuf:"bytes,10,opt,name=ex" json:"ex,omitempty"` - MuteEndTime uint32 `protobuf:"varint,11,opt,name=muteEndTime" json:"muteEndTime,omitempty"` - InviterUserID string `protobuf:"bytes,12,opt,name=inviterUserID" json:"inviterUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"` + RoleLevel int32 `protobuf:"varint,3,opt,name=roleLevel,proto3" json:"roleLevel,omitempty"` + JoinTime int32 `protobuf:"varint,4,opt,name=joinTime,proto3" json:"joinTime,omitempty"` + Nickname string `protobuf:"bytes,5,opt,name=nickname,proto3" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,6,opt,name=faceURL,proto3" json:"faceURL,omitempty"` + AppMangerLevel int32 `protobuf:"varint,7,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"` //if >0 + JoinSource int32 `protobuf:"varint,8,opt,name=joinSource,proto3" json:"joinSource,omitempty"` + OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,10,opt,name=ex,proto3" json:"ex,omitempty"` + MuteEndTime uint32 `protobuf:"varint,11,opt,name=muteEndTime,proto3" json:"muteEndTime,omitempty"` + InviterUserID string `protobuf:"bytes,12,opt,name=inviterUserID,proto3" json:"inviterUserID,omitempty"` } -func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } -func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } -func (*GroupMemberFullInfo) ProtoMessage() {} +func (x *GroupMemberFullInfo) Reset() { + *x = GroupMemberFullInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupMemberFullInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupMemberFullInfo) ProtoMessage() {} + +func (x *GroupMemberFullInfo) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 GroupMemberFullInfo.ProtoReflect.Descriptor instead. func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{2} -} -func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) -} -func (m *GroupMemberFullInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupMemberFullInfo.Marshal(b, m, deterministic) -} -func (dst *GroupMemberFullInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupMemberFullInfo.Merge(dst, src) -} -func (m *GroupMemberFullInfo) XXX_Size() int { - return xxx_messageInfo_GroupMemberFullInfo.Size(m) -} -func (m *GroupMemberFullInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupMemberFullInfo.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{2} } -var xxx_messageInfo_GroupMemberFullInfo proto.InternalMessageInfo - -func (m *GroupMemberFullInfo) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GroupMemberFullInfo) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GroupMemberFullInfo) GetUserID() string { - if m != nil { - return m.UserID +func (x *GroupMemberFullInfo) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *GroupMemberFullInfo) GetRoleLevel() int32 { - if m != nil { - return m.RoleLevel +func (x *GroupMemberFullInfo) GetRoleLevel() int32 { + if x != nil { + return x.RoleLevel } return 0 } -func (m *GroupMemberFullInfo) GetJoinTime() int32 { - if m != nil { - return m.JoinTime +func (x *GroupMemberFullInfo) GetJoinTime() int32 { + if x != nil { + return x.JoinTime } return 0 } -func (m *GroupMemberFullInfo) GetNickname() string { - if m != nil { - return m.Nickname +func (x *GroupMemberFullInfo) GetNickname() string { + if x != nil { + return x.Nickname } return "" } -func (m *GroupMemberFullInfo) GetFaceURL() string { - if m != nil { - return m.FaceURL +func (x *GroupMemberFullInfo) GetFaceURL() string { + if x != nil { + return x.FaceURL } return "" } -func (m *GroupMemberFullInfo) GetAppMangerLevel() int32 { - if m != nil { - return m.AppMangerLevel +func (x *GroupMemberFullInfo) GetAppMangerLevel() int32 { + if x != nil { + return x.AppMangerLevel } return 0 } -func (m *GroupMemberFullInfo) GetJoinSource() int32 { - if m != nil { - return m.JoinSource +func (x *GroupMemberFullInfo) GetJoinSource() int32 { + if x != nil { + return x.JoinSource } return 0 } -func (m *GroupMemberFullInfo) GetOperatorUserID() string { - if m != nil { - return m.OperatorUserID +func (x *GroupMemberFullInfo) GetOperatorUserID() string { + if x != nil { + return x.OperatorUserID } return "" } -func (m *GroupMemberFullInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *GroupMemberFullInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } -func (m *GroupMemberFullInfo) GetMuteEndTime() uint32 { - if m != nil { - return m.MuteEndTime +func (x *GroupMemberFullInfo) GetMuteEndTime() uint32 { + if x != nil { + return x.MuteEndTime } return 0 } -func (m *GroupMemberFullInfo) GetInviterUserID() string { - if m != nil { - return m.InviterUserID +func (x *GroupMemberFullInfo) GetInviterUserID() string { + if x != nil { + return x.InviterUserID } return "" } type PublicUserInfo struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` - FaceURL string `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` - Ex string `protobuf:"bytes,5,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` + Ex string `protobuf:"bytes,5,opt,name=ex,proto3" json:"ex,omitempty"` } -func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } -func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } -func (*PublicUserInfo) ProtoMessage() {} +func (x *PublicUserInfo) Reset() { + *x = PublicUserInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PublicUserInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PublicUserInfo) ProtoMessage() {} + +func (x *PublicUserInfo) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 PublicUserInfo.ProtoReflect.Descriptor instead. func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{3} -} -func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) -} -func (m *PublicUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PublicUserInfo.Marshal(b, m, deterministic) -} -func (dst *PublicUserInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_PublicUserInfo.Merge(dst, src) -} -func (m *PublicUserInfo) XXX_Size() int { - return xxx_messageInfo_PublicUserInfo.Size(m) -} -func (m *PublicUserInfo) XXX_DiscardUnknown() { - xxx_messageInfo_PublicUserInfo.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{3} } -var xxx_messageInfo_PublicUserInfo proto.InternalMessageInfo - -func (m *PublicUserInfo) GetUserID() string { - if m != nil { - return m.UserID +func (x *PublicUserInfo) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *PublicUserInfo) GetNickname() string { - if m != nil { - return m.Nickname +func (x *PublicUserInfo) GetNickname() string { + if x != nil { + return x.Nickname } return "" } -func (m *PublicUserInfo) GetFaceURL() string { - if m != nil { - return m.FaceURL +func (x *PublicUserInfo) GetFaceURL() string { + if x != nil { + return x.FaceURL } return "" } -func (m *PublicUserInfo) GetGender() int32 { - if m != nil { - return m.Gender +func (x *PublicUserInfo) GetGender() int32 { + if x != nil { + return x.Gender } return 0 } -func (m *PublicUserInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *PublicUserInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } type UserInfo struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` - FaceURL string `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` - PhoneNumber string `protobuf:"bytes,5,opt,name=phoneNumber" json:"phoneNumber,omitempty"` - Birth uint32 `protobuf:"varint,6,opt,name=birth" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` - CreateTime uint32 `protobuf:"varint,9,opt,name=createTime" json:"createTime,omitempty"` - AppMangerLevel int32 `protobuf:"varint,10,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` - GlobalRecvMsgOpt int32 `protobuf:"varint,11,opt,name=globalRecvMsgOpt" json:"globalRecvMsgOpt,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` + PhoneNumber string `protobuf:"bytes,5,opt,name=phoneNumber,proto3" json:"phoneNumber,omitempty"` + Birth uint32 `protobuf:"varint,6,opt,name=birth,proto3" json:"birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"` + CreateIp string `protobuf:"bytes,9,opt,name=createIp,proto3" json:"createIp,omitempty"` + CreateTime uint32 `protobuf:"varint,10,opt,name=createTime,proto3" json:"createTime,omitempty"` + LastLoginIp string `protobuf:"bytes,11,opt,name=LastLoginIp,proto3" json:"LastLoginIp,omitempty"` + LastLoginTime uint32 `protobuf:"varint,12,opt,name=LastLoginTime,proto3" json:"LastLoginTime,omitempty"` + LoginTimes int32 `protobuf:"varint,13,opt,name=LoginTimes,proto3" json:"LoginTimes,omitempty"` + LoginLimit int32 `protobuf:"varint,14,opt,name=LoginLimit,proto3" json:"LoginLimit,omitempty"` + AppMangerLevel int32 `protobuf:"varint,15,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"` + GlobalRecvMsgOpt int32 `protobuf:"varint,16,opt,name=globalRecvMsgOpt,proto3" json:"globalRecvMsgOpt,omitempty"` } -func (m *UserInfo) Reset() { *m = UserInfo{} } -func (m *UserInfo) String() string { return proto.CompactTextString(m) } -func (*UserInfo) ProtoMessage() {} +func (x *UserInfo) Reset() { + *x = UserInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserInfo) ProtoMessage() {} + +func (x *UserInfo) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 UserInfo.ProtoReflect.Descriptor instead. func (*UserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{4} -} -func (m *UserInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserInfo.Unmarshal(m, b) -} -func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic) -} -func (dst *UserInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserInfo.Merge(dst, src) -} -func (m *UserInfo) XXX_Size() int { - return xxx_messageInfo_UserInfo.Size(m) -} -func (m *UserInfo) XXX_DiscardUnknown() { - xxx_messageInfo_UserInfo.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{4} } -var xxx_messageInfo_UserInfo proto.InternalMessageInfo - -func (m *UserInfo) GetUserID() string { - if m != nil { - return m.UserID +func (x *UserInfo) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *UserInfo) GetNickname() string { - if m != nil { - return m.Nickname +func (x *UserInfo) GetNickname() string { + if x != nil { + return x.Nickname } return "" } -func (m *UserInfo) GetFaceURL() string { - if m != nil { - return m.FaceURL +func (x *UserInfo) GetFaceURL() string { + if x != nil { + return x.FaceURL } return "" } -func (m *UserInfo) GetGender() int32 { - if m != nil { - return m.Gender +func (x *UserInfo) GetGender() int32 { + if x != nil { + return x.Gender } return 0 } -func (m *UserInfo) GetPhoneNumber() string { - if m != nil { - return m.PhoneNumber +func (x *UserInfo) GetPhoneNumber() string { + if x != nil { + return x.PhoneNumber } return "" } -func (m *UserInfo) GetBirth() uint32 { - if m != nil { - return m.Birth +func (x *UserInfo) GetBirth() uint32 { + if x != nil { + return x.Birth } return 0 } -func (m *UserInfo) GetEmail() string { - if m != nil { - return m.Email +func (x *UserInfo) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *UserInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *UserInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } -func (m *UserInfo) GetCreateTime() uint32 { - if m != nil { - return m.CreateTime +func (x *UserInfo) GetCreateIp() string { + if x != nil { + return x.CreateIp + } + return "" +} + +func (x *UserInfo) GetCreateTime() uint32 { + if x != nil { + return x.CreateTime } return 0 } -func (m *UserInfo) GetAppMangerLevel() int32 { - if m != nil { - return m.AppMangerLevel +func (x *UserInfo) GetLastLoginIp() string { + if x != nil { + return x.LastLoginIp + } + return "" +} + +func (x *UserInfo) GetLastLoginTime() uint32 { + if x != nil { + return x.LastLoginTime } return 0 } -func (m *UserInfo) GetGlobalRecvMsgOpt() int32 { - if m != nil { - return m.GlobalRecvMsgOpt +func (x *UserInfo) GetLoginTimes() int32 { + if x != nil { + return x.LoginTimes + } + return 0 +} + +func (x *UserInfo) GetLoginLimit() int32 { + if x != nil { + return x.LoginLimit + } + return 0 +} + +func (x *UserInfo) GetAppMangerLevel() int32 { + if x != nil { + return x.AppMangerLevel + } + return 0 +} + +func (x *UserInfo) GetGlobalRecvMsgOpt() int32 { + if x != nil { + return x.GlobalRecvMsgOpt } return 0 } type FriendInfo struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` - Remark string `protobuf:"bytes,2,opt,name=remark" json:"remark,omitempty"` - CreateTime uint32 `protobuf:"varint,3,opt,name=createTime" json:"createTime,omitempty"` - FriendUser *UserInfo `protobuf:"bytes,4,opt,name=friendUser" json:"friendUser,omitempty"` - AddSource int32 `protobuf:"varint,5,opt,name=addSource" json:"addSource,omitempty"` - OperatorUserID string `protobuf:"bytes,6,opt,name=operatorUserID" json:"operatorUserID,omitempty"` - Ex string `protobuf:"bytes,7,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"` + Remark string `protobuf:"bytes,2,opt,name=remark,proto3" json:"remark,omitempty"` + CreateTime uint32 `protobuf:"varint,3,opt,name=createTime,proto3" json:"createTime,omitempty"` + FriendUser *UserInfo `protobuf:"bytes,4,opt,name=friendUser,proto3" json:"friendUser,omitempty"` + AddSource int32 `protobuf:"varint,5,opt,name=addSource,proto3" json:"addSource,omitempty"` + OperatorUserID string `protobuf:"bytes,6,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,7,opt,name=ex,proto3" json:"ex,omitempty"` } -func (m *FriendInfo) Reset() { *m = FriendInfo{} } -func (m *FriendInfo) String() string { return proto.CompactTextString(m) } -func (*FriendInfo) ProtoMessage() {} +func (x *FriendInfo) Reset() { + *x = FriendInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[5] + 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_sdk_ws_ws_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 FriendInfo.ProtoReflect.Descriptor instead. func (*FriendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{5} -} -func (m *FriendInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendInfo.Unmarshal(m, b) -} -func (m *FriendInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendInfo.Marshal(b, m, deterministic) -} -func (dst *FriendInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendInfo.Merge(dst, src) -} -func (m *FriendInfo) XXX_Size() int { - return xxx_messageInfo_FriendInfo.Size(m) -} -func (m *FriendInfo) XXX_DiscardUnknown() { - xxx_messageInfo_FriendInfo.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{5} } -var xxx_messageInfo_FriendInfo proto.InternalMessageInfo - -func (m *FriendInfo) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID +func (x *FriendInfo) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID } return "" } -func (m *FriendInfo) GetRemark() string { - if m != nil { - return m.Remark +func (x *FriendInfo) GetRemark() string { + if x != nil { + return x.Remark } return "" } -func (m *FriendInfo) GetCreateTime() uint32 { - if m != nil { - return m.CreateTime +func (x *FriendInfo) GetCreateTime() uint32 { + if x != nil { + return x.CreateTime } return 0 } -func (m *FriendInfo) GetFriendUser() *UserInfo { - if m != nil { - return m.FriendUser +func (x *FriendInfo) GetFriendUser() *UserInfo { + if x != nil { + return x.FriendUser } return nil } -func (m *FriendInfo) GetAddSource() int32 { - if m != nil { - return m.AddSource +func (x *FriendInfo) GetAddSource() int32 { + if x != nil { + return x.AddSource } return 0 } -func (m *FriendInfo) GetOperatorUserID() string { - if m != nil { - return m.OperatorUserID +func (x *FriendInfo) GetOperatorUserID() string { + if x != nil { + return x.OperatorUserID } return "" } -func (m *FriendInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *FriendInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } type BlackInfo struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` - CreateTime uint32 `protobuf:"varint,2,opt,name=createTime" json:"createTime,omitempty"` - BlackUserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=blackUserInfo" json:"blackUserInfo,omitempty"` - AddSource int32 `protobuf:"varint,4,opt,name=addSource" json:"addSource,omitempty"` - OperatorUserID string `protobuf:"bytes,5,opt,name=operatorUserID" json:"operatorUserID,omitempty"` - Ex string `protobuf:"bytes,6,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"` + CreateTime uint32 `protobuf:"varint,2,opt,name=createTime,proto3" json:"createTime,omitempty"` + BlackUserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=blackUserInfo,proto3" json:"blackUserInfo,omitempty"` + AddSource int32 `protobuf:"varint,4,opt,name=addSource,proto3" json:"addSource,omitempty"` + OperatorUserID string `protobuf:"bytes,5,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,6,opt,name=ex,proto3" json:"ex,omitempty"` } -func (m *BlackInfo) Reset() { *m = BlackInfo{} } -func (m *BlackInfo) String() string { return proto.CompactTextString(m) } -func (*BlackInfo) ProtoMessage() {} +func (x *BlackInfo) Reset() { + *x = BlackInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlackInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlackInfo) ProtoMessage() {} + +func (x *BlackInfo) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 BlackInfo.ProtoReflect.Descriptor instead. func (*BlackInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{6} -} -func (m *BlackInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BlackInfo.Unmarshal(m, b) -} -func (m *BlackInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BlackInfo.Marshal(b, m, deterministic) -} -func (dst *BlackInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_BlackInfo.Merge(dst, src) -} -func (m *BlackInfo) XXX_Size() int { - return xxx_messageInfo_BlackInfo.Size(m) -} -func (m *BlackInfo) XXX_DiscardUnknown() { - xxx_messageInfo_BlackInfo.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{6} } -var xxx_messageInfo_BlackInfo proto.InternalMessageInfo - -func (m *BlackInfo) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID +func (x *BlackInfo) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID } return "" } -func (m *BlackInfo) GetCreateTime() uint32 { - if m != nil { - return m.CreateTime +func (x *BlackInfo) GetCreateTime() uint32 { + if x != nil { + return x.CreateTime } return 0 } -func (m *BlackInfo) GetBlackUserInfo() *PublicUserInfo { - if m != nil { - return m.BlackUserInfo +func (x *BlackInfo) GetBlackUserInfo() *PublicUserInfo { + if x != nil { + return x.BlackUserInfo } return nil } -func (m *BlackInfo) GetAddSource() int32 { - if m != nil { - return m.AddSource +func (x *BlackInfo) GetAddSource() int32 { + if x != nil { + return x.AddSource } return 0 } -func (m *BlackInfo) GetOperatorUserID() string { - if m != nil { - return m.OperatorUserID +func (x *BlackInfo) GetOperatorUserID() string { + if x != nil { + return x.OperatorUserID } return "" } -func (m *BlackInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *BlackInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } type GroupRequest struct { - UserInfo *PublicUserInfo `protobuf:"bytes,1,opt,name=userInfo" json:"userInfo,omitempty"` - GroupInfo *GroupInfo `protobuf:"bytes,2,opt,name=groupInfo" json:"groupInfo,omitempty"` - HandleResult int32 `protobuf:"varint,3,opt,name=handleResult" json:"handleResult,omitempty"` - ReqMsg string `protobuf:"bytes,4,opt,name=reqMsg" json:"reqMsg,omitempty"` - HandleMsg string `protobuf:"bytes,5,opt,name=handleMsg" json:"handleMsg,omitempty"` - ReqTime uint32 `protobuf:"varint,6,opt,name=reqTime" json:"reqTime,omitempty"` - HandleUserID string `protobuf:"bytes,7,opt,name=handleUserID" json:"handleUserID,omitempty"` - HandleTime uint32 `protobuf:"varint,8,opt,name=handleTime" json:"handleTime,omitempty"` - Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` - JoinSource int32 `protobuf:"varint,10,opt,name=joinSource" json:"joinSource,omitempty"` - InviterUserID string `protobuf:"bytes,11,opt,name=inviterUserID" json:"inviterUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserInfo *PublicUserInfo `protobuf:"bytes,1,opt,name=userInfo,proto3" json:"userInfo,omitempty"` + GroupInfo *GroupInfo `protobuf:"bytes,2,opt,name=groupInfo,proto3" json:"groupInfo,omitempty"` + HandleResult int32 `protobuf:"varint,3,opt,name=handleResult,proto3" json:"handleResult,omitempty"` + ReqMsg string `protobuf:"bytes,4,opt,name=reqMsg,proto3" json:"reqMsg,omitempty"` + HandleMsg string `protobuf:"bytes,5,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` + ReqTime uint32 `protobuf:"varint,6,opt,name=reqTime,proto3" json:"reqTime,omitempty"` + HandleUserID string `protobuf:"bytes,7,opt,name=handleUserID,proto3" json:"handleUserID,omitempty"` + HandleTime uint32 `protobuf:"varint,8,opt,name=handleTime,proto3" json:"handleTime,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=ex,proto3" json:"ex,omitempty"` + JoinSource int32 `protobuf:"varint,10,opt,name=joinSource,proto3" json:"joinSource,omitempty"` + InviterUserID string `protobuf:"bytes,11,opt,name=inviterUserID,proto3" json:"inviterUserID,omitempty"` } -func (m *GroupRequest) Reset() { *m = GroupRequest{} } -func (m *GroupRequest) String() string { return proto.CompactTextString(m) } -func (*GroupRequest) ProtoMessage() {} +func (x *GroupRequest) Reset() { + *x = GroupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupRequest) ProtoMessage() {} + +func (x *GroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 GroupRequest.ProtoReflect.Descriptor instead. func (*GroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{7} -} -func (m *GroupRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupRequest.Unmarshal(m, b) -} -func (m *GroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupRequest.Marshal(b, m, deterministic) -} -func (dst *GroupRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupRequest.Merge(dst, src) -} -func (m *GroupRequest) XXX_Size() int { - return xxx_messageInfo_GroupRequest.Size(m) -} -func (m *GroupRequest) XXX_DiscardUnknown() { - xxx_messageInfo_GroupRequest.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{7} } -var xxx_messageInfo_GroupRequest proto.InternalMessageInfo - -func (m *GroupRequest) GetUserInfo() *PublicUserInfo { - if m != nil { - return m.UserInfo +func (x *GroupRequest) GetUserInfo() *PublicUserInfo { + if x != nil { + return x.UserInfo } return nil } -func (m *GroupRequest) GetGroupInfo() *GroupInfo { - if m != nil { - return m.GroupInfo +func (x *GroupRequest) GetGroupInfo() *GroupInfo { + if x != nil { + return x.GroupInfo } return nil } -func (m *GroupRequest) GetHandleResult() int32 { - if m != nil { - return m.HandleResult +func (x *GroupRequest) GetHandleResult() int32 { + if x != nil { + return x.HandleResult } return 0 } -func (m *GroupRequest) GetReqMsg() string { - if m != nil { - return m.ReqMsg +func (x *GroupRequest) GetReqMsg() string { + if x != nil { + return x.ReqMsg } return "" } -func (m *GroupRequest) GetHandleMsg() string { - if m != nil { - return m.HandleMsg +func (x *GroupRequest) GetHandleMsg() string { + if x != nil { + return x.HandleMsg } return "" } -func (m *GroupRequest) GetReqTime() uint32 { - if m != nil { - return m.ReqTime +func (x *GroupRequest) GetReqTime() uint32 { + if x != nil { + return x.ReqTime } return 0 } -func (m *GroupRequest) GetHandleUserID() string { - if m != nil { - return m.HandleUserID +func (x *GroupRequest) GetHandleUserID() string { + if x != nil { + return x.HandleUserID } return "" } -func (m *GroupRequest) GetHandleTime() uint32 { - if m != nil { - return m.HandleTime +func (x *GroupRequest) GetHandleTime() uint32 { + if x != nil { + return x.HandleTime } return 0 } -func (m *GroupRequest) GetEx() string { - if m != nil { - return m.Ex +func (x *GroupRequest) GetEx() string { + if x != nil { + return x.Ex } return "" } -func (m *GroupRequest) GetJoinSource() int32 { - if m != nil { - return m.JoinSource +func (x *GroupRequest) GetJoinSource() int32 { + if x != nil { + return x.JoinSource } return 0 } -func (m *GroupRequest) GetInviterUserID() string { - if m != nil { - return m.InviterUserID +func (x *GroupRequest) GetInviterUserID() string { + if x != nil { + return x.InviterUserID } return "" } type FriendRequest struct { - FromUserID string `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"` - FromNickname string `protobuf:"bytes,2,opt,name=fromNickname" json:"fromNickname,omitempty"` - FromFaceURL string `protobuf:"bytes,3,opt,name=fromFaceURL" json:"fromFaceURL,omitempty"` - FromGender int32 `protobuf:"varint,4,opt,name=fromGender" json:"fromGender,omitempty"` - ToUserID string `protobuf:"bytes,5,opt,name=toUserID" json:"toUserID,omitempty"` - ToNickname string `protobuf:"bytes,6,opt,name=toNickname" json:"toNickname,omitempty"` - ToFaceURL string `protobuf:"bytes,7,opt,name=toFaceURL" json:"toFaceURL,omitempty"` - ToGender int32 `protobuf:"varint,8,opt,name=toGender" json:"toGender,omitempty"` - HandleResult int32 `protobuf:"varint,9,opt,name=handleResult" json:"handleResult,omitempty"` - ReqMsg string `protobuf:"bytes,10,opt,name=reqMsg" json:"reqMsg,omitempty"` - CreateTime uint32 `protobuf:"varint,11,opt,name=createTime" json:"createTime,omitempty"` - HandlerUserID string `protobuf:"bytes,12,opt,name=handlerUserID" json:"handlerUserID,omitempty"` - HandleMsg string `protobuf:"bytes,13,opt,name=handleMsg" json:"handleMsg,omitempty"` - HandleTime uint32 `protobuf:"varint,14,opt,name=handleTime" json:"handleTime,omitempty"` - Ex string `protobuf:"bytes,15,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromUserID string `protobuf:"bytes,1,opt,name=fromUserID,proto3" json:"fromUserID,omitempty"` + FromNickname string `protobuf:"bytes,2,opt,name=fromNickname,proto3" json:"fromNickname,omitempty"` + FromFaceURL string `protobuf:"bytes,3,opt,name=fromFaceURL,proto3" json:"fromFaceURL,omitempty"` + FromGender int32 `protobuf:"varint,4,opt,name=fromGender,proto3" json:"fromGender,omitempty"` + ToUserID string `protobuf:"bytes,5,opt,name=toUserID,proto3" json:"toUserID,omitempty"` + ToNickname string `protobuf:"bytes,6,opt,name=toNickname,proto3" json:"toNickname,omitempty"` + ToFaceURL string `protobuf:"bytes,7,opt,name=toFaceURL,proto3" json:"toFaceURL,omitempty"` + ToGender int32 `protobuf:"varint,8,opt,name=toGender,proto3" json:"toGender,omitempty"` + HandleResult int32 `protobuf:"varint,9,opt,name=handleResult,proto3" json:"handleResult,omitempty"` + ReqMsg string `protobuf:"bytes,10,opt,name=reqMsg,proto3" json:"reqMsg,omitempty"` + CreateTime uint32 `protobuf:"varint,11,opt,name=createTime,proto3" json:"createTime,omitempty"` + HandlerUserID string `protobuf:"bytes,12,opt,name=handlerUserID,proto3" json:"handlerUserID,omitempty"` + HandleMsg string `protobuf:"bytes,13,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` + HandleTime uint32 `protobuf:"varint,14,opt,name=handleTime,proto3" json:"handleTime,omitempty"` + Ex string `protobuf:"bytes,15,opt,name=ex,proto3" json:"ex,omitempty"` } -func (m *FriendRequest) Reset() { *m = FriendRequest{} } -func (m *FriendRequest) String() string { return proto.CompactTextString(m) } -func (*FriendRequest) ProtoMessage() {} +func (x *FriendRequest) Reset() { + *x = FriendRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FriendRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FriendRequest) ProtoMessage() {} + +func (x *FriendRequest) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 FriendRequest.ProtoReflect.Descriptor instead. func (*FriendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{8} -} -func (m *FriendRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendRequest.Unmarshal(m, b) -} -func (m *FriendRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendRequest.Marshal(b, m, deterministic) -} -func (dst *FriendRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendRequest.Merge(dst, src) -} -func (m *FriendRequest) XXX_Size() int { - return xxx_messageInfo_FriendRequest.Size(m) -} -func (m *FriendRequest) XXX_DiscardUnknown() { - xxx_messageInfo_FriendRequest.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{8} } -var xxx_messageInfo_FriendRequest proto.InternalMessageInfo - -func (m *FriendRequest) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *FriendRequest) GetFromUserID() string { + if x != nil { + return x.FromUserID } return "" } -func (m *FriendRequest) GetFromNickname() string { - if m != nil { - return m.FromNickname +func (x *FriendRequest) GetFromNickname() string { + if x != nil { + return x.FromNickname } return "" } -func (m *FriendRequest) GetFromFaceURL() string { - if m != nil { - return m.FromFaceURL +func (x *FriendRequest) GetFromFaceURL() string { + if x != nil { + return x.FromFaceURL } return "" } -func (m *FriendRequest) GetFromGender() int32 { - if m != nil { - return m.FromGender +func (x *FriendRequest) GetFromGender() int32 { + if x != nil { + return x.FromGender } return 0 } -func (m *FriendRequest) GetToUserID() string { - if m != nil { - return m.ToUserID +func (x *FriendRequest) GetToUserID() string { + if x != nil { + return x.ToUserID } return "" } -func (m *FriendRequest) GetToNickname() string { - if m != nil { - return m.ToNickname +func (x *FriendRequest) GetToNickname() string { + if x != nil { + return x.ToNickname } return "" } -func (m *FriendRequest) GetToFaceURL() string { - if m != nil { - return m.ToFaceURL +func (x *FriendRequest) GetToFaceURL() string { + if x != nil { + return x.ToFaceURL } return "" } -func (m *FriendRequest) GetToGender() int32 { - if m != nil { - return m.ToGender +func (x *FriendRequest) GetToGender() int32 { + if x != nil { + return x.ToGender } return 0 } -func (m *FriendRequest) GetHandleResult() int32 { - if m != nil { - return m.HandleResult +func (x *FriendRequest) GetHandleResult() int32 { + if x != nil { + return x.HandleResult } return 0 } -func (m *FriendRequest) GetReqMsg() string { - if m != nil { - return m.ReqMsg +func (x *FriendRequest) GetReqMsg() string { + if x != nil { + return x.ReqMsg } return "" } -func (m *FriendRequest) GetCreateTime() uint32 { - if m != nil { - return m.CreateTime +func (x *FriendRequest) GetCreateTime() uint32 { + if x != nil { + return x.CreateTime } return 0 } -func (m *FriendRequest) GetHandlerUserID() string { - if m != nil { - return m.HandlerUserID +func (x *FriendRequest) GetHandlerUserID() string { + if x != nil { + return x.HandlerUserID } return "" } -func (m *FriendRequest) GetHandleMsg() string { - if m != nil { - return m.HandleMsg +func (x *FriendRequest) GetHandleMsg() string { + if x != nil { + return x.HandleMsg } return "" } -func (m *FriendRequest) GetHandleTime() uint32 { - if m != nil { - return m.HandleTime +func (x *FriendRequest) GetHandleTime() uint32 { + if x != nil { + return x.HandleTime } return 0 } -func (m *FriendRequest) GetEx() string { - if m != nil { - return m.Ex +func (x *FriendRequest) GetEx() string { + if x != nil { + return x.Ex } return "" } type Department struct { - DepartmentID string `protobuf:"bytes,1,opt,name=departmentID" json:"departmentID,omitempty"` - FaceURL string `protobuf:"bytes,2,opt,name=faceURL" json:"faceURL,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` - ParentID string `protobuf:"bytes,4,opt,name=parentID" json:"parentID,omitempty"` - Order int32 `protobuf:"varint,5,opt,name=order" json:"order,omitempty"` - DepartmentType int32 `protobuf:"varint,6,opt,name=departmentType" json:"departmentType,omitempty"` - CreateTime uint32 `protobuf:"varint,7,opt,name=createTime" json:"createTime,omitempty"` - SubDepartmentNum uint32 `protobuf:"varint,8,opt,name=subDepartmentNum" json:"subDepartmentNum,omitempty"` - MemberNum uint32 `protobuf:"varint,9,opt,name=memberNum" json:"memberNum,omitempty"` - Ex string `protobuf:"bytes,10,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DepartmentID string `protobuf:"bytes,1,opt,name=departmentID,proto3" json:"departmentID,omitempty"` + FaceURL string `protobuf:"bytes,2,opt,name=faceURL,proto3" json:"faceURL,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + ParentID string `protobuf:"bytes,4,opt,name=parentID,proto3" json:"parentID,omitempty"` + Order int32 `protobuf:"varint,5,opt,name=order,proto3" json:"order,omitempty"` + DepartmentType int32 `protobuf:"varint,6,opt,name=departmentType,proto3" json:"departmentType,omitempty"` + CreateTime uint32 `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"` + SubDepartmentNum uint32 `protobuf:"varint,8,opt,name=subDepartmentNum,proto3" json:"subDepartmentNum,omitempty"` + MemberNum uint32 `protobuf:"varint,9,opt,name=memberNum,proto3" json:"memberNum,omitempty"` + Ex string `protobuf:"bytes,10,opt,name=ex,proto3" json:"ex,omitempty"` } -func (m *Department) Reset() { *m = Department{} } -func (m *Department) String() string { return proto.CompactTextString(m) } -func (*Department) ProtoMessage() {} +func (x *Department) Reset() { + *x = Department{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Department) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Department) ProtoMessage() {} + +func (x *Department) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 Department.ProtoReflect.Descriptor instead. func (*Department) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{9} -} -func (m *Department) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Department.Unmarshal(m, b) -} -func (m *Department) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Department.Marshal(b, m, deterministic) -} -func (dst *Department) XXX_Merge(src proto.Message) { - xxx_messageInfo_Department.Merge(dst, src) -} -func (m *Department) XXX_Size() int { - return xxx_messageInfo_Department.Size(m) -} -func (m *Department) XXX_DiscardUnknown() { - xxx_messageInfo_Department.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{9} } -var xxx_messageInfo_Department proto.InternalMessageInfo - -func (m *Department) GetDepartmentID() string { - if m != nil { - return m.DepartmentID +func (x *Department) GetDepartmentID() string { + if x != nil { + return x.DepartmentID } return "" } -func (m *Department) GetFaceURL() string { - if m != nil { - return m.FaceURL +func (x *Department) GetFaceURL() string { + if x != nil { + return x.FaceURL } return "" } -func (m *Department) GetName() string { - if m != nil { - return m.Name +func (x *Department) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *Department) GetParentID() string { - if m != nil { - return m.ParentID +func (x *Department) GetParentID() string { + if x != nil { + return x.ParentID } return "" } -func (m *Department) GetOrder() int32 { - if m != nil { - return m.Order +func (x *Department) GetOrder() int32 { + if x != nil { + return x.Order } return 0 } -func (m *Department) GetDepartmentType() int32 { - if m != nil { - return m.DepartmentType +func (x *Department) GetDepartmentType() int32 { + if x != nil { + return x.DepartmentType } return 0 } -func (m *Department) GetCreateTime() uint32 { - if m != nil { - return m.CreateTime +func (x *Department) GetCreateTime() uint32 { + if x != nil { + return x.CreateTime } return 0 } -func (m *Department) GetSubDepartmentNum() uint32 { - if m != nil { - return m.SubDepartmentNum +func (x *Department) GetSubDepartmentNum() uint32 { + if x != nil { + return x.SubDepartmentNum } return 0 } -func (m *Department) GetMemberNum() uint32 { - if m != nil { - return m.MemberNum +func (x *Department) GetMemberNum() uint32 { + if x != nil { + return x.MemberNum } return 0 } -func (m *Department) GetEx() string { - if m != nil { - return m.Ex +func (x *Department) GetEx() string { + if x != nil { + return x.Ex } return "" } type OrganizationUser struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` - EnglishName string `protobuf:"bytes,3,opt,name=englishName" json:"englishName,omitempty"` - FaceURL string `protobuf:"bytes,4,opt,name=faceURL" json:"faceURL,omitempty"` - Gender int32 `protobuf:"varint,5,opt,name=gender" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,6,opt,name=mobile" json:"mobile,omitempty"` - Telephone string `protobuf:"bytes,7,opt,name=telephone" json:"telephone,omitempty"` - Birth uint32 `protobuf:"varint,8,opt,name=birth" json:"birth,omitempty"` - Email string `protobuf:"bytes,9,opt,name=email" json:"email,omitempty"` - CreateTime uint32 `protobuf:"varint,10,opt,name=createTime" json:"createTime,omitempty"` - Ex string `protobuf:"bytes,11,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` + EnglishName string `protobuf:"bytes,3,opt,name=englishName,proto3" json:"englishName,omitempty"` + FaceURL string `protobuf:"bytes,4,opt,name=faceURL,proto3" json:"faceURL,omitempty"` + Gender int32 `protobuf:"varint,5,opt,name=gender,proto3" json:"gender,omitempty"` + Mobile string `protobuf:"bytes,6,opt,name=mobile,proto3" json:"mobile,omitempty"` + Telephone string `protobuf:"bytes,7,opt,name=telephone,proto3" json:"telephone,omitempty"` + Birth uint32 `protobuf:"varint,8,opt,name=birth,proto3" json:"birth,omitempty"` + Email string `protobuf:"bytes,9,opt,name=email,proto3" json:"email,omitempty"` + CreateTime uint32 `protobuf:"varint,10,opt,name=createTime,proto3" json:"createTime,omitempty"` + Ex string `protobuf:"bytes,11,opt,name=ex,proto3" json:"ex,omitempty"` } -func (m *OrganizationUser) Reset() { *m = OrganizationUser{} } -func (m *OrganizationUser) String() string { return proto.CompactTextString(m) } -func (*OrganizationUser) ProtoMessage() {} +func (x *OrganizationUser) Reset() { + *x = OrganizationUser{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrganizationUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrganizationUser) ProtoMessage() {} + +func (x *OrganizationUser) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 OrganizationUser.ProtoReflect.Descriptor instead. func (*OrganizationUser) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{10} -} -func (m *OrganizationUser) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrganizationUser.Unmarshal(m, b) -} -func (m *OrganizationUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrganizationUser.Marshal(b, m, deterministic) -} -func (dst *OrganizationUser) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrganizationUser.Merge(dst, src) -} -func (m *OrganizationUser) XXX_Size() int { - return xxx_messageInfo_OrganizationUser.Size(m) -} -func (m *OrganizationUser) XXX_DiscardUnknown() { - xxx_messageInfo_OrganizationUser.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{10} } -var xxx_messageInfo_OrganizationUser proto.InternalMessageInfo - -func (m *OrganizationUser) GetUserID() string { - if m != nil { - return m.UserID +func (x *OrganizationUser) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *OrganizationUser) GetNickname() string { - if m != nil { - return m.Nickname +func (x *OrganizationUser) GetNickname() string { + if x != nil { + return x.Nickname } return "" } -func (m *OrganizationUser) GetEnglishName() string { - if m != nil { - return m.EnglishName +func (x *OrganizationUser) GetEnglishName() string { + if x != nil { + return x.EnglishName } return "" } -func (m *OrganizationUser) GetFaceURL() string { - if m != nil { - return m.FaceURL +func (x *OrganizationUser) GetFaceURL() string { + if x != nil { + return x.FaceURL } return "" } -func (m *OrganizationUser) GetGender() int32 { - if m != nil { - return m.Gender +func (x *OrganizationUser) GetGender() int32 { + if x != nil { + return x.Gender } return 0 } -func (m *OrganizationUser) GetMobile() string { - if m != nil { - return m.Mobile +func (x *OrganizationUser) GetMobile() string { + if x != nil { + return x.Mobile } return "" } -func (m *OrganizationUser) GetTelephone() string { - if m != nil { - return m.Telephone +func (x *OrganizationUser) GetTelephone() string { + if x != nil { + return x.Telephone } return "" } -func (m *OrganizationUser) GetBirth() uint32 { - if m != nil { - return m.Birth +func (x *OrganizationUser) GetBirth() uint32 { + if x != nil { + return x.Birth } return 0 } -func (m *OrganizationUser) GetEmail() string { - if m != nil { - return m.Email +func (x *OrganizationUser) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *OrganizationUser) GetCreateTime() uint32 { - if m != nil { - return m.CreateTime +func (x *OrganizationUser) GetCreateTime() uint32 { + if x != nil { + return x.CreateTime } return 0 } -func (m *OrganizationUser) GetEx() string { - if m != nil { - return m.Ex +func (x *OrganizationUser) GetEx() string { + if x != nil { + return x.Ex } return "" } type DepartmentMember struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - DepartmentID string `protobuf:"bytes,2,opt,name=departmentID" json:"departmentID,omitempty"` - Order int32 `protobuf:"varint,3,opt,name=order" json:"order,omitempty"` - Position string `protobuf:"bytes,4,opt,name=position" json:"position,omitempty"` - Leader int32 `protobuf:"varint,5,opt,name=leader" json:"leader,omitempty"` - Status int32 `protobuf:"varint,6,opt,name=status" json:"status,omitempty"` - Ex string `protobuf:"bytes,7,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` + DepartmentID string `protobuf:"bytes,2,opt,name=departmentID,proto3" json:"departmentID,omitempty"` + Order int32 `protobuf:"varint,3,opt,name=order,proto3" json:"order,omitempty"` + Position string `protobuf:"bytes,4,opt,name=position,proto3" json:"position,omitempty"` + Leader int32 `protobuf:"varint,5,opt,name=leader,proto3" json:"leader,omitempty"` + Status int32 `protobuf:"varint,6,opt,name=status,proto3" json:"status,omitempty"` + Ex string `protobuf:"bytes,7,opt,name=ex,proto3" json:"ex,omitempty"` } -func (m *DepartmentMember) Reset() { *m = DepartmentMember{} } -func (m *DepartmentMember) String() string { return proto.CompactTextString(m) } -func (*DepartmentMember) ProtoMessage() {} +func (x *DepartmentMember) Reset() { + *x = DepartmentMember{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DepartmentMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DepartmentMember) ProtoMessage() {} + +func (x *DepartmentMember) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 DepartmentMember.ProtoReflect.Descriptor instead. func (*DepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{11} -} -func (m *DepartmentMember) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DepartmentMember.Unmarshal(m, b) -} -func (m *DepartmentMember) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DepartmentMember.Marshal(b, m, deterministic) -} -func (dst *DepartmentMember) XXX_Merge(src proto.Message) { - xxx_messageInfo_DepartmentMember.Merge(dst, src) -} -func (m *DepartmentMember) XXX_Size() int { - return xxx_messageInfo_DepartmentMember.Size(m) -} -func (m *DepartmentMember) XXX_DiscardUnknown() { - xxx_messageInfo_DepartmentMember.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{11} } -var xxx_messageInfo_DepartmentMember proto.InternalMessageInfo - -func (m *DepartmentMember) GetUserID() string { - if m != nil { - return m.UserID +func (x *DepartmentMember) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *DepartmentMember) GetDepartmentID() string { - if m != nil { - return m.DepartmentID +func (x *DepartmentMember) GetDepartmentID() string { + if x != nil { + return x.DepartmentID } return "" } -func (m *DepartmentMember) GetOrder() int32 { - if m != nil { - return m.Order +func (x *DepartmentMember) GetOrder() int32 { + if x != nil { + return x.Order } return 0 } -func (m *DepartmentMember) GetPosition() string { - if m != nil { - return m.Position +func (x *DepartmentMember) GetPosition() string { + if x != nil { + return x.Position } return "" } -func (m *DepartmentMember) GetLeader() int32 { - if m != nil { - return m.Leader +func (x *DepartmentMember) GetLeader() int32 { + if x != nil { + return x.Leader } return 0 } -func (m *DepartmentMember) GetStatus() int32 { - if m != nil { - return m.Status +func (x *DepartmentMember) GetStatus() int32 { + if x != nil { + return x.Status } return 0 } -func (m *DepartmentMember) GetEx() string { - if m != nil { - return m.Ex +func (x *DepartmentMember) GetEx() string { + if x != nil { + return x.Ex } return "" } type UserDepartmentMember struct { - OrganizationUser *OrganizationUser `protobuf:"bytes,1,opt,name=organizationUser" json:"organizationUser,omitempty"` - DepartmentMember *DepartmentMember `protobuf:"bytes,2,opt,name=departmentMember" json:"departmentMember,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrganizationUser *OrganizationUser `protobuf:"bytes,1,opt,name=organizationUser,proto3" json:"organizationUser,omitempty"` + DepartmentMember *DepartmentMember `protobuf:"bytes,2,opt,name=departmentMember,proto3" json:"departmentMember,omitempty"` } -func (m *UserDepartmentMember) Reset() { *m = UserDepartmentMember{} } -func (m *UserDepartmentMember) String() string { return proto.CompactTextString(m) } -func (*UserDepartmentMember) ProtoMessage() {} +func (x *UserDepartmentMember) Reset() { + *x = UserDepartmentMember{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserDepartmentMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserDepartmentMember) ProtoMessage() {} + +func (x *UserDepartmentMember) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 UserDepartmentMember.ProtoReflect.Descriptor instead. func (*UserDepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{12} -} -func (m *UserDepartmentMember) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserDepartmentMember.Unmarshal(m, b) -} -func (m *UserDepartmentMember) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserDepartmentMember.Marshal(b, m, deterministic) -} -func (dst *UserDepartmentMember) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserDepartmentMember.Merge(dst, src) -} -func (m *UserDepartmentMember) XXX_Size() int { - return xxx_messageInfo_UserDepartmentMember.Size(m) -} -func (m *UserDepartmentMember) XXX_DiscardUnknown() { - xxx_messageInfo_UserDepartmentMember.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{12} } -var xxx_messageInfo_UserDepartmentMember proto.InternalMessageInfo - -func (m *UserDepartmentMember) GetOrganizationUser() *OrganizationUser { - if m != nil { - return m.OrganizationUser +func (x *UserDepartmentMember) GetOrganizationUser() *OrganizationUser { + if x != nil { + return x.OrganizationUser } return nil } -func (m *UserDepartmentMember) GetDepartmentMember() *DepartmentMember { - if m != nil { - return m.DepartmentMember +func (x *UserDepartmentMember) GetDepartmentMember() *DepartmentMember { + if x != nil { + return x.DepartmentMember } return nil } type UserInDepartment struct { - OrganizationUser *OrganizationUser `protobuf:"bytes,1,opt,name=organizationUser" json:"organizationUser,omitempty"` - DepartmentMemberList []*DepartmentMember `protobuf:"bytes,2,rep,name=departmentMemberList" json:"departmentMemberList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrganizationUser *OrganizationUser `protobuf:"bytes,1,opt,name=organizationUser,proto3" json:"organizationUser,omitempty"` + DepartmentMemberList []*DepartmentMember `protobuf:"bytes,2,rep,name=departmentMemberList,proto3" json:"departmentMemberList,omitempty"` } -func (m *UserInDepartment) Reset() { *m = UserInDepartment{} } -func (m *UserInDepartment) String() string { return proto.CompactTextString(m) } -func (*UserInDepartment) ProtoMessage() {} +func (x *UserInDepartment) Reset() { + *x = UserInDepartment{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserInDepartment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserInDepartment) ProtoMessage() {} + +func (x *UserInDepartment) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 UserInDepartment.ProtoReflect.Descriptor instead. func (*UserInDepartment) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{13} -} -func (m *UserInDepartment) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserInDepartment.Unmarshal(m, b) -} -func (m *UserInDepartment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserInDepartment.Marshal(b, m, deterministic) -} -func (dst *UserInDepartment) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserInDepartment.Merge(dst, src) -} -func (m *UserInDepartment) XXX_Size() int { - return xxx_messageInfo_UserInDepartment.Size(m) -} -func (m *UserInDepartment) XXX_DiscardUnknown() { - xxx_messageInfo_UserInDepartment.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{13} } -var xxx_messageInfo_UserInDepartment proto.InternalMessageInfo - -func (m *UserInDepartment) GetOrganizationUser() *OrganizationUser { - if m != nil { - return m.OrganizationUser +func (x *UserInDepartment) GetOrganizationUser() *OrganizationUser { + if x != nil { + return x.OrganizationUser } return nil } -func (m *UserInDepartment) GetDepartmentMemberList() []*DepartmentMember { - if m != nil { - return m.DepartmentMemberList +func (x *UserInDepartment) GetDepartmentMemberList() []*DepartmentMember { + if x != nil { + return x.DepartmentMemberList } return nil } -// /////////////////////////////////base end///////////////////////////////////// +///////////////////////////////////base end///////////////////////////////////// type PullMessageBySeqListReq struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` - GroupSeqList map[string]*SeqList `protobuf:"bytes,4,rep,name=groupSeqList" json:"groupSeqList,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` + SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList,proto3" json:"seqList,omitempty"` + GroupSeqList map[string]*SeqList `protobuf:"bytes,4,rep,name=groupSeqList,proto3" json:"groupSeqList,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq{} } -func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } -func (*PullMessageBySeqListReq) ProtoMessage() {} +func (x *PullMessageBySeqListReq) Reset() { + *x = PullMessageBySeqListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PullMessageBySeqListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PullMessageBySeqListReq) ProtoMessage() {} + +func (x *PullMessageBySeqListReq) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 PullMessageBySeqListReq.ProtoReflect.Descriptor instead. func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{14} -} -func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) -} -func (m *PullMessageBySeqListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageBySeqListReq.Marshal(b, m, deterministic) -} -func (dst *PullMessageBySeqListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageBySeqListReq.Merge(dst, src) -} -func (m *PullMessageBySeqListReq) XXX_Size() int { - return xxx_messageInfo_PullMessageBySeqListReq.Size(m) -} -func (m *PullMessageBySeqListReq) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageBySeqListReq.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{14} } -var xxx_messageInfo_PullMessageBySeqListReq proto.InternalMessageInfo - -func (m *PullMessageBySeqListReq) GetUserID() string { - if m != nil { - return m.UserID +func (x *PullMessageBySeqListReq) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *PullMessageBySeqListReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *PullMessageBySeqListReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *PullMessageBySeqListReq) GetSeqList() []uint32 { - if m != nil { - return m.SeqList +func (x *PullMessageBySeqListReq) GetSeqList() []uint32 { + if x != nil { + return x.SeqList } return nil } -func (m *PullMessageBySeqListReq) GetGroupSeqList() map[string]*SeqList { - if m != nil { - return m.GroupSeqList +func (x *PullMessageBySeqListReq) GetGroupSeqList() map[string]*SeqList { + if x != nil { + return x.GroupSeqList } return nil } type SeqList struct { - SeqList []uint32 `protobuf:"varint,1,rep,packed,name=seqList" json:"seqList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SeqList []uint32 `protobuf:"varint,1,rep,packed,name=seqList,proto3" json:"seqList,omitempty"` } -func (m *SeqList) Reset() { *m = SeqList{} } -func (m *SeqList) String() string { return proto.CompactTextString(m) } -func (*SeqList) ProtoMessage() {} +func (x *SeqList) Reset() { + *x = SeqList{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SeqList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SeqList) ProtoMessage() {} + +func (x *SeqList) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 SeqList.ProtoReflect.Descriptor instead. func (*SeqList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{15} -} -func (m *SeqList) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SeqList.Unmarshal(m, b) -} -func (m *SeqList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SeqList.Marshal(b, m, deterministic) -} -func (dst *SeqList) XXX_Merge(src proto.Message) { - xxx_messageInfo_SeqList.Merge(dst, src) -} -func (m *SeqList) XXX_Size() int { - return xxx_messageInfo_SeqList.Size(m) -} -func (m *SeqList) XXX_DiscardUnknown() { - xxx_messageInfo_SeqList.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{15} } -var xxx_messageInfo_SeqList proto.InternalMessageInfo - -func (m *SeqList) GetSeqList() []uint32 { - if m != nil { - return m.SeqList +func (x *SeqList) GetSeqList() []uint32 { + if x != nil { + return x.SeqList } return nil } type MsgDataList struct { - MsgDataList []*MsgData `protobuf:"bytes,1,rep,name=msgDataList" json:"msgDataList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MsgDataList []*MsgData `protobuf:"bytes,1,rep,name=msgDataList,proto3" json:"msgDataList,omitempty"` } -func (m *MsgDataList) Reset() { *m = MsgDataList{} } -func (m *MsgDataList) String() string { return proto.CompactTextString(m) } -func (*MsgDataList) ProtoMessage() {} +func (x *MsgDataList) Reset() { + *x = MsgDataList{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgDataList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgDataList) ProtoMessage() {} + +func (x *MsgDataList) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 MsgDataList.ProtoReflect.Descriptor instead. func (*MsgDataList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{16} -} -func (m *MsgDataList) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MsgDataList.Unmarshal(m, b) -} -func (m *MsgDataList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MsgDataList.Marshal(b, m, deterministic) -} -func (dst *MsgDataList) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgDataList.Merge(dst, src) -} -func (m *MsgDataList) XXX_Size() int { - return xxx_messageInfo_MsgDataList.Size(m) -} -func (m *MsgDataList) XXX_DiscardUnknown() { - xxx_messageInfo_MsgDataList.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{16} } -var xxx_messageInfo_MsgDataList proto.InternalMessageInfo - -func (m *MsgDataList) GetMsgDataList() []*MsgData { - if m != nil { - return m.MsgDataList +func (x *MsgDataList) GetMsgDataList() []*MsgData { + if x != nil { + return x.MsgDataList } return nil } type PullMessageBySeqListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` - List []*MsgData `protobuf:"bytes,3,rep,name=list" json:"list,omitempty"` - GroupMsgDataList map[string]*MsgDataList `protobuf:"bytes,4,rep,name=groupMsgDataList" json:"groupMsgDataList,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ErrCode int32 `protobuf:"varint,1,opt,name=errCode,proto3" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg,omitempty"` + List []*MsgData `protobuf:"bytes,3,rep,name=list,proto3" json:"list,omitempty"` + GroupMsgDataList map[string]*MsgDataList `protobuf:"bytes,4,rep,name=groupMsgDataList,proto3" json:"groupMsgDataList,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListResp{} } -func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } -func (*PullMessageBySeqListResp) ProtoMessage() {} +func (x *PullMessageBySeqListResp) Reset() { + *x = PullMessageBySeqListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PullMessageBySeqListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PullMessageBySeqListResp) ProtoMessage() {} + +func (x *PullMessageBySeqListResp) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 PullMessageBySeqListResp.ProtoReflect.Descriptor instead. func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{17} -} -func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) -} -func (m *PullMessageBySeqListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageBySeqListResp.Marshal(b, m, deterministic) -} -func (dst *PullMessageBySeqListResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageBySeqListResp.Merge(dst, src) -} -func (m *PullMessageBySeqListResp) XXX_Size() int { - return xxx_messageInfo_PullMessageBySeqListResp.Size(m) -} -func (m *PullMessageBySeqListResp) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageBySeqListResp.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{17} } -var xxx_messageInfo_PullMessageBySeqListResp proto.InternalMessageInfo - -func (m *PullMessageBySeqListResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *PullMessageBySeqListResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *PullMessageBySeqListResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *PullMessageBySeqListResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *PullMessageBySeqListResp) GetList() []*MsgData { - if m != nil { - return m.List +func (x *PullMessageBySeqListResp) GetList() []*MsgData { + if x != nil { + return x.List } return nil } -func (m *PullMessageBySeqListResp) GetGroupMsgDataList() map[string]*MsgDataList { - if m != nil { - return m.GroupMsgDataList +func (x *PullMessageBySeqListResp) GetGroupMsgDataList() map[string]*MsgDataList { + if x != nil { + return x.GroupMsgDataList } return nil } type GetMaxAndMinSeqReq struct { - GroupIDList []string `protobuf:"bytes,1,rep,name=groupIDList" json:"groupIDList,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupIDList []string `protobuf:"bytes,1,rep,name=groupIDList,proto3" json:"groupIDList,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` } -func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} } -func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } -func (*GetMaxAndMinSeqReq) ProtoMessage() {} +func (x *GetMaxAndMinSeqReq) Reset() { + *x = GetMaxAndMinSeqReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMaxAndMinSeqReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMaxAndMinSeqReq) ProtoMessage() {} + +func (x *GetMaxAndMinSeqReq) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 GetMaxAndMinSeqReq.ProtoReflect.Descriptor instead. func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{18} -} -func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) -} -func (m *GetMaxAndMinSeqReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetMaxAndMinSeqReq.Marshal(b, m, deterministic) -} -func (dst *GetMaxAndMinSeqReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetMaxAndMinSeqReq.Merge(dst, src) -} -func (m *GetMaxAndMinSeqReq) XXX_Size() int { - return xxx_messageInfo_GetMaxAndMinSeqReq.Size(m) -} -func (m *GetMaxAndMinSeqReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetMaxAndMinSeqReq.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{18} } -var xxx_messageInfo_GetMaxAndMinSeqReq proto.InternalMessageInfo - -func (m *GetMaxAndMinSeqReq) GetGroupIDList() []string { - if m != nil { - return m.GroupIDList +func (x *GetMaxAndMinSeqReq) GetGroupIDList() []string { + if x != nil { + return x.GroupIDList } return nil } -func (m *GetMaxAndMinSeqReq) GetUserID() string { - if m != nil { - return m.UserID +func (x *GetMaxAndMinSeqReq) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *GetMaxAndMinSeqReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetMaxAndMinSeqReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type MaxAndMinSeq struct { - MaxSeq uint32 `protobuf:"varint,1,opt,name=maxSeq" json:"maxSeq,omitempty"` - MinSeq uint32 `protobuf:"varint,2,opt,name=minSeq" json:"minSeq,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MaxSeq uint32 `protobuf:"varint,1,opt,name=maxSeq,proto3" json:"maxSeq,omitempty"` + MinSeq uint32 `protobuf:"varint,2,opt,name=minSeq,proto3" json:"minSeq,omitempty"` } -func (m *MaxAndMinSeq) Reset() { *m = MaxAndMinSeq{} } -func (m *MaxAndMinSeq) String() string { return proto.CompactTextString(m) } -func (*MaxAndMinSeq) ProtoMessage() {} +func (x *MaxAndMinSeq) Reset() { + *x = MaxAndMinSeq{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MaxAndMinSeq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MaxAndMinSeq) ProtoMessage() {} + +func (x *MaxAndMinSeq) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 MaxAndMinSeq.ProtoReflect.Descriptor instead. func (*MaxAndMinSeq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{19} -} -func (m *MaxAndMinSeq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MaxAndMinSeq.Unmarshal(m, b) -} -func (m *MaxAndMinSeq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MaxAndMinSeq.Marshal(b, m, deterministic) -} -func (dst *MaxAndMinSeq) XXX_Merge(src proto.Message) { - xxx_messageInfo_MaxAndMinSeq.Merge(dst, src) -} -func (m *MaxAndMinSeq) XXX_Size() int { - return xxx_messageInfo_MaxAndMinSeq.Size(m) -} -func (m *MaxAndMinSeq) XXX_DiscardUnknown() { - xxx_messageInfo_MaxAndMinSeq.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{19} } -var xxx_messageInfo_MaxAndMinSeq proto.InternalMessageInfo - -func (m *MaxAndMinSeq) GetMaxSeq() uint32 { - if m != nil { - return m.MaxSeq +func (x *MaxAndMinSeq) GetMaxSeq() uint32 { + if x != nil { + return x.MaxSeq } return 0 } -func (m *MaxAndMinSeq) GetMinSeq() uint32 { - if m != nil { - return m.MinSeq +func (x *MaxAndMinSeq) GetMinSeq() uint32 { + if x != nil { + return x.MinSeq } return 0 } type GetMaxAndMinSeqResp struct { - MaxSeq uint32 `protobuf:"varint,1,opt,name=maxSeq" json:"maxSeq,omitempty"` - MinSeq uint32 `protobuf:"varint,2,opt,name=minSeq" json:"minSeq,omitempty"` - ErrCode int32 `protobuf:"varint,3,opt,name=errCode" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,4,opt,name=errMsg" json:"errMsg,omitempty"` - GroupMaxAndMinSeq map[string]*MaxAndMinSeq `protobuf:"bytes,5,rep,name=groupMaxAndMinSeq" json:"groupMaxAndMinSeq,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MaxSeq uint32 `protobuf:"varint,1,opt,name=maxSeq,proto3" json:"maxSeq,omitempty"` + MinSeq uint32 `protobuf:"varint,2,opt,name=minSeq,proto3" json:"minSeq,omitempty"` + ErrCode int32 `protobuf:"varint,3,opt,name=errCode,proto3" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,4,opt,name=errMsg,proto3" json:"errMsg,omitempty"` + GroupMaxAndMinSeq map[string]*MaxAndMinSeq `protobuf:"bytes,5,rep,name=groupMaxAndMinSeq,proto3" json:"groupMaxAndMinSeq,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } -func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } -func (*GetMaxAndMinSeqResp) ProtoMessage() {} +func (x *GetMaxAndMinSeqResp) Reset() { + *x = GetMaxAndMinSeqResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMaxAndMinSeqResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMaxAndMinSeqResp) ProtoMessage() {} + +func (x *GetMaxAndMinSeqResp) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_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 GetMaxAndMinSeqResp.ProtoReflect.Descriptor instead. func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{20} -} -func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) -} -func (m *GetMaxAndMinSeqResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetMaxAndMinSeqResp.Marshal(b, m, deterministic) -} -func (dst *GetMaxAndMinSeqResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetMaxAndMinSeqResp.Merge(dst, src) -} -func (m *GetMaxAndMinSeqResp) XXX_Size() int { - return xxx_messageInfo_GetMaxAndMinSeqResp.Size(m) -} -func (m *GetMaxAndMinSeqResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetMaxAndMinSeqResp.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{20} } -var xxx_messageInfo_GetMaxAndMinSeqResp proto.InternalMessageInfo - -func (m *GetMaxAndMinSeqResp) GetMaxSeq() uint32 { - if m != nil { - return m.MaxSeq +func (x *GetMaxAndMinSeqResp) GetMaxSeq() uint32 { + if x != nil { + return x.MaxSeq } return 0 } -func (m *GetMaxAndMinSeqResp) GetMinSeq() uint32 { - if m != nil { - return m.MinSeq +func (x *GetMaxAndMinSeqResp) GetMinSeq() uint32 { + if x != nil { + return x.MinSeq } return 0 } -func (m *GetMaxAndMinSeqResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GetMaxAndMinSeqResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *GetMaxAndMinSeqResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *GetMaxAndMinSeqResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *GetMaxAndMinSeqResp) GetGroupMaxAndMinSeq() map[string]*MaxAndMinSeq { - if m != nil { - return m.GroupMaxAndMinSeq +func (x *GetMaxAndMinSeqResp) GetGroupMaxAndMinSeq() map[string]*MaxAndMinSeq { + if x != nil { + return x.GroupMaxAndMinSeq } return nil } type UserSendMsgResp struct { - ServerMsgID string `protobuf:"bytes,1,opt,name=serverMsgID" json:"serverMsgID,omitempty"` - ClientMsgID string `protobuf:"bytes,2,opt,name=clientMsgID" json:"clientMsgID,omitempty"` - SendTime int64 `protobuf:"varint,3,opt,name=sendTime" json:"sendTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServerMsgID string `protobuf:"bytes,1,opt,name=serverMsgID,proto3" json:"serverMsgID,omitempty"` + ClientMsgID string `protobuf:"bytes,2,opt,name=clientMsgID,proto3" json:"clientMsgID,omitempty"` + SendTime int64 `protobuf:"varint,3,opt,name=sendTime,proto3" json:"sendTime,omitempty"` } -func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } -func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } -func (*UserSendMsgResp) ProtoMessage() {} +func (x *UserSendMsgResp) Reset() { + *x = UserSendMsgResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserSendMsgResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserSendMsgResp) ProtoMessage() {} + +func (x *UserSendMsgResp) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserSendMsgResp.ProtoReflect.Descriptor instead. func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{21} -} -func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) -} -func (m *UserSendMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSendMsgResp.Marshal(b, m, deterministic) -} -func (dst *UserSendMsgResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSendMsgResp.Merge(dst, src) -} -func (m *UserSendMsgResp) XXX_Size() int { - return xxx_messageInfo_UserSendMsgResp.Size(m) -} -func (m *UserSendMsgResp) XXX_DiscardUnknown() { - xxx_messageInfo_UserSendMsgResp.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{21} } -var xxx_messageInfo_UserSendMsgResp proto.InternalMessageInfo - -func (m *UserSendMsgResp) GetServerMsgID() string { - if m != nil { - return m.ServerMsgID +func (x *UserSendMsgResp) GetServerMsgID() string { + if x != nil { + return x.ServerMsgID } return "" } -func (m *UserSendMsgResp) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID +func (x *UserSendMsgResp) GetClientMsgID() string { + if x != nil { + return x.ClientMsgID } return "" } -func (m *UserSendMsgResp) GetSendTime() int64 { - if m != nil { - return m.SendTime +func (x *UserSendMsgResp) GetSendTime() int64 { + if x != nil { + return x.SendTime } return 0 } type MsgData struct { - SendID string `protobuf:"bytes,1,opt,name=sendID" json:"sendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=recvID" json:"recvID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` - ClientMsgID string `protobuf:"bytes,4,opt,name=clientMsgID" json:"clientMsgID,omitempty"` - ServerMsgID string `protobuf:"bytes,5,opt,name=serverMsgID" json:"serverMsgID,omitempty"` - SenderPlatformID int32 `protobuf:"varint,6,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"` - SenderNickname string `protobuf:"bytes,7,opt,name=senderNickname" json:"senderNickname,omitempty"` - SenderFaceURL string `protobuf:"bytes,8,opt,name=senderFaceURL" json:"senderFaceURL,omitempty"` - SessionType int32 `protobuf:"varint,9,opt,name=sessionType" json:"sessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,10,opt,name=msgFrom" json:"msgFrom,omitempty"` - ContentType int32 `protobuf:"varint,11,opt,name=contentType" json:"contentType,omitempty"` - Content []byte `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"` - Seq uint32 `protobuf:"varint,14,opt,name=seq" json:"seq,omitempty"` - SendTime int64 `protobuf:"varint,15,opt,name=sendTime" json:"sendTime,omitempty"` - CreateTime int64 `protobuf:"varint,16,opt,name=createTime" json:"createTime,omitempty"` - Status int32 `protobuf:"varint,17,opt,name=status" json:"status,omitempty"` - Options map[string]bool `protobuf:"bytes,18,rep,name=options" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,19,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` - AtUserIDList []string `protobuf:"bytes,20,rep,name=atUserIDList" json:"atUserIDList,omitempty"` - MsgDataList []byte `protobuf:"bytes,21,opt,name=msgDataList,proto3" json:"msgDataList,omitempty"` - AttachedInfo string `protobuf:"bytes,22,opt,name=attachedInfo" json:"attachedInfo,omitempty"` - Ex string `protobuf:"bytes,23,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SendID string `protobuf:"bytes,1,opt,name=sendID,proto3" json:"sendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=recvID,proto3" json:"recvID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID,proto3" json:"groupID,omitempty"` + ClientMsgID string `protobuf:"bytes,4,opt,name=clientMsgID,proto3" json:"clientMsgID,omitempty"` + ServerMsgID string `protobuf:"bytes,5,opt,name=serverMsgID,proto3" json:"serverMsgID,omitempty"` + SenderPlatformID int32 `protobuf:"varint,6,opt,name=senderPlatformID,proto3" json:"senderPlatformID,omitempty"` + SenderNickname string `protobuf:"bytes,7,opt,name=senderNickname,proto3" json:"senderNickname,omitempty"` + SenderFaceURL string `protobuf:"bytes,8,opt,name=senderFaceURL,proto3" json:"senderFaceURL,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=sessionType,proto3" json:"sessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,10,opt,name=msgFrom,proto3" json:"msgFrom,omitempty"` + ContentType int32 `protobuf:"varint,11,opt,name=contentType,proto3" json:"contentType,omitempty"` + Content []byte `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"` + Seq uint32 `protobuf:"varint,14,opt,name=seq,proto3" json:"seq,omitempty"` + SendTime int64 `protobuf:"varint,15,opt,name=sendTime,proto3" json:"sendTime,omitempty"` + CreateTime int64 `protobuf:"varint,16,opt,name=createTime,proto3" json:"createTime,omitempty"` + Status int32 `protobuf:"varint,17,opt,name=status,proto3" json:"status,omitempty"` + Options map[string]bool `protobuf:"bytes,18,rep,name=options,proto3" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,19,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` + AtUserIDList []string `protobuf:"bytes,20,rep,name=atUserIDList,proto3" json:"atUserIDList,omitempty"` + MsgDataList []byte `protobuf:"bytes,21,opt,name=msgDataList,proto3" json:"msgDataList,omitempty"` + AttachedInfo string `protobuf:"bytes,22,opt,name=attachedInfo,proto3" json:"attachedInfo,omitempty"` + Ex string `protobuf:"bytes,23,opt,name=ex,proto3" json:"ex,omitempty"` } -func (m *MsgData) Reset() { *m = MsgData{} } -func (m *MsgData) String() string { return proto.CompactTextString(m) } -func (*MsgData) ProtoMessage() {} +func (x *MsgData) Reset() { + *x = MsgData{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgData) ProtoMessage() {} + +func (x *MsgData) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgData.ProtoReflect.Descriptor instead. func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{22} -} -func (m *MsgData) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MsgData.Unmarshal(m, b) -} -func (m *MsgData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MsgData.Marshal(b, m, deterministic) -} -func (dst *MsgData) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgData.Merge(dst, src) -} -func (m *MsgData) XXX_Size() int { - return xxx_messageInfo_MsgData.Size(m) -} -func (m *MsgData) XXX_DiscardUnknown() { - xxx_messageInfo_MsgData.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{22} } -var xxx_messageInfo_MsgData proto.InternalMessageInfo - -func (m *MsgData) GetSendID() string { - if m != nil { - return m.SendID +func (x *MsgData) GetSendID() string { + if x != nil { + return x.SendID } return "" } -func (m *MsgData) GetRecvID() string { - if m != nil { - return m.RecvID +func (x *MsgData) GetRecvID() string { + if x != nil { + return x.RecvID } return "" } -func (m *MsgData) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *MsgData) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *MsgData) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID +func (x *MsgData) GetClientMsgID() string { + if x != nil { + return x.ClientMsgID } return "" } -func (m *MsgData) GetServerMsgID() string { - if m != nil { - return m.ServerMsgID +func (x *MsgData) GetServerMsgID() string { + if x != nil { + return x.ServerMsgID } return "" } -func (m *MsgData) GetSenderPlatformID() int32 { - if m != nil { - return m.SenderPlatformID +func (x *MsgData) GetSenderPlatformID() int32 { + if x != nil { + return x.SenderPlatformID } return 0 } -func (m *MsgData) GetSenderNickname() string { - if m != nil { - return m.SenderNickname +func (x *MsgData) GetSenderNickname() string { + if x != nil { + return x.SenderNickname } return "" } -func (m *MsgData) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL +func (x *MsgData) GetSenderFaceURL() string { + if x != nil { + return x.SenderFaceURL } return "" } -func (m *MsgData) GetSessionType() int32 { - if m != nil { - return m.SessionType +func (x *MsgData) GetSessionType() int32 { + if x != nil { + return x.SessionType } return 0 } -func (m *MsgData) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom +func (x *MsgData) GetMsgFrom() int32 { + if x != nil { + return x.MsgFrom } return 0 } -func (m *MsgData) GetContentType() int32 { - if m != nil { - return m.ContentType +func (x *MsgData) GetContentType() int32 { + if x != nil { + return x.ContentType } return 0 } -func (m *MsgData) GetContent() []byte { - if m != nil { - return m.Content +func (x *MsgData) GetContent() []byte { + if x != nil { + return x.Content } return nil } -func (m *MsgData) GetSeq() uint32 { - if m != nil { - return m.Seq +func (x *MsgData) GetSeq() uint32 { + if x != nil { + return x.Seq } return 0 } -func (m *MsgData) GetSendTime() int64 { - if m != nil { - return m.SendTime +func (x *MsgData) GetSendTime() int64 { + if x != nil { + return x.SendTime } return 0 } -func (m *MsgData) GetCreateTime() int64 { - if m != nil { - return m.CreateTime +func (x *MsgData) GetCreateTime() int64 { + if x != nil { + return x.CreateTime } return 0 } -func (m *MsgData) GetStatus() int32 { - if m != nil { - return m.Status +func (x *MsgData) GetStatus() int32 { + if x != nil { + return x.Status } return 0 } -func (m *MsgData) GetOptions() map[string]bool { - if m != nil { - return m.Options +func (x *MsgData) GetOptions() map[string]bool { + if x != nil { + return x.Options } return nil } -func (m *MsgData) GetOfflinePushInfo() *OfflinePushInfo { - if m != nil { - return m.OfflinePushInfo +func (x *MsgData) GetOfflinePushInfo() *OfflinePushInfo { + if x != nil { + return x.OfflinePushInfo } return nil } -func (m *MsgData) GetAtUserIDList() []string { - if m != nil { - return m.AtUserIDList +func (x *MsgData) GetAtUserIDList() []string { + if x != nil { + return x.AtUserIDList } return nil } -func (m *MsgData) GetMsgDataList() []byte { - if m != nil { - return m.MsgDataList +func (x *MsgData) GetMsgDataList() []byte { + if x != nil { + return x.MsgDataList } return nil } -func (m *MsgData) GetAttachedInfo() string { - if m != nil { - return m.AttachedInfo +func (x *MsgData) GetAttachedInfo() string { + if x != nil { + return x.AttachedInfo } return "" } -func (m *MsgData) GetEx() string { - if m != nil { - return m.Ex +func (x *MsgData) GetEx() string { + if x != nil { + return x.Ex } return "" } type OfflinePushInfo struct { - Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"` - Desc string `protobuf:"bytes,2,opt,name=desc" json:"desc,omitempty"` - Ex string `protobuf:"bytes,3,opt,name=ex" json:"ex,omitempty"` - IOSPushSound string `protobuf:"bytes,4,opt,name=iOSPushSound" json:"iOSPushSound,omitempty"` - IOSBadgeCount bool `protobuf:"varint,5,opt,name=iOSBadgeCount" json:"iOSBadgeCount,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Desc string `protobuf:"bytes,2,opt,name=desc,proto3" json:"desc,omitempty"` + Ex string `protobuf:"bytes,3,opt,name=ex,proto3" json:"ex,omitempty"` + IOSPushSound string `protobuf:"bytes,4,opt,name=iOSPushSound,proto3" json:"iOSPushSound,omitempty"` + IOSBadgeCount bool `protobuf:"varint,5,opt,name=iOSBadgeCount,proto3" json:"iOSBadgeCount,omitempty"` } -func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } -func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } -func (*OfflinePushInfo) ProtoMessage() {} +func (x *OfflinePushInfo) Reset() { + *x = OfflinePushInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OfflinePushInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OfflinePushInfo) ProtoMessage() {} + +func (x *OfflinePushInfo) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OfflinePushInfo.ProtoReflect.Descriptor instead. func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{23} -} -func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) -} -func (m *OfflinePushInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OfflinePushInfo.Marshal(b, m, deterministic) -} -func (dst *OfflinePushInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_OfflinePushInfo.Merge(dst, src) -} -func (m *OfflinePushInfo) XXX_Size() int { - return xxx_messageInfo_OfflinePushInfo.Size(m) -} -func (m *OfflinePushInfo) XXX_DiscardUnknown() { - xxx_messageInfo_OfflinePushInfo.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{23} } -var xxx_messageInfo_OfflinePushInfo proto.InternalMessageInfo - -func (m *OfflinePushInfo) GetTitle() string { - if m != nil { - return m.Title +func (x *OfflinePushInfo) GetTitle() string { + if x != nil { + return x.Title } return "" } -func (m *OfflinePushInfo) GetDesc() string { - if m != nil { - return m.Desc +func (x *OfflinePushInfo) GetDesc() string { + if x != nil { + return x.Desc } return "" } -func (m *OfflinePushInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *OfflinePushInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } -func (m *OfflinePushInfo) GetIOSPushSound() string { - if m != nil { - return m.IOSPushSound +func (x *OfflinePushInfo) GetIOSPushSound() string { + if x != nil { + return x.IOSPushSound } return "" } -func (m *OfflinePushInfo) GetIOSBadgeCount() bool { - if m != nil { - return m.IOSBadgeCount +func (x *OfflinePushInfo) GetIOSBadgeCount() bool { + if x != nil { + return x.IOSBadgeCount } return false } type TipsComm struct { - Detail []byte `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail,omitempty"` - DefaultTips string `protobuf:"bytes,2,opt,name=defaultTips" json:"defaultTips,omitempty"` - JsonDetail string `protobuf:"bytes,3,opt,name=jsonDetail" json:"jsonDetail,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Detail []byte `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail,omitempty"` + DefaultTips string `protobuf:"bytes,2,opt,name=defaultTips,proto3" json:"defaultTips,omitempty"` + JsonDetail string `protobuf:"bytes,3,opt,name=jsonDetail,proto3" json:"jsonDetail,omitempty"` } -func (m *TipsComm) Reset() { *m = TipsComm{} } -func (m *TipsComm) String() string { return proto.CompactTextString(m) } -func (*TipsComm) ProtoMessage() {} +func (x *TipsComm) Reset() { + *x = TipsComm{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TipsComm) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TipsComm) ProtoMessage() {} + +func (x *TipsComm) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TipsComm.ProtoReflect.Descriptor instead. func (*TipsComm) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{24} -} -func (m *TipsComm) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TipsComm.Unmarshal(m, b) -} -func (m *TipsComm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TipsComm.Marshal(b, m, deterministic) -} -func (dst *TipsComm) XXX_Merge(src proto.Message) { - xxx_messageInfo_TipsComm.Merge(dst, src) -} -func (m *TipsComm) XXX_Size() int { - return xxx_messageInfo_TipsComm.Size(m) -} -func (m *TipsComm) XXX_DiscardUnknown() { - xxx_messageInfo_TipsComm.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{24} } -var xxx_messageInfo_TipsComm proto.InternalMessageInfo - -func (m *TipsComm) GetDetail() []byte { - if m != nil { - return m.Detail +func (x *TipsComm) GetDetail() []byte { + if x != nil { + return x.Detail } return nil } -func (m *TipsComm) GetDefaultTips() string { - if m != nil { - return m.DefaultTips +func (x *TipsComm) GetDefaultTips() string { + if x != nil { + return x.DefaultTips } return "" } -func (m *TipsComm) GetJsonDetail() string { - if m != nil { - return m.JsonDetail +func (x *TipsComm) GetJsonDetail() string { + if x != nil { + return x.JsonDetail } return "" } -// OnGroupCreated() +// OnGroupCreated() type GroupCreatedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` - GroupOwnerUser *GroupMemberFullInfo `protobuf:"bytes,5,opt,name=groupOwnerUser" json:"groupOwnerUser,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + GroupOwnerUser *GroupMemberFullInfo `protobuf:"bytes,5,opt,name=groupOwnerUser,proto3" json:"groupOwnerUser,omitempty"` } -func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } -func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } -func (*GroupCreatedTips) ProtoMessage() {} +func (x *GroupCreatedTips) Reset() { + *x = GroupCreatedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupCreatedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupCreatedTips) ProtoMessage() {} + +func (x *GroupCreatedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupCreatedTips.ProtoReflect.Descriptor instead. func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{25} -} -func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) -} -func (m *GroupCreatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupCreatedTips.Marshal(b, m, deterministic) -} -func (dst *GroupCreatedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupCreatedTips.Merge(dst, src) -} -func (m *GroupCreatedTips) XXX_Size() int { - return xxx_messageInfo_GroupCreatedTips.Size(m) -} -func (m *GroupCreatedTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupCreatedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{25} } -var xxx_messageInfo_GroupCreatedTips proto.InternalMessageInfo - -func (m *GroupCreatedTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupCreatedTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *GroupCreatedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupCreatedTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo { - if m != nil { - return m.MemberList +func (x *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo { + if x != nil { + return x.MemberList } return nil } -func (m *GroupCreatedTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *GroupCreatedTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } -func (m *GroupCreatedTips) GetGroupOwnerUser() *GroupMemberFullInfo { - if m != nil { - return m.GroupOwnerUser +func (x *GroupCreatedTips) GetGroupOwnerUser() *GroupMemberFullInfo { + if x != nil { + return x.GroupOwnerUser } return nil } -// OnGroupInfoSet() +// OnGroupInfoSet() type GroupInfoSetTips struct { - OpUser *GroupMemberFullInfo `protobuf:"bytes,1,opt,name=opUser" json:"opUser,omitempty"` - MuteTime int64 `protobuf:"varint,2,opt,name=muteTime" json:"muteTime,omitempty"` - Group *GroupInfo `protobuf:"bytes,3,opt,name=group" json:"group,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpUser *GroupMemberFullInfo `protobuf:"bytes,1,opt,name=opUser,proto3" json:"opUser,omitempty"` //who do this + MuteTime int64 `protobuf:"varint,2,opt,name=muteTime,proto3" json:"muteTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,3,opt,name=group,proto3" json:"group,omitempty"` } -func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } -func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } -func (*GroupInfoSetTips) ProtoMessage() {} +func (x *GroupInfoSetTips) Reset() { + *x = GroupInfoSetTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupInfoSetTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupInfoSetTips) ProtoMessage() {} + +func (x *GroupInfoSetTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupInfoSetTips.ProtoReflect.Descriptor instead. func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{26} -} -func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) -} -func (m *GroupInfoSetTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupInfoSetTips.Marshal(b, m, deterministic) -} -func (dst *GroupInfoSetTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupInfoSetTips.Merge(dst, src) -} -func (m *GroupInfoSetTips) XXX_Size() int { - return xxx_messageInfo_GroupInfoSetTips.Size(m) -} -func (m *GroupInfoSetTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupInfoSetTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{26} } -var xxx_messageInfo_GroupInfoSetTips proto.InternalMessageInfo - -func (m *GroupInfoSetTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupInfoSetTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupInfoSetTips) GetMuteTime() int64 { - if m != nil { - return m.MuteTime +func (x *GroupInfoSetTips) GetMuteTime() int64 { + if x != nil { + return x.MuteTime } return 0 } -func (m *GroupInfoSetTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupInfoSetTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -// OnJoinGroupApplication() +// OnJoinGroupApplication() type JoinGroupApplicationTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=applicant" json:"applicant,omitempty"` - ReqMsg string `protobuf:"bytes,3,opt,name=reqMsg" json:"reqMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=applicant,proto3" json:"applicant,omitempty"` + ReqMsg string `protobuf:"bytes,3,opt,name=reqMsg,proto3" json:"reqMsg,omitempty"` } -func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTips{} } -func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } -func (*JoinGroupApplicationTips) ProtoMessage() {} +func (x *JoinGroupApplicationTips) Reset() { + *x = JoinGroupApplicationTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JoinGroupApplicationTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JoinGroupApplicationTips) ProtoMessage() {} + +func (x *JoinGroupApplicationTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JoinGroupApplicationTips.ProtoReflect.Descriptor instead. func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{27} -} -func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) -} -func (m *JoinGroupApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_JoinGroupApplicationTips.Marshal(b, m, deterministic) -} -func (dst *JoinGroupApplicationTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_JoinGroupApplicationTips.Merge(dst, src) -} -func (m *JoinGroupApplicationTips) XXX_Size() int { - return xxx_messageInfo_JoinGroupApplicationTips.Size(m) -} -func (m *JoinGroupApplicationTips) XXX_DiscardUnknown() { - xxx_messageInfo_JoinGroupApplicationTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{27} } -var xxx_messageInfo_JoinGroupApplicationTips proto.InternalMessageInfo - -func (m *JoinGroupApplicationTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *JoinGroupApplicationTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *JoinGroupApplicationTips) GetApplicant() *PublicUserInfo { - if m != nil { - return m.Applicant +func (x *JoinGroupApplicationTips) GetApplicant() *PublicUserInfo { + if x != nil { + return x.Applicant } return nil } -func (m *JoinGroupApplicationTips) GetReqMsg() string { - if m != nil { - return m.ReqMsg +func (x *JoinGroupApplicationTips) GetReqMsg() string { + if x != nil { + return x.ReqMsg } return "" } -// OnQuitGroup() -// Actively leave the group +// OnQuitGroup() +//Actively leave the group type MemberQuitTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - QuitUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=quitUser" json:"quitUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + QuitUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=quitUser,proto3" json:"quitUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` } -func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } -func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } -func (*MemberQuitTips) ProtoMessage() {} +func (x *MemberQuitTips) Reset() { + *x = MemberQuitTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MemberQuitTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MemberQuitTips) ProtoMessage() {} + +func (x *MemberQuitTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MemberQuitTips.ProtoReflect.Descriptor instead. func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{28} -} -func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) -} -func (m *MemberQuitTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MemberQuitTips.Marshal(b, m, deterministic) -} -func (dst *MemberQuitTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_MemberQuitTips.Merge(dst, src) -} -func (m *MemberQuitTips) XXX_Size() int { - return xxx_messageInfo_MemberQuitTips.Size(m) -} -func (m *MemberQuitTips) XXX_DiscardUnknown() { - xxx_messageInfo_MemberQuitTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{28} } -var xxx_messageInfo_MemberQuitTips proto.InternalMessageInfo - -func (m *MemberQuitTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *MemberQuitTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *MemberQuitTips) GetQuitUser() *GroupMemberFullInfo { - if m != nil { - return m.QuitUser +func (x *MemberQuitTips) GetQuitUser() *GroupMemberFullInfo { + if x != nil { + return x.QuitUser } return nil } -func (m *MemberQuitTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *MemberQuitTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } -// OnApplicationGroupAccepted() +// OnApplicationGroupAccepted() type GroupApplicationAcceptedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg" json:"handleMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` } -func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAcceptedTips{} } -func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } -func (*GroupApplicationAcceptedTips) ProtoMessage() {} +func (x *GroupApplicationAcceptedTips) Reset() { + *x = GroupApplicationAcceptedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupApplicationAcceptedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupApplicationAcceptedTips) ProtoMessage() {} + +func (x *GroupApplicationAcceptedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupApplicationAcceptedTips.ProtoReflect.Descriptor instead. func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{29} -} -func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) -} -func (m *GroupApplicationAcceptedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupApplicationAcceptedTips.Marshal(b, m, deterministic) -} -func (dst *GroupApplicationAcceptedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupApplicationAcceptedTips.Merge(dst, src) -} -func (m *GroupApplicationAcceptedTips) XXX_Size() int { - return xxx_messageInfo_GroupApplicationAcceptedTips.Size(m) -} -func (m *GroupApplicationAcceptedTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupApplicationAcceptedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{29} } -var xxx_messageInfo_GroupApplicationAcceptedTips proto.InternalMessageInfo - -func (m *GroupApplicationAcceptedTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupApplicationAcceptedTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *GroupApplicationAcceptedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupApplicationAcceptedTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupApplicationAcceptedTips) GetHandleMsg() string { - if m != nil { - return m.HandleMsg +func (x *GroupApplicationAcceptedTips) GetHandleMsg() string { + if x != nil { + return x.HandleMsg } return "" } -// OnApplicationGroupRejected() +// OnApplicationGroupRejected() type GroupApplicationRejectedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg" json:"handleMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` } -func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRejectedTips{} } -func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } -func (*GroupApplicationRejectedTips) ProtoMessage() {} +func (x *GroupApplicationRejectedTips) Reset() { + *x = GroupApplicationRejectedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupApplicationRejectedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupApplicationRejectedTips) ProtoMessage() {} + +func (x *GroupApplicationRejectedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupApplicationRejectedTips.ProtoReflect.Descriptor instead. func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{30} -} -func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) -} -func (m *GroupApplicationRejectedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupApplicationRejectedTips.Marshal(b, m, deterministic) -} -func (dst *GroupApplicationRejectedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupApplicationRejectedTips.Merge(dst, src) -} -func (m *GroupApplicationRejectedTips) XXX_Size() int { - return xxx_messageInfo_GroupApplicationRejectedTips.Size(m) -} -func (m *GroupApplicationRejectedTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupApplicationRejectedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{30} } -var xxx_messageInfo_GroupApplicationRejectedTips proto.InternalMessageInfo - -func (m *GroupApplicationRejectedTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupApplicationRejectedTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *GroupApplicationRejectedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupApplicationRejectedTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupApplicationRejectedTips) GetHandleMsg() string { - if m != nil { - return m.HandleMsg +func (x *GroupApplicationRejectedTips) GetHandleMsg() string { + if x != nil { + return x.HandleMsg } return "" } -// OnTransferGroupOwner() +// OnTransferGroupOwner() type GroupOwnerTransferredTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - NewGroupOwner *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=newGroupOwner" json:"newGroupOwner,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + NewGroupOwner *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=newGroupOwner,proto3" json:"newGroupOwner,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` } -func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferredTips{} } -func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } -func (*GroupOwnerTransferredTips) ProtoMessage() {} +func (x *GroupOwnerTransferredTips) Reset() { + *x = GroupOwnerTransferredTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupOwnerTransferredTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupOwnerTransferredTips) ProtoMessage() {} + +func (x *GroupOwnerTransferredTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupOwnerTransferredTips.ProtoReflect.Descriptor instead. func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{31} -} -func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) -} -func (m *GroupOwnerTransferredTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupOwnerTransferredTips.Marshal(b, m, deterministic) -} -func (dst *GroupOwnerTransferredTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupOwnerTransferredTips.Merge(dst, src) -} -func (m *GroupOwnerTransferredTips) XXX_Size() int { - return xxx_messageInfo_GroupOwnerTransferredTips.Size(m) -} -func (m *GroupOwnerTransferredTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupOwnerTransferredTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{31} } -var xxx_messageInfo_GroupOwnerTransferredTips proto.InternalMessageInfo - -func (m *GroupOwnerTransferredTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupOwnerTransferredTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *GroupOwnerTransferredTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupOwnerTransferredTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupOwnerTransferredTips) GetNewGroupOwner() *GroupMemberFullInfo { - if m != nil { - return m.NewGroupOwner +func (x *GroupOwnerTransferredTips) GetNewGroupOwner() *GroupMemberFullInfo { + if x != nil { + return x.NewGroupOwner } return nil } -func (m *GroupOwnerTransferredTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *GroupOwnerTransferredTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } -// OnMemberKicked() +// OnMemberKicked() type MemberKickedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - KickedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=kickedUserList" json:"kickedUserList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + KickedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=kickedUserList,proto3" json:"kickedUserList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` } -func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } -func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } -func (*MemberKickedTips) ProtoMessage() {} +func (x *MemberKickedTips) Reset() { + *x = MemberKickedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MemberKickedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MemberKickedTips) ProtoMessage() {} + +func (x *MemberKickedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MemberKickedTips.ProtoReflect.Descriptor instead. func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{32} -} -func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) -} -func (m *MemberKickedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MemberKickedTips.Marshal(b, m, deterministic) -} -func (dst *MemberKickedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_MemberKickedTips.Merge(dst, src) -} -func (m *MemberKickedTips) XXX_Size() int { - return xxx_messageInfo_MemberKickedTips.Size(m) -} -func (m *MemberKickedTips) XXX_DiscardUnknown() { - xxx_messageInfo_MemberKickedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{32} } -var xxx_messageInfo_MemberKickedTips proto.InternalMessageInfo - -func (m *MemberKickedTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *MemberKickedTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *MemberKickedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *MemberKickedTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *MemberKickedTips) GetKickedUserList() []*GroupMemberFullInfo { - if m != nil { - return m.KickedUserList +func (x *MemberKickedTips) GetKickedUserList() []*GroupMemberFullInfo { + if x != nil { + return x.KickedUserList } return nil } -func (m *MemberKickedTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *MemberKickedTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } -// OnMemberInvited() +// OnMemberInvited() type MemberInvitedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - InvitedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=invitedUserList" json:"invitedUserList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + InvitedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=invitedUserList,proto3" json:"invitedUserList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` } -func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } -func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } -func (*MemberInvitedTips) ProtoMessage() {} +func (x *MemberInvitedTips) Reset() { + *x = MemberInvitedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MemberInvitedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MemberInvitedTips) ProtoMessage() {} + +func (x *MemberInvitedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MemberInvitedTips.ProtoReflect.Descriptor instead. func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{33} -} -func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) -} -func (m *MemberInvitedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MemberInvitedTips.Marshal(b, m, deterministic) -} -func (dst *MemberInvitedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_MemberInvitedTips.Merge(dst, src) -} -func (m *MemberInvitedTips) XXX_Size() int { - return xxx_messageInfo_MemberInvitedTips.Size(m) -} -func (m *MemberInvitedTips) XXX_DiscardUnknown() { - xxx_messageInfo_MemberInvitedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{33} } -var xxx_messageInfo_MemberInvitedTips proto.InternalMessageInfo - -func (m *MemberInvitedTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *MemberInvitedTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *MemberInvitedTips) GetInvitedUserList() []*GroupMemberFullInfo { - if m != nil { - return m.InvitedUserList +func (x *MemberInvitedTips) GetInvitedUserList() []*GroupMemberFullInfo { + if x != nil { + return x.InvitedUserList } return nil } -func (m *MemberInvitedTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *MemberInvitedTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } -// Actively join the group +//Actively join the group type MemberEnterTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - EntrantUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=entrantUser" json:"entrantUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + EntrantUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=entrantUser,proto3" json:"entrantUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` } -func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } -func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } -func (*MemberEnterTips) ProtoMessage() {} +func (x *MemberEnterTips) Reset() { + *x = MemberEnterTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MemberEnterTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MemberEnterTips) ProtoMessage() {} + +func (x *MemberEnterTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MemberEnterTips.ProtoReflect.Descriptor instead. func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{34} -} -func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) -} -func (m *MemberEnterTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MemberEnterTips.Marshal(b, m, deterministic) -} -func (dst *MemberEnterTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_MemberEnterTips.Merge(dst, src) -} -func (m *MemberEnterTips) XXX_Size() int { - return xxx_messageInfo_MemberEnterTips.Size(m) -} -func (m *MemberEnterTips) XXX_DiscardUnknown() { - xxx_messageInfo_MemberEnterTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{34} } -var xxx_messageInfo_MemberEnterTips proto.InternalMessageInfo - -func (m *MemberEnterTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *MemberEnterTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *MemberEnterTips) GetEntrantUser() *GroupMemberFullInfo { - if m != nil { - return m.EntrantUser +func (x *MemberEnterTips) GetEntrantUser() *GroupMemberFullInfo { + if x != nil { + return x.EntrantUser } return nil } -func (m *MemberEnterTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *MemberEnterTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } type GroupDismissedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` } -func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } -func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } -func (*GroupDismissedTips) ProtoMessage() {} +func (x *GroupDismissedTips) Reset() { + *x = GroupDismissedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupDismissedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupDismissedTips) ProtoMessage() {} + +func (x *GroupDismissedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupDismissedTips.ProtoReflect.Descriptor instead. func (*GroupDismissedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{35} -} -func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) -} -func (m *GroupDismissedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupDismissedTips.Marshal(b, m, deterministic) -} -func (dst *GroupDismissedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupDismissedTips.Merge(dst, src) -} -func (m *GroupDismissedTips) XXX_Size() int { - return xxx_messageInfo_GroupDismissedTips.Size(m) -} -func (m *GroupDismissedTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupDismissedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{35} } -var xxx_messageInfo_GroupDismissedTips proto.InternalMessageInfo - -func (m *GroupDismissedTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupDismissedTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *GroupDismissedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupDismissedTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupDismissedTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *GroupDismissedTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } type GroupMemberMutedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` - MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser" json:"mutedUser,omitempty"` - MutedSeconds uint32 `protobuf:"varint,5,opt,name=mutedSeconds" json:"mutedSeconds,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser,proto3" json:"mutedUser,omitempty"` + MutedSeconds uint32 `protobuf:"varint,5,opt,name=mutedSeconds,proto3" json:"mutedSeconds,omitempty"` } -func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} } -func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) } -func (*GroupMemberMutedTips) ProtoMessage() {} +func (x *GroupMemberMutedTips) Reset() { + *x = GroupMemberMutedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupMemberMutedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupMemberMutedTips) ProtoMessage() {} + +func (x *GroupMemberMutedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupMemberMutedTips.ProtoReflect.Descriptor instead. func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{36} -} -func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) -} -func (m *GroupMemberMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupMemberMutedTips.Marshal(b, m, deterministic) -} -func (dst *GroupMemberMutedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupMemberMutedTips.Merge(dst, src) -} -func (m *GroupMemberMutedTips) XXX_Size() int { - return xxx_messageInfo_GroupMemberMutedTips.Size(m) -} -func (m *GroupMemberMutedTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupMemberMutedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{36} } -var xxx_messageInfo_GroupMemberMutedTips proto.InternalMessageInfo - -func (m *GroupMemberMutedTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupMemberMutedTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *GroupMemberMutedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupMemberMutedTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupMemberMutedTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *GroupMemberMutedTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } -func (m *GroupMemberMutedTips) GetMutedUser() *GroupMemberFullInfo { - if m != nil { - return m.MutedUser +func (x *GroupMemberMutedTips) GetMutedUser() *GroupMemberFullInfo { + if x != nil { + return x.MutedUser } return nil } -func (m *GroupMemberMutedTips) GetMutedSeconds() uint32 { - if m != nil { - return m.MutedSeconds +func (x *GroupMemberMutedTips) GetMutedSeconds() uint32 { + if x != nil { + return x.MutedSeconds } return 0 } type GroupMemberCancelMutedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` - MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser" json:"mutedUser,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser,proto3" json:"mutedUser,omitempty"` } -func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMutedTips{} } -func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } -func (*GroupMemberCancelMutedTips) ProtoMessage() {} +func (x *GroupMemberCancelMutedTips) Reset() { + *x = GroupMemberCancelMutedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupMemberCancelMutedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupMemberCancelMutedTips) ProtoMessage() {} + +func (x *GroupMemberCancelMutedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupMemberCancelMutedTips.ProtoReflect.Descriptor instead. func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{37} -} -func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) -} -func (m *GroupMemberCancelMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupMemberCancelMutedTips.Marshal(b, m, deterministic) -} -func (dst *GroupMemberCancelMutedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupMemberCancelMutedTips.Merge(dst, src) -} -func (m *GroupMemberCancelMutedTips) XXX_Size() int { - return xxx_messageInfo_GroupMemberCancelMutedTips.Size(m) -} -func (m *GroupMemberCancelMutedTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupMemberCancelMutedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{37} } -var xxx_messageInfo_GroupMemberCancelMutedTips proto.InternalMessageInfo - -func (m *GroupMemberCancelMutedTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupMemberCancelMutedTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *GroupMemberCancelMutedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupMemberCancelMutedTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupMemberCancelMutedTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *GroupMemberCancelMutedTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } -func (m *GroupMemberCancelMutedTips) GetMutedUser() *GroupMemberFullInfo { - if m != nil { - return m.MutedUser +func (x *GroupMemberCancelMutedTips) GetMutedUser() *GroupMemberFullInfo { + if x != nil { + return x.MutedUser } return nil } type GroupMutedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` } -func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} } -func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) } -func (*GroupMutedTips) ProtoMessage() {} +func (x *GroupMutedTips) Reset() { + *x = GroupMutedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupMutedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupMutedTips) ProtoMessage() {} + +func (x *GroupMutedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupMutedTips.ProtoReflect.Descriptor instead. func (*GroupMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{38} -} -func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) -} -func (m *GroupMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupMutedTips.Marshal(b, m, deterministic) -} -func (dst *GroupMutedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupMutedTips.Merge(dst, src) -} -func (m *GroupMutedTips) XXX_Size() int { - return xxx_messageInfo_GroupMutedTips.Size(m) -} -func (m *GroupMutedTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupMutedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{38} } -var xxx_messageInfo_GroupMutedTips proto.InternalMessageInfo - -func (m *GroupMutedTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupMutedTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *GroupMutedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupMutedTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupMutedTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *GroupMutedTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } type GroupCancelMutedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` } -func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} } -func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) } -func (*GroupCancelMutedTips) ProtoMessage() {} +func (x *GroupCancelMutedTips) Reset() { + *x = GroupCancelMutedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupCancelMutedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupCancelMutedTips) ProtoMessage() {} + +func (x *GroupCancelMutedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupCancelMutedTips.ProtoReflect.Descriptor instead. func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{39} -} -func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) -} -func (m *GroupCancelMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupCancelMutedTips.Marshal(b, m, deterministic) -} -func (dst *GroupCancelMutedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupCancelMutedTips.Merge(dst, src) -} -func (m *GroupCancelMutedTips) XXX_Size() int { - return xxx_messageInfo_GroupCancelMutedTips.Size(m) -} -func (m *GroupCancelMutedTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupCancelMutedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{39} } -var xxx_messageInfo_GroupCancelMutedTips proto.InternalMessageInfo - -func (m *GroupCancelMutedTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupCancelMutedTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *GroupCancelMutedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupCancelMutedTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupCancelMutedTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *GroupCancelMutedTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } type GroupMemberInfoSetTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` - ChangedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=changedUser" json:"changedUser,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + ChangedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=changedUser,proto3" json:"changedUser,omitempty"` } -func (m *GroupMemberInfoSetTips) Reset() { *m = GroupMemberInfoSetTips{} } -func (m *GroupMemberInfoSetTips) String() string { return proto.CompactTextString(m) } -func (*GroupMemberInfoSetTips) ProtoMessage() {} +func (x *GroupMemberInfoSetTips) Reset() { + *x = GroupMemberInfoSetTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupMemberInfoSetTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupMemberInfoSetTips) ProtoMessage() {} + +func (x *GroupMemberInfoSetTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupMemberInfoSetTips.ProtoReflect.Descriptor instead. func (*GroupMemberInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{40} -} -func (m *GroupMemberInfoSetTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupMemberInfoSetTips.Unmarshal(m, b) -} -func (m *GroupMemberInfoSetTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupMemberInfoSetTips.Marshal(b, m, deterministic) -} -func (dst *GroupMemberInfoSetTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupMemberInfoSetTips.Merge(dst, src) -} -func (m *GroupMemberInfoSetTips) XXX_Size() int { - return xxx_messageInfo_GroupMemberInfoSetTips.Size(m) -} -func (m *GroupMemberInfoSetTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupMemberInfoSetTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{40} } -var xxx_messageInfo_GroupMemberInfoSetTips proto.InternalMessageInfo - -func (m *GroupMemberInfoSetTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupMemberInfoSetTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *GroupMemberInfoSetTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupMemberInfoSetTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupMemberInfoSetTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *GroupMemberInfoSetTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } -func (m *GroupMemberInfoSetTips) GetChangedUser() *GroupMemberFullInfo { - if m != nil { - return m.ChangedUser +func (x *GroupMemberInfoSetTips) GetChangedUser() *GroupMemberFullInfo { + if x != nil { + return x.ChangedUser } return nil } type OrganizationChangedTips struct { - OpUser *UserInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpUser *UserInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` } -func (m *OrganizationChangedTips) Reset() { *m = OrganizationChangedTips{} } -func (m *OrganizationChangedTips) String() string { return proto.CompactTextString(m) } -func (*OrganizationChangedTips) ProtoMessage() {} +func (x *OrganizationChangedTips) Reset() { + *x = OrganizationChangedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrganizationChangedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrganizationChangedTips) ProtoMessage() {} + +func (x *OrganizationChangedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrganizationChangedTips.ProtoReflect.Descriptor instead. func (*OrganizationChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{41} -} -func (m *OrganizationChangedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrganizationChangedTips.Unmarshal(m, b) -} -func (m *OrganizationChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrganizationChangedTips.Marshal(b, m, deterministic) -} -func (dst *OrganizationChangedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrganizationChangedTips.Merge(dst, src) -} -func (m *OrganizationChangedTips) XXX_Size() int { - return xxx_messageInfo_OrganizationChangedTips.Size(m) -} -func (m *OrganizationChangedTips) XXX_DiscardUnknown() { - xxx_messageInfo_OrganizationChangedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{41} } -var xxx_messageInfo_OrganizationChangedTips proto.InternalMessageInfo - -func (m *OrganizationChangedTips) GetOpUser() *UserInfo { - if m != nil { - return m.OpUser +func (x *OrganizationChangedTips) GetOpUser() *UserInfo { + if x != nil { + return x.OpUser } return nil } -func (m *OrganizationChangedTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *OrganizationChangedTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } type FriendApplication struct { - AddTime int64 `protobuf:"varint,1,opt,name=addTime" json:"addTime,omitempty"` - AddSource string `protobuf:"bytes,2,opt,name=addSource" json:"addSource,omitempty"` - AddWording string `protobuf:"bytes,3,opt,name=addWording" json:"addWording,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AddTime int64 `protobuf:"varint,1,opt,name=addTime,proto3" json:"addTime,omitempty"` + AddSource string `protobuf:"bytes,2,opt,name=addSource,proto3" json:"addSource,omitempty"` + AddWording string `protobuf:"bytes,3,opt,name=addWording,proto3" json:"addWording,omitempty"` } -func (m *FriendApplication) Reset() { *m = FriendApplication{} } -func (m *FriendApplication) String() string { return proto.CompactTextString(m) } -func (*FriendApplication) ProtoMessage() {} +func (x *FriendApplication) Reset() { + *x = FriendApplication{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FriendApplication) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FriendApplication) ProtoMessage() {} + +func (x *FriendApplication) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FriendApplication.ProtoReflect.Descriptor instead. func (*FriendApplication) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{42} -} -func (m *FriendApplication) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendApplication.Unmarshal(m, b) -} -func (m *FriendApplication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendApplication.Marshal(b, m, deterministic) -} -func (dst *FriendApplication) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendApplication.Merge(dst, src) -} -func (m *FriendApplication) XXX_Size() int { - return xxx_messageInfo_FriendApplication.Size(m) -} -func (m *FriendApplication) XXX_DiscardUnknown() { - xxx_messageInfo_FriendApplication.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{42} } -var xxx_messageInfo_FriendApplication proto.InternalMessageInfo - -func (m *FriendApplication) GetAddTime() int64 { - if m != nil { - return m.AddTime +func (x *FriendApplication) GetAddTime() int64 { + if x != nil { + return x.AddTime } return 0 } -func (m *FriendApplication) GetAddSource() string { - if m != nil { - return m.AddSource +func (x *FriendApplication) GetAddSource() string { + if x != nil { + return x.AddSource } return "" } -func (m *FriendApplication) GetAddWording() string { - if m != nil { - return m.AddWording +func (x *FriendApplication) GetAddWording() string { + if x != nil { + return x.AddWording } return "" } type FromToUserID struct { - FromUserID string `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"` - ToUserID string `protobuf:"bytes,2,opt,name=toUserID" json:"toUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromUserID string `protobuf:"bytes,1,opt,name=fromUserID,proto3" json:"fromUserID,omitempty"` + ToUserID string `protobuf:"bytes,2,opt,name=toUserID,proto3" json:"toUserID,omitempty"` } -func (m *FromToUserID) Reset() { *m = FromToUserID{} } -func (m *FromToUserID) String() string { return proto.CompactTextString(m) } -func (*FromToUserID) ProtoMessage() {} +func (x *FromToUserID) Reset() { + *x = FromToUserID{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FromToUserID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FromToUserID) ProtoMessage() {} + +func (x *FromToUserID) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FromToUserID.ProtoReflect.Descriptor instead. func (*FromToUserID) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{43} -} -func (m *FromToUserID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FromToUserID.Unmarshal(m, b) -} -func (m *FromToUserID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FromToUserID.Marshal(b, m, deterministic) -} -func (dst *FromToUserID) XXX_Merge(src proto.Message) { - xxx_messageInfo_FromToUserID.Merge(dst, src) -} -func (m *FromToUserID) XXX_Size() int { - return xxx_messageInfo_FromToUserID.Size(m) -} -func (m *FromToUserID) XXX_DiscardUnknown() { - xxx_messageInfo_FromToUserID.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{43} } -var xxx_messageInfo_FromToUserID proto.InternalMessageInfo - -func (m *FromToUserID) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *FromToUserID) GetFromUserID() string { + if x != nil { + return x.FromUserID } return "" } -func (m *FromToUserID) GetToUserID() string { - if m != nil { - return m.ToUserID +func (x *FromToUserID) GetToUserID() string { + if x != nil { + return x.ToUserID } return "" } -// FromUserID apply to add ToUserID +//FromUserID apply to add ToUserID type FriendApplicationTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` } -func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } -func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } -func (*FriendApplicationTips) ProtoMessage() {} +func (x *FriendApplicationTips) Reset() { + *x = FriendApplicationTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FriendApplicationTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FriendApplicationTips) ProtoMessage() {} + +func (x *FriendApplicationTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FriendApplicationTips.ProtoReflect.Descriptor instead. func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{44} -} -func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) -} -func (m *FriendApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendApplicationTips.Marshal(b, m, deterministic) -} -func (dst *FriendApplicationTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendApplicationTips.Merge(dst, src) -} -func (m *FriendApplicationTips) XXX_Size() int { - return xxx_messageInfo_FriendApplicationTips.Size(m) -} -func (m *FriendApplicationTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendApplicationTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{44} } -var xxx_messageInfo_FriendApplicationTips proto.InternalMessageInfo - -func (m *FriendApplicationTips) GetFromToUserID() *FromToUserID { - if m != nil { - return m.FromToUserID +func (x *FriendApplicationTips) GetFromToUserID() *FromToUserID { + if x != nil { + return x.FromToUserID } return nil } -// FromUserID accept or reject ToUserID +//FromUserID accept or reject ToUserID type FriendApplicationApprovedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` - HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg" json:"handleMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` + HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` } -func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplicationApprovedTips{} } -func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } -func (*FriendApplicationApprovedTips) ProtoMessage() {} +func (x *FriendApplicationApprovedTips) Reset() { + *x = FriendApplicationApprovedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FriendApplicationApprovedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FriendApplicationApprovedTips) ProtoMessage() {} + +func (x *FriendApplicationApprovedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FriendApplicationApprovedTips.ProtoReflect.Descriptor instead. func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{45} -} -func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) -} -func (m *FriendApplicationApprovedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendApplicationApprovedTips.Marshal(b, m, deterministic) -} -func (dst *FriendApplicationApprovedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendApplicationApprovedTips.Merge(dst, src) -} -func (m *FriendApplicationApprovedTips) XXX_Size() int { - return xxx_messageInfo_FriendApplicationApprovedTips.Size(m) -} -func (m *FriendApplicationApprovedTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendApplicationApprovedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{45} } -var xxx_messageInfo_FriendApplicationApprovedTips proto.InternalMessageInfo - -func (m *FriendApplicationApprovedTips) GetFromToUserID() *FromToUserID { - if m != nil { - return m.FromToUserID +func (x *FriendApplicationApprovedTips) GetFromToUserID() *FromToUserID { + if x != nil { + return x.FromToUserID } return nil } -func (m *FriendApplicationApprovedTips) GetHandleMsg() string { - if m != nil { - return m.HandleMsg +func (x *FriendApplicationApprovedTips) GetHandleMsg() string { + if x != nil { + return x.HandleMsg } return "" } -// FromUserID accept or reject ToUserID +//FromUserID accept or reject ToUserID type FriendApplicationRejectedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` - HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg" json:"handleMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` + HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` } -func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplicationRejectedTips{} } -func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } -func (*FriendApplicationRejectedTips) ProtoMessage() {} +func (x *FriendApplicationRejectedTips) Reset() { + *x = FriendApplicationRejectedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FriendApplicationRejectedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FriendApplicationRejectedTips) ProtoMessage() {} + +func (x *FriendApplicationRejectedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FriendApplicationRejectedTips.ProtoReflect.Descriptor instead. func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{46} -} -func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) -} -func (m *FriendApplicationRejectedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendApplicationRejectedTips.Marshal(b, m, deterministic) -} -func (dst *FriendApplicationRejectedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendApplicationRejectedTips.Merge(dst, src) -} -func (m *FriendApplicationRejectedTips) XXX_Size() int { - return xxx_messageInfo_FriendApplicationRejectedTips.Size(m) -} -func (m *FriendApplicationRejectedTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendApplicationRejectedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{46} } -var xxx_messageInfo_FriendApplicationRejectedTips proto.InternalMessageInfo - -func (m *FriendApplicationRejectedTips) GetFromToUserID() *FromToUserID { - if m != nil { - return m.FromToUserID +func (x *FriendApplicationRejectedTips) GetFromToUserID() *FromToUserID { + if x != nil { + return x.FromToUserID } return nil } -func (m *FriendApplicationRejectedTips) GetHandleMsg() string { - if m != nil { - return m.HandleMsg +func (x *FriendApplicationRejectedTips) GetHandleMsg() string { + if x != nil { + return x.HandleMsg } return "" } // FromUserID Added a friend ToUserID type FriendAddedTips struct { - Friend *FriendInfo `protobuf:"bytes,1,opt,name=friend" json:"friend,omitempty"` - OperationTime int64 `protobuf:"varint,2,opt,name=operationTime" json:"operationTime,omitempty"` - OpUser *PublicUserInfo `protobuf:"bytes,3,opt,name=opUser" json:"opUser,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Friend *FriendInfo `protobuf:"bytes,1,opt,name=friend,proto3" json:"friend,omitempty"` + OperationTime int64 `protobuf:"varint,2,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + OpUser *PublicUserInfo `protobuf:"bytes,3,opt,name=opUser,proto3" json:"opUser,omitempty"` //who do this } -func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } -func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } -func (*FriendAddedTips) ProtoMessage() {} +func (x *FriendAddedTips) Reset() { + *x = FriendAddedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FriendAddedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FriendAddedTips) ProtoMessage() {} + +func (x *FriendAddedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[47] + 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 FriendAddedTips.ProtoReflect.Descriptor instead. func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{47} -} -func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) -} -func (m *FriendAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendAddedTips.Marshal(b, m, deterministic) -} -func (dst *FriendAddedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendAddedTips.Merge(dst, src) -} -func (m *FriendAddedTips) XXX_Size() int { - return xxx_messageInfo_FriendAddedTips.Size(m) -} -func (m *FriendAddedTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendAddedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{47} } -var xxx_messageInfo_FriendAddedTips proto.InternalMessageInfo - -func (m *FriendAddedTips) GetFriend() *FriendInfo { - if m != nil { - return m.Friend +func (x *FriendAddedTips) GetFriend() *FriendInfo { + if x != nil { + return x.Friend } return nil } -func (m *FriendAddedTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *FriendAddedTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } -func (m *FriendAddedTips) GetOpUser() *PublicUserInfo { - if m != nil { - return m.OpUser +func (x *FriendAddedTips) GetOpUser() *PublicUserInfo { + if x != nil { + return x.OpUser } return nil } // FromUserID deleted a friend ToUserID type FriendDeletedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` } -func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } -func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } -func (*FriendDeletedTips) ProtoMessage() {} +func (x *FriendDeletedTips) Reset() { + *x = FriendDeletedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FriendDeletedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FriendDeletedTips) ProtoMessage() {} + +func (x *FriendDeletedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[48] + 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 FriendDeletedTips.ProtoReflect.Descriptor instead. func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{48} -} -func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) -} -func (m *FriendDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendDeletedTips.Marshal(b, m, deterministic) -} -func (dst *FriendDeletedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendDeletedTips.Merge(dst, src) -} -func (m *FriendDeletedTips) XXX_Size() int { - return xxx_messageInfo_FriendDeletedTips.Size(m) -} -func (m *FriendDeletedTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendDeletedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{48} } -var xxx_messageInfo_FriendDeletedTips proto.InternalMessageInfo - -func (m *FriendDeletedTips) GetFromToUserID() *FromToUserID { - if m != nil { - return m.FromToUserID +func (x *FriendDeletedTips) GetFromToUserID() *FromToUserID { + if x != nil { + return x.FromToUserID } return nil } type BlackAddedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` } -func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } -func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } -func (*BlackAddedTips) ProtoMessage() {} +func (x *BlackAddedTips) Reset() { + *x = BlackAddedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlackAddedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlackAddedTips) ProtoMessage() {} + +func (x *BlackAddedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[49] + 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 BlackAddedTips.ProtoReflect.Descriptor instead. func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{49} -} -func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) -} -func (m *BlackAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BlackAddedTips.Marshal(b, m, deterministic) -} -func (dst *BlackAddedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_BlackAddedTips.Merge(dst, src) -} -func (m *BlackAddedTips) XXX_Size() int { - return xxx_messageInfo_BlackAddedTips.Size(m) -} -func (m *BlackAddedTips) XXX_DiscardUnknown() { - xxx_messageInfo_BlackAddedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{49} } -var xxx_messageInfo_BlackAddedTips proto.InternalMessageInfo - -func (m *BlackAddedTips) GetFromToUserID() *FromToUserID { - if m != nil { - return m.FromToUserID +func (x *BlackAddedTips) GetFromToUserID() *FromToUserID { + if x != nil { + return x.FromToUserID } return nil } type BlackDeletedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` } -func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } -func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } -func (*BlackDeletedTips) ProtoMessage() {} +func (x *BlackDeletedTips) Reset() { + *x = BlackDeletedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlackDeletedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlackDeletedTips) ProtoMessage() {} + +func (x *BlackDeletedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[50] + 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 BlackDeletedTips.ProtoReflect.Descriptor instead. func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{50} -} -func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) -} -func (m *BlackDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BlackDeletedTips.Marshal(b, m, deterministic) -} -func (dst *BlackDeletedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_BlackDeletedTips.Merge(dst, src) -} -func (m *BlackDeletedTips) XXX_Size() int { - return xxx_messageInfo_BlackDeletedTips.Size(m) -} -func (m *BlackDeletedTips) XXX_DiscardUnknown() { - xxx_messageInfo_BlackDeletedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{50} } -var xxx_messageInfo_BlackDeletedTips proto.InternalMessageInfo - -func (m *BlackDeletedTips) GetFromToUserID() *FromToUserID { - if m != nil { - return m.FromToUserID +func (x *BlackDeletedTips) GetFromToUserID() *FromToUserID { + if x != nil { + return x.FromToUserID } return nil } type FriendInfoChangedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` } -func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } -func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } -func (*FriendInfoChangedTips) ProtoMessage() {} +func (x *FriendInfoChangedTips) Reset() { + *x = FriendInfoChangedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FriendInfoChangedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FriendInfoChangedTips) ProtoMessage() {} + +func (x *FriendInfoChangedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[51] + 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 FriendInfoChangedTips.ProtoReflect.Descriptor instead. func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{51} -} -func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) -} -func (m *FriendInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendInfoChangedTips.Marshal(b, m, deterministic) -} -func (dst *FriendInfoChangedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendInfoChangedTips.Merge(dst, src) -} -func (m *FriendInfoChangedTips) XXX_Size() int { - return xxx_messageInfo_FriendInfoChangedTips.Size(m) -} -func (m *FriendInfoChangedTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendInfoChangedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{51} } -var xxx_messageInfo_FriendInfoChangedTips proto.InternalMessageInfo - -func (m *FriendInfoChangedTips) GetFromToUserID() *FromToUserID { - if m != nil { - return m.FromToUserID +func (x *FriendInfoChangedTips) GetFromToUserID() *FromToUserID { + if x != nil { + return x.FromToUserID } return nil } -// ////////////////////user///////////////////// +//////////////////////user///////////////////// type UserInfoUpdatedTips struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` } -func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } -func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } -func (*UserInfoUpdatedTips) ProtoMessage() {} +func (x *UserInfoUpdatedTips) Reset() { + *x = UserInfoUpdatedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserInfoUpdatedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserInfoUpdatedTips) ProtoMessage() {} + +func (x *UserInfoUpdatedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[52] + 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 UserInfoUpdatedTips.ProtoReflect.Descriptor instead. func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{52} -} -func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) -} -func (m *UserInfoUpdatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserInfoUpdatedTips.Marshal(b, m, deterministic) -} -func (dst *UserInfoUpdatedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserInfoUpdatedTips.Merge(dst, src) -} -func (m *UserInfoUpdatedTips) XXX_Size() int { - return xxx_messageInfo_UserInfoUpdatedTips.Size(m) -} -func (m *UserInfoUpdatedTips) XXX_DiscardUnknown() { - xxx_messageInfo_UserInfoUpdatedTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{52} } -var xxx_messageInfo_UserInfoUpdatedTips proto.InternalMessageInfo - -func (m *UserInfoUpdatedTips) GetUserID() string { - if m != nil { - return m.UserID +func (x *UserInfoUpdatedTips) GetUserID() string { + if x != nil { + return x.UserID } return "" } -// ////////////////////conversation///////////////////// +//////////////////////conversation///////////////////// type ConversationUpdateTips struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - ConversationIDList []string `protobuf:"bytes,2,rep,name=conversationIDList" json:"conversationIDList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` + ConversationIDList []string `protobuf:"bytes,2,rep,name=conversationIDList,proto3" json:"conversationIDList,omitempty"` } -func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} } -func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } -func (*ConversationUpdateTips) ProtoMessage() {} +func (x *ConversationUpdateTips) Reset() { + *x = ConversationUpdateTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConversationUpdateTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConversationUpdateTips) ProtoMessage() {} + +func (x *ConversationUpdateTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[53] + 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 ConversationUpdateTips.ProtoReflect.Descriptor instead. func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{53} -} -func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) -} -func (m *ConversationUpdateTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ConversationUpdateTips.Marshal(b, m, deterministic) -} -func (dst *ConversationUpdateTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_ConversationUpdateTips.Merge(dst, src) -} -func (m *ConversationUpdateTips) XXX_Size() int { - return xxx_messageInfo_ConversationUpdateTips.Size(m) -} -func (m *ConversationUpdateTips) XXX_DiscardUnknown() { - xxx_messageInfo_ConversationUpdateTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{53} } -var xxx_messageInfo_ConversationUpdateTips proto.InternalMessageInfo - -func (m *ConversationUpdateTips) GetUserID() string { - if m != nil { - return m.UserID +func (x *ConversationUpdateTips) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *ConversationUpdateTips) GetConversationIDList() []string { - if m != nil { - return m.ConversationIDList +func (x *ConversationUpdateTips) GetConversationIDList() []string { + if x != nil { + return x.ConversationIDList } return nil } type ConversationSetPrivateTips struct { - RecvID string `protobuf:"bytes,1,opt,name=recvID" json:"recvID,omitempty"` - SendID string `protobuf:"bytes,2,opt,name=sendID" json:"sendID,omitempty"` - IsPrivate bool `protobuf:"varint,3,opt,name=isPrivate" json:"isPrivate,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RecvID string `protobuf:"bytes,1,opt,name=recvID,proto3" json:"recvID,omitempty"` + SendID string `protobuf:"bytes,2,opt,name=sendID,proto3" json:"sendID,omitempty"` + IsPrivate bool `protobuf:"varint,3,opt,name=isPrivate,proto3" json:"isPrivate,omitempty"` } -func (m *ConversationSetPrivateTips) Reset() { *m = ConversationSetPrivateTips{} } -func (m *ConversationSetPrivateTips) String() string { return proto.CompactTextString(m) } -func (*ConversationSetPrivateTips) ProtoMessage() {} +func (x *ConversationSetPrivateTips) Reset() { + *x = ConversationSetPrivateTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConversationSetPrivateTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConversationSetPrivateTips) ProtoMessage() {} + +func (x *ConversationSetPrivateTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[54] + 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 ConversationSetPrivateTips.ProtoReflect.Descriptor instead. func (*ConversationSetPrivateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{54} -} -func (m *ConversationSetPrivateTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ConversationSetPrivateTips.Unmarshal(m, b) -} -func (m *ConversationSetPrivateTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ConversationSetPrivateTips.Marshal(b, m, deterministic) -} -func (dst *ConversationSetPrivateTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_ConversationSetPrivateTips.Merge(dst, src) -} -func (m *ConversationSetPrivateTips) XXX_Size() int { - return xxx_messageInfo_ConversationSetPrivateTips.Size(m) -} -func (m *ConversationSetPrivateTips) XXX_DiscardUnknown() { - xxx_messageInfo_ConversationSetPrivateTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{54} } -var xxx_messageInfo_ConversationSetPrivateTips proto.InternalMessageInfo - -func (m *ConversationSetPrivateTips) GetRecvID() string { - if m != nil { - return m.RecvID +func (x *ConversationSetPrivateTips) GetRecvID() string { + if x != nil { + return x.RecvID } return "" } -func (m *ConversationSetPrivateTips) GetSendID() string { - if m != nil { - return m.SendID +func (x *ConversationSetPrivateTips) GetSendID() string { + if x != nil { + return x.SendID } return "" } -func (m *ConversationSetPrivateTips) GetIsPrivate() bool { - if m != nil { - return m.IsPrivate +func (x *ConversationSetPrivateTips) GetIsPrivate() bool { + if x != nil { + return x.IsPrivate } return false } -// //////////////////message/////////////////////// +////////////////////message/////////////////////// type DeleteMessageTips struct { - OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` - SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"` + SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList,proto3" json:"seqList,omitempty"` } -func (m *DeleteMessageTips) Reset() { *m = DeleteMessageTips{} } -func (m *DeleteMessageTips) String() string { return proto.CompactTextString(m) } -func (*DeleteMessageTips) ProtoMessage() {} +func (x *DeleteMessageTips) Reset() { + *x = DeleteMessageTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteMessageTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteMessageTips) ProtoMessage() {} + +func (x *DeleteMessageTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[55] + 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 DeleteMessageTips.ProtoReflect.Descriptor instead. func (*DeleteMessageTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{55} -} -func (m *DeleteMessageTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteMessageTips.Unmarshal(m, b) -} -func (m *DeleteMessageTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteMessageTips.Marshal(b, m, deterministic) -} -func (dst *DeleteMessageTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteMessageTips.Merge(dst, src) -} -func (m *DeleteMessageTips) XXX_Size() int { - return xxx_messageInfo_DeleteMessageTips.Size(m) -} -func (m *DeleteMessageTips) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteMessageTips.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{55} } -var xxx_messageInfo_DeleteMessageTips proto.InternalMessageInfo - -func (m *DeleteMessageTips) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *DeleteMessageTips) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *DeleteMessageTips) GetUserID() string { - if m != nil { - return m.UserID +func (x *DeleteMessageTips) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *DeleteMessageTips) GetSeqList() []uint32 { - if m != nil { - return m.SeqList +func (x *DeleteMessageTips) GetSeqList() []uint32 { + if x != nil { + return x.SeqList } return nil } -// /cms +///cms type RequestPagination struct { - PageNumber int32 `protobuf:"varint,1,opt,name=pageNumber" json:"pageNumber,omitempty"` - ShowNumber int32 `protobuf:"varint,2,opt,name=showNumber" json:"showNumber,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PageNumber int32 `protobuf:"varint,1,opt,name=pageNumber,proto3" json:"pageNumber,omitempty"` + ShowNumber int32 `protobuf:"varint,2,opt,name=showNumber,proto3" json:"showNumber,omitempty"` } -func (m *RequestPagination) Reset() { *m = RequestPagination{} } -func (m *RequestPagination) String() string { return proto.CompactTextString(m) } -func (*RequestPagination) ProtoMessage() {} +func (x *RequestPagination) Reset() { + *x = RequestPagination{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RequestPagination) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequestPagination) ProtoMessage() {} + +func (x *RequestPagination) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[56] + 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 RequestPagination.ProtoReflect.Descriptor instead. func (*RequestPagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{56} -} -func (m *RequestPagination) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RequestPagination.Unmarshal(m, b) -} -func (m *RequestPagination) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RequestPagination.Marshal(b, m, deterministic) -} -func (dst *RequestPagination) XXX_Merge(src proto.Message) { - xxx_messageInfo_RequestPagination.Merge(dst, src) -} -func (m *RequestPagination) XXX_Size() int { - return xxx_messageInfo_RequestPagination.Size(m) -} -func (m *RequestPagination) XXX_DiscardUnknown() { - xxx_messageInfo_RequestPagination.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{56} } -var xxx_messageInfo_RequestPagination proto.InternalMessageInfo - -func (m *RequestPagination) GetPageNumber() int32 { - if m != nil { - return m.PageNumber +func (x *RequestPagination) GetPageNumber() int32 { + if x != nil { + return x.PageNumber } return 0 } -func (m *RequestPagination) GetShowNumber() int32 { - if m != nil { - return m.ShowNumber +func (x *RequestPagination) GetShowNumber() int32 { + if x != nil { + return x.ShowNumber } return 0 } type ResponsePagination struct { - CurrentPage int32 `protobuf:"varint,5,opt,name=CurrentPage" json:"CurrentPage,omitempty"` - ShowNumber int32 `protobuf:"varint,6,opt,name=ShowNumber" json:"ShowNumber,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CurrentPage int32 `protobuf:"varint,5,opt,name=CurrentPage,proto3" json:"CurrentPage,omitempty"` + ShowNumber int32 `protobuf:"varint,6,opt,name=ShowNumber,proto3" json:"ShowNumber,omitempty"` } -func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } -func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } -func (*ResponsePagination) ProtoMessage() {} +func (x *ResponsePagination) Reset() { + *x = ResponsePagination{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResponsePagination) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResponsePagination) ProtoMessage() {} + +func (x *ResponsePagination) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[57] + 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 ResponsePagination.ProtoReflect.Descriptor instead. func (*ResponsePagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{57} -} -func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) -} -func (m *ResponsePagination) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ResponsePagination.Marshal(b, m, deterministic) -} -func (dst *ResponsePagination) XXX_Merge(src proto.Message) { - xxx_messageInfo_ResponsePagination.Merge(dst, src) -} -func (m *ResponsePagination) XXX_Size() int { - return xxx_messageInfo_ResponsePagination.Size(m) -} -func (m *ResponsePagination) XXX_DiscardUnknown() { - xxx_messageInfo_ResponsePagination.DiscardUnknown(m) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{57} } -var xxx_messageInfo_ResponsePagination proto.InternalMessageInfo - -func (m *ResponsePagination) GetCurrentPage() int32 { - if m != nil { - return m.CurrentPage +func (x *ResponsePagination) GetCurrentPage() int32 { + if x != nil { + return x.CurrentPage } return 0 } -func (m *ResponsePagination) GetShowNumber() int32 { - if m != nil { - return m.ShowNumber +func (x *ResponsePagination) GetShowNumber() int32 { + if x != nil { + return x.ShowNumber } return 0 } -// /////////////////signal////////////// +///////////////////signal////////////// type SignalReq struct { - // Types that are valid to be assigned to Payload: + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Payload: // *SignalReq_Invite // *SignalReq_InviteInGroup // *SignalReq_Cancel // *SignalReq_Accept // *SignalReq_HungUp // *SignalReq_Reject - Payload isSignalReq_Payload `protobuf_oneof:"payload"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Payload isSignalReq_Payload `protobuf_oneof:"payload"` } -func (m *SignalReq) Reset() { *m = SignalReq{} } -func (m *SignalReq) String() string { return proto.CompactTextString(m) } -func (*SignalReq) ProtoMessage() {} +func (x *SignalReq) Reset() { + *x = SignalReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignalReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignalReq) ProtoMessage() {} + +func (x *SignalReq) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[58] + 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 SignalReq.ProtoReflect.Descriptor instead. func (*SignalReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{58} + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{58} } -func (m *SignalReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignalReq.Unmarshal(m, b) -} -func (m *SignalReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignalReq.Marshal(b, m, deterministic) -} -func (dst *SignalReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignalReq.Merge(dst, src) -} -func (m *SignalReq) XXX_Size() int { - return xxx_messageInfo_SignalReq.Size(m) -} -func (m *SignalReq) XXX_DiscardUnknown() { - xxx_messageInfo_SignalReq.DiscardUnknown(m) -} - -var xxx_messageInfo_SignalReq proto.InternalMessageInfo - -type isSignalReq_Payload interface { - isSignalReq_Payload() -} - -type SignalReq_Invite struct { - Invite *SignalInviteReq `protobuf:"bytes,1,opt,name=invite,oneof"` -} -type SignalReq_InviteInGroup struct { - InviteInGroup *SignalInviteInGroupReq `protobuf:"bytes,2,opt,name=inviteInGroup,oneof"` -} -type SignalReq_Cancel struct { - Cancel *SignalCancelReq `protobuf:"bytes,3,opt,name=cancel,oneof"` -} -type SignalReq_Accept struct { - Accept *SignalAcceptReq `protobuf:"bytes,4,opt,name=accept,oneof"` -} -type SignalReq_HungUp struct { - HungUp *SignalHungUpReq `protobuf:"bytes,5,opt,name=hungUp,oneof"` -} -type SignalReq_Reject struct { - Reject *SignalRejectReq `protobuf:"bytes,6,opt,name=reject,oneof"` -} - -func (*SignalReq_Invite) isSignalReq_Payload() {} -func (*SignalReq_InviteInGroup) isSignalReq_Payload() {} -func (*SignalReq_Cancel) isSignalReq_Payload() {} -func (*SignalReq_Accept) isSignalReq_Payload() {} -func (*SignalReq_HungUp) isSignalReq_Payload() {} -func (*SignalReq_Reject) isSignalReq_Payload() {} func (m *SignalReq) GetPayload() isSignalReq_Payload { if m != nil { @@ -3992,265 +4535,134 @@ func (m *SignalReq) GetPayload() isSignalReq_Payload { return nil } -func (m *SignalReq) GetInvite() *SignalInviteReq { - if x, ok := m.GetPayload().(*SignalReq_Invite); ok { +func (x *SignalReq) GetInvite() *SignalInviteReq { + if x, ok := x.GetPayload().(*SignalReq_Invite); ok { return x.Invite } return nil } -func (m *SignalReq) GetInviteInGroup() *SignalInviteInGroupReq { - if x, ok := m.GetPayload().(*SignalReq_InviteInGroup); ok { +func (x *SignalReq) GetInviteInGroup() *SignalInviteInGroupReq { + if x, ok := x.GetPayload().(*SignalReq_InviteInGroup); ok { return x.InviteInGroup } return nil } -func (m *SignalReq) GetCancel() *SignalCancelReq { - if x, ok := m.GetPayload().(*SignalReq_Cancel); ok { +func (x *SignalReq) GetCancel() *SignalCancelReq { + if x, ok := x.GetPayload().(*SignalReq_Cancel); ok { return x.Cancel } return nil } -func (m *SignalReq) GetAccept() *SignalAcceptReq { - if x, ok := m.GetPayload().(*SignalReq_Accept); ok { +func (x *SignalReq) GetAccept() *SignalAcceptReq { + if x, ok := x.GetPayload().(*SignalReq_Accept); ok { return x.Accept } return nil } -func (m *SignalReq) GetHungUp() *SignalHungUpReq { - if x, ok := m.GetPayload().(*SignalReq_HungUp); ok { +func (x *SignalReq) GetHungUp() *SignalHungUpReq { + if x, ok := x.GetPayload().(*SignalReq_HungUp); ok { return x.HungUp } return nil } -func (m *SignalReq) GetReject() *SignalRejectReq { - if x, ok := m.GetPayload().(*SignalReq_Reject); ok { +func (x *SignalReq) GetReject() *SignalRejectReq { + if x, ok := x.GetPayload().(*SignalReq_Reject); ok { return x.Reject } return nil } -// XXX_OneofFuncs is for the internal use of the proto package. -func (*SignalReq) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _SignalReq_OneofMarshaler, _SignalReq_OneofUnmarshaler, _SignalReq_OneofSizer, []interface{}{ - (*SignalReq_Invite)(nil), - (*SignalReq_InviteInGroup)(nil), - (*SignalReq_Cancel)(nil), - (*SignalReq_Accept)(nil), - (*SignalReq_HungUp)(nil), - (*SignalReq_Reject)(nil), - } +type isSignalReq_Payload interface { + isSignalReq_Payload() } -func _SignalReq_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*SignalReq) - // payload - switch x := m.Payload.(type) { - case *SignalReq_Invite: - b.EncodeVarint(1<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Invite); err != nil { - return err - } - case *SignalReq_InviteInGroup: - b.EncodeVarint(2<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.InviteInGroup); err != nil { - return err - } - case *SignalReq_Cancel: - b.EncodeVarint(3<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Cancel); err != nil { - return err - } - case *SignalReq_Accept: - b.EncodeVarint(4<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Accept); err != nil { - return err - } - case *SignalReq_HungUp: - b.EncodeVarint(5<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.HungUp); err != nil { - return err - } - case *SignalReq_Reject: - b.EncodeVarint(6<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Reject); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("SignalReq.Payload has unexpected type %T", x) - } - return nil +type SignalReq_Invite struct { + Invite *SignalInviteReq `protobuf:"bytes,1,opt,name=invite,proto3,oneof"` } -func _SignalReq_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*SignalReq) - switch tag { - case 1: // payload.invite - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(SignalInviteReq) - err := b.DecodeMessage(msg) - m.Payload = &SignalReq_Invite{msg} - return true, err - case 2: // payload.inviteInGroup - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(SignalInviteInGroupReq) - err := b.DecodeMessage(msg) - m.Payload = &SignalReq_InviteInGroup{msg} - return true, err - case 3: // payload.cancel - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(SignalCancelReq) - err := b.DecodeMessage(msg) - m.Payload = &SignalReq_Cancel{msg} - return true, err - case 4: // payload.accept - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(SignalAcceptReq) - err := b.DecodeMessage(msg) - m.Payload = &SignalReq_Accept{msg} - return true, err - case 5: // payload.hungUp - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(SignalHungUpReq) - err := b.DecodeMessage(msg) - m.Payload = &SignalReq_HungUp{msg} - return true, err - case 6: // payload.reject - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(SignalRejectReq) - err := b.DecodeMessage(msg) - m.Payload = &SignalReq_Reject{msg} - return true, err - default: - return false, nil - } +type SignalReq_InviteInGroup struct { + InviteInGroup *SignalInviteInGroupReq `protobuf:"bytes,2,opt,name=inviteInGroup,proto3,oneof"` } -func _SignalReq_OneofSizer(msg proto.Message) (n int) { - m := msg.(*SignalReq) - // payload - switch x := m.Payload.(type) { - case *SignalReq_Invite: - s := proto.Size(x.Invite) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *SignalReq_InviteInGroup: - s := proto.Size(x.InviteInGroup) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *SignalReq_Cancel: - s := proto.Size(x.Cancel) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *SignalReq_Accept: - s := proto.Size(x.Accept) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *SignalReq_HungUp: - s := proto.Size(x.HungUp) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *SignalReq_Reject: - s := proto.Size(x.Reject) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n +type SignalReq_Cancel struct { + Cancel *SignalCancelReq `protobuf:"bytes,3,opt,name=cancel,proto3,oneof"` } +type SignalReq_Accept struct { + Accept *SignalAcceptReq `protobuf:"bytes,4,opt,name=accept,proto3,oneof"` +} + +type SignalReq_HungUp struct { + HungUp *SignalHungUpReq `protobuf:"bytes,5,opt,name=hungUp,proto3,oneof"` +} + +type SignalReq_Reject struct { + Reject *SignalRejectReq `protobuf:"bytes,6,opt,name=reject,proto3,oneof"` +} + +func (*SignalReq_Invite) isSignalReq_Payload() {} + +func (*SignalReq_InviteInGroup) isSignalReq_Payload() {} + +func (*SignalReq_Cancel) isSignalReq_Payload() {} + +func (*SignalReq_Accept) isSignalReq_Payload() {} + +func (*SignalReq_HungUp) isSignalReq_Payload() {} + +func (*SignalReq_Reject) isSignalReq_Payload() {} + type SignalResp struct { - // Types that are valid to be assigned to Payload: + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Payload: // *SignalResp_Invite // *SignalResp_InviteInGroup // *SignalResp_Cancel // *SignalResp_Accept // *SignalResp_HungUp // *SignalResp_Reject - Payload isSignalResp_Payload `protobuf_oneof:"payload"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Payload isSignalResp_Payload `protobuf_oneof:"payload"` } -func (m *SignalResp) Reset() { *m = SignalResp{} } -func (m *SignalResp) String() string { return proto.CompactTextString(m) } -func (*SignalResp) ProtoMessage() {} +func (x *SignalResp) Reset() { + *x = SignalResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignalResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignalResp) ProtoMessage() {} + +func (x *SignalResp) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[59] + 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 SignalResp.ProtoReflect.Descriptor instead. func (*SignalResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{59} + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{59} } -func (m *SignalResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignalResp.Unmarshal(m, b) -} -func (m *SignalResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignalResp.Marshal(b, m, deterministic) -} -func (dst *SignalResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignalResp.Merge(dst, src) -} -func (m *SignalResp) XXX_Size() int { - return xxx_messageInfo_SignalResp.Size(m) -} -func (m *SignalResp) XXX_DiscardUnknown() { - xxx_messageInfo_SignalResp.DiscardUnknown(m) -} - -var xxx_messageInfo_SignalResp proto.InternalMessageInfo - -type isSignalResp_Payload interface { - isSignalResp_Payload() -} - -type SignalResp_Invite struct { - Invite *SignalInviteReply `protobuf:"bytes,1,opt,name=invite,oneof"` -} -type SignalResp_InviteInGroup struct { - InviteInGroup *SignalInviteInGroupReply `protobuf:"bytes,2,opt,name=inviteInGroup,oneof"` -} -type SignalResp_Cancel struct { - Cancel *SignalCancelReply `protobuf:"bytes,3,opt,name=cancel,oneof"` -} -type SignalResp_Accept struct { - Accept *SignalAcceptReply `protobuf:"bytes,4,opt,name=accept,oneof"` -} -type SignalResp_HungUp struct { - HungUp *SignalHungUpReply `protobuf:"bytes,5,opt,name=hungUp,oneof"` -} -type SignalResp_Reject struct { - Reject *SignalRejectReply `protobuf:"bytes,6,opt,name=reject,oneof"` -} - -func (*SignalResp_Invite) isSignalResp_Payload() {} -func (*SignalResp_InviteInGroup) isSignalResp_Payload() {} -func (*SignalResp_Cancel) isSignalResp_Payload() {} -func (*SignalResp_Accept) isSignalResp_Payload() {} -func (*SignalResp_HungUp) isSignalResp_Payload() {} -func (*SignalResp_Reject) isSignalResp_Payload() {} func (m *SignalResp) GetPayload() isSignalResp_Payload { if m != nil { @@ -4259,51 +4671,3271 @@ func (m *SignalResp) GetPayload() isSignalResp_Payload { return nil } -func (m *SignalResp) GetInvite() *SignalInviteReply { - if x, ok := m.GetPayload().(*SignalResp_Invite); ok { +func (x *SignalResp) GetInvite() *SignalInviteReply { + if x, ok := x.GetPayload().(*SignalResp_Invite); ok { return x.Invite } return nil } -func (m *SignalResp) GetInviteInGroup() *SignalInviteInGroupReply { - if x, ok := m.GetPayload().(*SignalResp_InviteInGroup); ok { +func (x *SignalResp) GetInviteInGroup() *SignalInviteInGroupReply { + if x, ok := x.GetPayload().(*SignalResp_InviteInGroup); ok { return x.InviteInGroup } return nil } -func (m *SignalResp) GetCancel() *SignalCancelReply { - if x, ok := m.GetPayload().(*SignalResp_Cancel); ok { +func (x *SignalResp) GetCancel() *SignalCancelReply { + if x, ok := x.GetPayload().(*SignalResp_Cancel); ok { return x.Cancel } return nil } -func (m *SignalResp) GetAccept() *SignalAcceptReply { - if x, ok := m.GetPayload().(*SignalResp_Accept); ok { +func (x *SignalResp) GetAccept() *SignalAcceptReply { + if x, ok := x.GetPayload().(*SignalResp_Accept); ok { return x.Accept } return nil } -func (m *SignalResp) GetHungUp() *SignalHungUpReply { - if x, ok := m.GetPayload().(*SignalResp_HungUp); ok { +func (x *SignalResp) GetHungUp() *SignalHungUpReply { + if x, ok := x.GetPayload().(*SignalResp_HungUp); ok { return x.HungUp } return nil } -func (m *SignalResp) GetReject() *SignalRejectReply { - if x, ok := m.GetPayload().(*SignalResp_Reject); ok { +func (x *SignalResp) GetReject() *SignalRejectReply { + if x, ok := x.GetPayload().(*SignalResp_Reject); ok { return x.Reject } return nil } -// XXX_OneofFuncs is for the internal use of the proto package. -func (*SignalResp) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _SignalResp_OneofMarshaler, _SignalResp_OneofUnmarshaler, _SignalResp_OneofSizer, []interface{}{ +type isSignalResp_Payload interface { + isSignalResp_Payload() +} + +type SignalResp_Invite struct { + Invite *SignalInviteReply `protobuf:"bytes,1,opt,name=invite,proto3,oneof"` +} + +type SignalResp_InviteInGroup struct { + InviteInGroup *SignalInviteInGroupReply `protobuf:"bytes,2,opt,name=inviteInGroup,proto3,oneof"` +} + +type SignalResp_Cancel struct { + Cancel *SignalCancelReply `protobuf:"bytes,3,opt,name=cancel,proto3,oneof"` +} + +type SignalResp_Accept struct { + Accept *SignalAcceptReply `protobuf:"bytes,4,opt,name=accept,proto3,oneof"` +} + +type SignalResp_HungUp struct { + HungUp *SignalHungUpReply `protobuf:"bytes,5,opt,name=hungUp,proto3,oneof"` +} + +type SignalResp_Reject struct { + Reject *SignalRejectReply `protobuf:"bytes,6,opt,name=reject,proto3,oneof"` +} + +func (*SignalResp_Invite) isSignalResp_Payload() {} + +func (*SignalResp_InviteInGroup) isSignalResp_Payload() {} + +func (*SignalResp_Cancel) isSignalResp_Payload() {} + +func (*SignalResp_Accept) isSignalResp_Payload() {} + +func (*SignalResp_HungUp) isSignalResp_Payload() {} + +func (*SignalResp_Reject) isSignalResp_Payload() {} + +type InvitationInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + InviterUserID string `protobuf:"bytes,1,opt,name=inviterUserID,proto3" json:"inviterUserID,omitempty"` + InviteeUserIDList []string `protobuf:"bytes,2,rep,name=inviteeUserIDList,proto3" json:"inviteeUserIDList,omitempty"` + CustomData string `protobuf:"bytes,3,opt,name=customData,proto3" json:"customData,omitempty"` + GroupID string `protobuf:"bytes,4,opt,name=groupID,proto3" json:"groupID,omitempty"` + RoomID string `protobuf:"bytes,5,opt,name=roomID,proto3" json:"roomID,omitempty"` + Timeout int32 `protobuf:"varint,6,opt,name=timeout,proto3" json:"timeout,omitempty"` + MediaType string `protobuf:"bytes,7,opt,name=mediaType,proto3" json:"mediaType,omitempty"` + PlatformID int32 `protobuf:"varint,8,opt,name=platformID,proto3" json:"platformID,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=sessionType,proto3" json:"sessionType,omitempty"` + InitiateTime int32 `protobuf:"varint,10,opt,name=initiateTime,proto3" json:"initiateTime,omitempty"` +} + +func (x *InvitationInfo) Reset() { + *x = InvitationInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InvitationInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InvitationInfo) ProtoMessage() {} + +func (x *InvitationInfo) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[60] + 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 InvitationInfo.ProtoReflect.Descriptor instead. +func (*InvitationInfo) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{60} +} + +func (x *InvitationInfo) GetInviterUserID() string { + if x != nil { + return x.InviterUserID + } + return "" +} + +func (x *InvitationInfo) GetInviteeUserIDList() []string { + if x != nil { + return x.InviteeUserIDList + } + return nil +} + +func (x *InvitationInfo) GetCustomData() string { + if x != nil { + return x.CustomData + } + return "" +} + +func (x *InvitationInfo) GetGroupID() string { + if x != nil { + return x.GroupID + } + return "" +} + +func (x *InvitationInfo) GetRoomID() string { + if x != nil { + return x.RoomID + } + return "" +} + +func (x *InvitationInfo) GetTimeout() int32 { + if x != nil { + return x.Timeout + } + return 0 +} + +func (x *InvitationInfo) GetMediaType() string { + if x != nil { + return x.MediaType + } + return "" +} + +func (x *InvitationInfo) GetPlatformID() int32 { + if x != nil { + return x.PlatformID + } + return 0 +} + +func (x *InvitationInfo) GetSessionType() int32 { + if x != nil { + return x.SessionType + } + return 0 +} + +func (x *InvitationInfo) GetInitiateTime() int32 { + if x != nil { + return x.InitiateTime + } + return 0 +} + +type ParticipantMetaData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupInfo *GroupInfo `protobuf:"bytes,1,opt,name=groupInfo,proto3" json:"groupInfo,omitempty"` + GroupMemberInfo *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=groupMemberInfo,proto3" json:"groupMemberInfo,omitempty"` + UserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=userInfo,proto3" json:"userInfo,omitempty"` +} + +func (x *ParticipantMetaData) Reset() { + *x = ParticipantMetaData{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParticipantMetaData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParticipantMetaData) ProtoMessage() {} + +func (x *ParticipantMetaData) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[61] + 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 ParticipantMetaData.ProtoReflect.Descriptor instead. +func (*ParticipantMetaData) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{61} +} + +func (x *ParticipantMetaData) GetGroupInfo() *GroupInfo { + if x != nil { + return x.GroupInfo + } + return nil +} + +func (x *ParticipantMetaData) GetGroupMemberInfo() *GroupMemberFullInfo { + if x != nil { + return x.GroupMemberInfo + } + return nil +} + +func (x *ParticipantMetaData) GetUserInfo() *PublicUserInfo { + if x != nil { + return x.UserInfo + } + return nil +} + +type SignalInviteReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` + Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"` +} + +func (x *SignalInviteReq) Reset() { + *x = SignalInviteReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignalInviteReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignalInviteReq) ProtoMessage() {} + +func (x *SignalInviteReq) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[62] + 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 SignalInviteReq.ProtoReflect.Descriptor instead. +func (*SignalInviteReq) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{62} +} + +func (x *SignalInviteReq) GetOpUserID() string { + if x != nil { + return x.OpUserID + } + return "" +} + +func (x *SignalInviteReq) GetInvitation() *InvitationInfo { + if x != nil { + return x.Invitation + } + return nil +} + +func (x *SignalInviteReq) GetOfflinePushInfo() *OfflinePushInfo { + if x != nil { + return x.OfflinePushInfo + } + return nil +} + +func (x *SignalInviteReq) GetParticipant() *ParticipantMetaData { + if x != nil { + return x.Participant + } + return nil +} + +type SignalInviteReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + RoomID string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"` + LiveURL string `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"` +} + +func (x *SignalInviteReply) Reset() { + *x = SignalInviteReply{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignalInviteReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignalInviteReply) ProtoMessage() {} + +func (x *SignalInviteReply) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[63] + 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 SignalInviteReply.ProtoReflect.Descriptor instead. +func (*SignalInviteReply) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{63} +} + +func (x *SignalInviteReply) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +func (x *SignalInviteReply) GetRoomID() string { + if x != nil { + return x.RoomID + } + return "" +} + +func (x *SignalInviteReply) GetLiveURL() string { + if x != nil { + return x.LiveURL + } + return "" +} + +type SignalInviteInGroupReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` + Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"` +} + +func (x *SignalInviteInGroupReq) Reset() { + *x = SignalInviteInGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignalInviteInGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignalInviteInGroupReq) ProtoMessage() {} + +func (x *SignalInviteInGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[64] + 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 SignalInviteInGroupReq.ProtoReflect.Descriptor instead. +func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{64} +} + +func (x *SignalInviteInGroupReq) GetOpUserID() string { + if x != nil { + return x.OpUserID + } + return "" +} + +func (x *SignalInviteInGroupReq) GetInvitation() *InvitationInfo { + if x != nil { + return x.Invitation + } + return nil +} + +func (x *SignalInviteInGroupReq) GetOfflinePushInfo() *OfflinePushInfo { + if x != nil { + return x.OfflinePushInfo + } + return nil +} + +func (x *SignalInviteInGroupReq) GetParticipant() *ParticipantMetaData { + if x != nil { + return x.Participant + } + return nil +} + +type SignalInviteInGroupReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + RoomID string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"` + LiveURL string `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"` +} + +func (x *SignalInviteInGroupReply) Reset() { + *x = SignalInviteInGroupReply{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignalInviteInGroupReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignalInviteInGroupReply) ProtoMessage() {} + +func (x *SignalInviteInGroupReply) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[65] + 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 SignalInviteInGroupReply.ProtoReflect.Descriptor instead. +func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{65} +} + +func (x *SignalInviteInGroupReply) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +func (x *SignalInviteInGroupReply) GetRoomID() string { + if x != nil { + return x.RoomID + } + return "" +} + +func (x *SignalInviteInGroupReply) GetLiveURL() string { + if x != nil { + return x.LiveURL + } + return "" +} + +type SignalCancelReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` + Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"` +} + +func (x *SignalCancelReq) Reset() { + *x = SignalCancelReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignalCancelReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignalCancelReq) ProtoMessage() {} + +func (x *SignalCancelReq) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[66] + 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 SignalCancelReq.ProtoReflect.Descriptor instead. +func (*SignalCancelReq) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{66} +} + +func (x *SignalCancelReq) GetOpUserID() string { + if x != nil { + return x.OpUserID + } + return "" +} + +func (x *SignalCancelReq) GetInvitation() *InvitationInfo { + if x != nil { + return x.Invitation + } + return nil +} + +func (x *SignalCancelReq) GetOfflinePushInfo() *OfflinePushInfo { + if x != nil { + return x.OfflinePushInfo + } + return nil +} + +func (x *SignalCancelReq) GetParticipant() *ParticipantMetaData { + if x != nil { + return x.Participant + } + return nil +} + +type SignalCancelReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SignalCancelReply) Reset() { + *x = SignalCancelReply{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignalCancelReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignalCancelReply) ProtoMessage() {} + +func (x *SignalCancelReply) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[67] + 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 SignalCancelReply.ProtoReflect.Descriptor instead. +func (*SignalCancelReply) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{67} +} + +type SignalAcceptReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` + Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"` + OpUserPlatformID int32 `protobuf:"varint,5,opt,name=opUserPlatformID,proto3" json:"opUserPlatformID,omitempty"` +} + +func (x *SignalAcceptReq) Reset() { + *x = SignalAcceptReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignalAcceptReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignalAcceptReq) ProtoMessage() {} + +func (x *SignalAcceptReq) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[68] + 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 SignalAcceptReq.ProtoReflect.Descriptor instead. +func (*SignalAcceptReq) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{68} +} + +func (x *SignalAcceptReq) GetOpUserID() string { + if x != nil { + return x.OpUserID + } + return "" +} + +func (x *SignalAcceptReq) GetInvitation() *InvitationInfo { + if x != nil { + return x.Invitation + } + return nil +} + +func (x *SignalAcceptReq) GetOfflinePushInfo() *OfflinePushInfo { + if x != nil { + return x.OfflinePushInfo + } + return nil +} + +func (x *SignalAcceptReq) GetParticipant() *ParticipantMetaData { + if x != nil { + return x.Participant + } + return nil +} + +func (x *SignalAcceptReq) GetOpUserPlatformID() int32 { + if x != nil { + return x.OpUserPlatformID + } + return 0 +} + +type SignalAcceptReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + RoomID string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"` + LiveURL string `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"` +} + +func (x *SignalAcceptReply) Reset() { + *x = SignalAcceptReply{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignalAcceptReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignalAcceptReply) ProtoMessage() {} + +func (x *SignalAcceptReply) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[69] + 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 SignalAcceptReply.ProtoReflect.Descriptor instead. +func (*SignalAcceptReply) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{69} +} + +func (x *SignalAcceptReply) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +func (x *SignalAcceptReply) GetRoomID() string { + if x != nil { + return x.RoomID + } + return "" +} + +func (x *SignalAcceptReply) GetLiveURL() string { + if x != nil { + return x.LiveURL + } + return "" +} + +type SignalHungUpReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` +} + +func (x *SignalHungUpReq) Reset() { + *x = SignalHungUpReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignalHungUpReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignalHungUpReq) ProtoMessage() {} + +func (x *SignalHungUpReq) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[70] + 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 SignalHungUpReq.ProtoReflect.Descriptor instead. +func (*SignalHungUpReq) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{70} +} + +func (x *SignalHungUpReq) GetOpUserID() string { + if x != nil { + return x.OpUserID + } + return "" +} + +func (x *SignalHungUpReq) GetInvitation() *InvitationInfo { + if x != nil { + return x.Invitation + } + return nil +} + +func (x *SignalHungUpReq) GetOfflinePushInfo() *OfflinePushInfo { + if x != nil { + return x.OfflinePushInfo + } + return nil +} + +type SignalHungUpReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SignalHungUpReply) Reset() { + *x = SignalHungUpReply{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignalHungUpReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignalHungUpReply) ProtoMessage() {} + +func (x *SignalHungUpReply) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[71] + 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 SignalHungUpReply.ProtoReflect.Descriptor instead. +func (*SignalHungUpReply) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{71} +} + +type SignalRejectReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` + Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"` + OpUserPlatformID int32 `protobuf:"varint,5,opt,name=opUserPlatformID,proto3" json:"opUserPlatformID,omitempty"` +} + +func (x *SignalRejectReq) Reset() { + *x = SignalRejectReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignalRejectReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignalRejectReq) ProtoMessage() {} + +func (x *SignalRejectReq) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[72] + 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 SignalRejectReq.ProtoReflect.Descriptor instead. +func (*SignalRejectReq) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{72} +} + +func (x *SignalRejectReq) GetOpUserID() string { + if x != nil { + return x.OpUserID + } + return "" +} + +func (x *SignalRejectReq) GetInvitation() *InvitationInfo { + if x != nil { + return x.Invitation + } + return nil +} + +func (x *SignalRejectReq) GetOfflinePushInfo() *OfflinePushInfo { + if x != nil { + return x.OfflinePushInfo + } + return nil +} + +func (x *SignalRejectReq) GetParticipant() *ParticipantMetaData { + if x != nil { + return x.Participant + } + return nil +} + +func (x *SignalRejectReq) GetOpUserPlatformID() int32 { + if x != nil { + return x.OpUserPlatformID + } + return 0 +} + +type SignalRejectReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SignalRejectReply) Reset() { + *x = SignalRejectReply{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignalRejectReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignalRejectReply) ProtoMessage() {} + +func (x *SignalRejectReply) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[73] + 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 SignalRejectReply.ProtoReflect.Descriptor instead. +func (*SignalRejectReply) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{73} +} + +type DelMsgListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"` + SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList,proto3" json:"seqList,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=operationID,proto3" json:"operationID,omitempty"` +} + +func (x *DelMsgListReq) Reset() { + *x = DelMsgListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelMsgListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelMsgListReq) ProtoMessage() {} + +func (x *DelMsgListReq) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[74] + 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 DelMsgListReq.ProtoReflect.Descriptor instead. +func (*DelMsgListReq) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{74} +} + +func (x *DelMsgListReq) GetOpUserID() string { + if x != nil { + return x.OpUserID + } + return "" +} + +func (x *DelMsgListReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *DelMsgListReq) GetSeqList() []uint32 { + if x != nil { + return x.SeqList + } + return nil +} + +func (x *DelMsgListReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type DelMsgListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ErrCode int32 `protobuf:"varint,1,opt,name=errCode,proto3" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg,omitempty"` +} + +func (x *DelMsgListResp) Reset() { + *x = DelMsgListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelMsgListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelMsgListResp) ProtoMessage() {} + +func (x *DelMsgListResp) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[75] + 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 DelMsgListResp.ProtoReflect.Descriptor instead. +func (*DelMsgListResp) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{75} +} + +func (x *DelMsgListResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode + } + return 0 +} + +func (x *DelMsgListResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg + } + return "" +} + +var File_sdk_ws_ws_proto protoreflect.FileDescriptor + +var file_sdk_ws_ws_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x11, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x27, 0x4f, 0x70, 0x65, 0x6e, 0x5f, 0x49, 0x4d, 0x2f, 0x70, 0x6b, + 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x2f, 0x77, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdf, 0x04, + 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, + 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, + 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x10, 0x6e, 0x65, 0x65, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x2e, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, + 0x94, 0x03, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x6f, 0x72, + 0x53, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x0e, 0x0a, + 0x02, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x47, 0x0a, + 0x10, 0x6e, 0x65, 0x65, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x6c, 0x6f, 0x6f, + 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x49, 0x0a, 0x11, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x22, 0xff, 0x02, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, + 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, + 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, + 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, + 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, + 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, + 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6a, 0x6f, + 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, + 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x86, 0x01, 0x0a, 0x0e, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, + 0x78, 0x22, 0xe6, 0x03, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x16, 0x0a, 0x06, + 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, + 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, + 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, + 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2a, + 0x0a, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, + 0x70, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x22, 0xf9, 0x01, 0x0a, 0x0a, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, + 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, + 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xec, 0x01, 0x0a, 0x09, 0x42, 0x6c, 0x61, 0x63, 0x6b, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0d, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, + 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x97, 0x03, 0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, + 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x71, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x69, + 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6a, + 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, + 0xdb, 0x03, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, + 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x46, 0x61, 0x63, + 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, + 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x47, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x72, 0x6f, + 0x6d, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x4e, 0x69, 0x63, 0x6b, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, + 0x4c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, + 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, + 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x65, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xb2, 0x02, + 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, + 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, + 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x44, + 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x10, 0x73, 0x75, 0x62, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, + 0x75, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x65, 0x78, 0x22, 0xac, 0x02, 0x0a, 0x10, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, + 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x65, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, + 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x70, + 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x6c, 0x65, + 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, + 0x78, 0x22, 0xc0, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, + 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x65, 0x78, 0x22, 0xb8, 0x01, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4f, 0x0a, + 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x10, 0x6f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x4f, + 0x0a, 0x10, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x44, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x10, 0x64, + 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0xbc, 0x01, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x57, 0x0a, 0x14, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x14, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xac, + 0x02, 0x0a, 0x17, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, + 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x60, + 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, + 0x1a, 0x5b, 0x0a, 0x11, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x73, 0x65, 0x71, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x23, 0x0a, + 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x0b, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x3c, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0xd0, 0x02, 0x0a, 0x18, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, + 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, + 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, + 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x2e, + 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x6d, + 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x6c, + 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x44, 0x61, + 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x63, 0x0a, + 0x15, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, + 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, + 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x70, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, + 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x3e, 0x0a, 0x0c, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, + 0x6e, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, + 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, + 0x6e, 0x53, 0x65, 0x71, 0x22, 0xcb, 0x02, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x41, + 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, + 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61, + 0x78, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, + 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, + 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x6b, + 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, + 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, 0x65, 0x73, + 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, + 0x53, 0x65, 0x71, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x1a, 0x65, 0x0a, 0x16, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x61, 0x78, 0x41, 0x6e, + 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x71, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x73, 0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb6, 0x06, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x63, + 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, + 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, + 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, + 0x65, 0x55, 0x52, 0x4c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, + 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, + 0x73, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x41, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, + 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, + 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, + 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, + 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, + 0x61, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, + 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, + 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x65, 0x78, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x95, + 0x01, 0x0a, 0x0f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x0e, 0x0a, 0x02, + 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, + 0x69, 0x4f, 0x53, 0x50, 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x69, 0x4f, 0x53, 0x50, 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, + 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x64, 0x0a, 0x08, 0x54, 0x69, 0x70, 0x73, 0x43, 0x6f, + 0x6d, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x69, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x6a, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0xc4, 0x02, 0x0a, + 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, + 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, + 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, + 0x73, 0x65, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x53, 0x65, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x75, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x75, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x4a, 0x6f, 0x69, + 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x09, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, + 0x71, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, + 0x73, 0x67, 0x22, 0xae, 0x01, 0x0a, 0x0e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x51, 0x75, 0x69, + 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x42, 0x0a, 0x08, 0x71, 0x75, 0x69, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x71, 0x75, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, + 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x1c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, + 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0xb0, 0x01, 0x0a, 0x1c, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6a, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0x83, 0x02, 0x0a, 0x19, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x72, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x0d, 0x6e, + 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0xfc, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4b, 0x69, 0x63, 0x6b, 0x65, 0x64, + 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0e, 0x6b, 0x69, 0x63, 0x6b, + 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xff, + 0x01, 0x0a, 0x11, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, + 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x22, 0xb5, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, + 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x72, + 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x12, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, + 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x9a, 0x02, 0x0a, 0x14, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x54, 0x69, + 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, + 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x09, + 0x6d, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, + 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xfc, 0x01, 0x0a, 0x1a, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, + 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, + 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x44, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x65, + 0x64, 0x55, 0x73, 0x65, 0x72, 0x22, 0xaa, 0x01, 0x0a, 0x0e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x75, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, + 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, + 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x16, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x74, 0x54, 0x69, 0x70, 0x73, + 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, + 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x22, 0x74, 0x0a, 0x17, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, + 0x33, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x6b, 0x0a, 0x11, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, + 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x57, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x64, 0x64, + 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x4a, 0x0a, 0x0c, 0x46, 0x72, 0x6f, 0x6d, 0x54, + 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, 0x6f, + 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x22, 0x5c, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, + 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x22, 0x82, 0x01, 0x0a, 0x1d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x54, + 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, + 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, + 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0x82, 0x01, 0x0a, 0x1d, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6a, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, + 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, + 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, + 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0xa9, 0x01, 0x0a, 0x0f, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, + 0x35, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, + 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x06, + 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x22, 0x58, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, + 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x22, 0x55, 0x0a, 0x0e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, + 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, + 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, + 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x57, 0x0a, 0x10, 0x42, 0x6c, 0x61, 0x63, + 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, + 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x22, 0x5c, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, + 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, + 0x2d, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x60, + 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, + 0x22, 0x6a, 0x0a, 0x1a, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x1c, + 0x0a, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x61, 0x0a, 0x11, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x69, 0x70, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0x53, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0x56, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x9f, 0x03, 0x0a, + 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x06, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, + 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x51, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x06, 0x63, + 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, + 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, + 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x68, + 0x75, 0x6e, 0x67, 0x55, 0x70, 0x12, 0x3c, 0x0a, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6a, + 0x65, 0x63, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xac, + 0x03, 0x0a, 0x0a, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3e, 0x0a, + 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x53, 0x0a, + 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, + 0x67, 0x55, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x67, + 0x55, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6a, 0x65, + 0x63, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xd4, 0x02, + 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, + 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a, 0x09, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x50, 0x0a, 0x0f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x88, 0x02, 0x0a, 0x0f, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, + 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, + 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, + 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, + 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, + 0x70, 0x61, 0x6e, 0x74, 0x22, 0x5b, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, + 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, + 0x4c, 0x22, 0x8f, 0x02, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, + 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, + 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, + 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, + 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x22, 0x62, 0x0a, 0x18, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, + 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0x88, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, + 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, + 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, + 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0xb4, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, + 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, + 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, + 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6f, 0x70, + 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x22, 0x5b, + 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, + 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0xbe, 0x01, 0x0a, 0x0f, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x71, 0x12, + 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, + 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, + 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, + 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x13, 0x0a, 0x11, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x22, 0xb4, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, + 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, + 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, + 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x7f, 0x0a, + 0x0d, 0x44, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, + 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x42, + 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, + 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, + 0x73, 0x67, 0x42, 0x1c, 0x5a, 0x1a, 0x2e, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x3b, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_sdk_ws_ws_proto_rawDescOnce sync.Once + file_sdk_ws_ws_proto_rawDescData = file_sdk_ws_ws_proto_rawDesc +) + +func file_sdk_ws_ws_proto_rawDescGZIP() []byte { + file_sdk_ws_ws_proto_rawDescOnce.Do(func() { + file_sdk_ws_ws_proto_rawDescData = protoimpl.X.CompressGZIP(file_sdk_ws_ws_proto_rawDescData) + }) + return file_sdk_ws_ws_proto_rawDescData +} + +var file_sdk_ws_ws_proto_msgTypes = make([]protoimpl.MessageInfo, 80) +var file_sdk_ws_ws_proto_goTypes = []interface{}{ + (*GroupInfo)(nil), // 0: server_api_params.GroupInfo + (*GroupInfoForSet)(nil), // 1: server_api_params.GroupInfoForSet + (*GroupMemberFullInfo)(nil), // 2: server_api_params.GroupMemberFullInfo + (*PublicUserInfo)(nil), // 3: server_api_params.PublicUserInfo + (*UserInfo)(nil), // 4: server_api_params.UserInfo + (*FriendInfo)(nil), // 5: server_api_params.FriendInfo + (*BlackInfo)(nil), // 6: server_api_params.BlackInfo + (*GroupRequest)(nil), // 7: server_api_params.GroupRequest + (*FriendRequest)(nil), // 8: server_api_params.FriendRequest + (*Department)(nil), // 9: server_api_params.Department + (*OrganizationUser)(nil), // 10: server_api_params.OrganizationUser + (*DepartmentMember)(nil), // 11: server_api_params.DepartmentMember + (*UserDepartmentMember)(nil), // 12: server_api_params.UserDepartmentMember + (*UserInDepartment)(nil), // 13: server_api_params.UserInDepartment + (*PullMessageBySeqListReq)(nil), // 14: server_api_params.PullMessageBySeqListReq + (*SeqList)(nil), // 15: server_api_params.seqList + (*MsgDataList)(nil), // 16: server_api_params.MsgDataList + (*PullMessageBySeqListResp)(nil), // 17: server_api_params.PullMessageBySeqListResp + (*GetMaxAndMinSeqReq)(nil), // 18: server_api_params.GetMaxAndMinSeqReq + (*MaxAndMinSeq)(nil), // 19: server_api_params.MaxAndMinSeq + (*GetMaxAndMinSeqResp)(nil), // 20: server_api_params.GetMaxAndMinSeqResp + (*UserSendMsgResp)(nil), // 21: server_api_params.UserSendMsgResp + (*MsgData)(nil), // 22: server_api_params.MsgData + (*OfflinePushInfo)(nil), // 23: server_api_params.OfflinePushInfo + (*TipsComm)(nil), // 24: server_api_params.TipsComm + (*GroupCreatedTips)(nil), // 25: server_api_params.GroupCreatedTips + (*GroupInfoSetTips)(nil), // 26: server_api_params.GroupInfoSetTips + (*JoinGroupApplicationTips)(nil), // 27: server_api_params.JoinGroupApplicationTips + (*MemberQuitTips)(nil), // 28: server_api_params.MemberQuitTips + (*GroupApplicationAcceptedTips)(nil), // 29: server_api_params.GroupApplicationAcceptedTips + (*GroupApplicationRejectedTips)(nil), // 30: server_api_params.GroupApplicationRejectedTips + (*GroupOwnerTransferredTips)(nil), // 31: server_api_params.GroupOwnerTransferredTips + (*MemberKickedTips)(nil), // 32: server_api_params.MemberKickedTips + (*MemberInvitedTips)(nil), // 33: server_api_params.MemberInvitedTips + (*MemberEnterTips)(nil), // 34: server_api_params.MemberEnterTips + (*GroupDismissedTips)(nil), // 35: server_api_params.GroupDismissedTips + (*GroupMemberMutedTips)(nil), // 36: server_api_params.GroupMemberMutedTips + (*GroupMemberCancelMutedTips)(nil), // 37: server_api_params.GroupMemberCancelMutedTips + (*GroupMutedTips)(nil), // 38: server_api_params.GroupMutedTips + (*GroupCancelMutedTips)(nil), // 39: server_api_params.GroupCancelMutedTips + (*GroupMemberInfoSetTips)(nil), // 40: server_api_params.GroupMemberInfoSetTips + (*OrganizationChangedTips)(nil), // 41: server_api_params.OrganizationChangedTips + (*FriendApplication)(nil), // 42: server_api_params.FriendApplication + (*FromToUserID)(nil), // 43: server_api_params.FromToUserID + (*FriendApplicationTips)(nil), // 44: server_api_params.FriendApplicationTips + (*FriendApplicationApprovedTips)(nil), // 45: server_api_params.FriendApplicationApprovedTips + (*FriendApplicationRejectedTips)(nil), // 46: server_api_params.FriendApplicationRejectedTips + (*FriendAddedTips)(nil), // 47: server_api_params.FriendAddedTips + (*FriendDeletedTips)(nil), // 48: server_api_params.FriendDeletedTips + (*BlackAddedTips)(nil), // 49: server_api_params.BlackAddedTips + (*BlackDeletedTips)(nil), // 50: server_api_params.BlackDeletedTips + (*FriendInfoChangedTips)(nil), // 51: server_api_params.FriendInfoChangedTips + (*UserInfoUpdatedTips)(nil), // 52: server_api_params.UserInfoUpdatedTips + (*ConversationUpdateTips)(nil), // 53: server_api_params.ConversationUpdateTips + (*ConversationSetPrivateTips)(nil), // 54: server_api_params.ConversationSetPrivateTips + (*DeleteMessageTips)(nil), // 55: server_api_params.DeleteMessageTips + (*RequestPagination)(nil), // 56: server_api_params.RequestPagination + (*ResponsePagination)(nil), // 57: server_api_params.ResponsePagination + (*SignalReq)(nil), // 58: server_api_params.SignalReq + (*SignalResp)(nil), // 59: server_api_params.SignalResp + (*InvitationInfo)(nil), // 60: server_api_params.InvitationInfo + (*ParticipantMetaData)(nil), // 61: server_api_params.ParticipantMetaData + (*SignalInviteReq)(nil), // 62: server_api_params.SignalInviteReq + (*SignalInviteReply)(nil), // 63: server_api_params.SignalInviteReply + (*SignalInviteInGroupReq)(nil), // 64: server_api_params.SignalInviteInGroupReq + (*SignalInviteInGroupReply)(nil), // 65: server_api_params.SignalInviteInGroupReply + (*SignalCancelReq)(nil), // 66: server_api_params.SignalCancelReq + (*SignalCancelReply)(nil), // 67: server_api_params.SignalCancelReply + (*SignalAcceptReq)(nil), // 68: server_api_params.SignalAcceptReq + (*SignalAcceptReply)(nil), // 69: server_api_params.SignalAcceptReply + (*SignalHungUpReq)(nil), // 70: server_api_params.SignalHungUpReq + (*SignalHungUpReply)(nil), // 71: server_api_params.SignalHungUpReply + (*SignalRejectReq)(nil), // 72: server_api_params.SignalRejectReq + (*SignalRejectReply)(nil), // 73: server_api_params.SignalRejectReply + (*DelMsgListReq)(nil), // 74: server_api_params.DelMsgListReq + (*DelMsgListResp)(nil), // 75: server_api_params.DelMsgListResp + nil, // 76: server_api_params.PullMessageBySeqListReq.GroupSeqListEntry + nil, // 77: server_api_params.PullMessageBySeqListResp.GroupMsgDataListEntry + nil, // 78: server_api_params.GetMaxAndMinSeqResp.GroupMaxAndMinSeqEntry + nil, // 79: server_api_params.MsgData.OptionsEntry + (*wrapperspb.Int32Value)(nil), // 80: google.protobuf.Int32Value +} +var file_sdk_ws_ws_proto_depIdxs = []int32{ + 80, // 0: server_api_params.GroupInfoForSet.needVerification:type_name -> google.protobuf.Int32Value + 80, // 1: server_api_params.GroupInfoForSet.lookMemberInfo:type_name -> google.protobuf.Int32Value + 80, // 2: server_api_params.GroupInfoForSet.applyMemberFriend:type_name -> google.protobuf.Int32Value + 4, // 3: server_api_params.FriendInfo.friendUser:type_name -> server_api_params.UserInfo + 3, // 4: server_api_params.BlackInfo.blackUserInfo:type_name -> server_api_params.PublicUserInfo + 3, // 5: server_api_params.GroupRequest.userInfo:type_name -> server_api_params.PublicUserInfo + 0, // 6: server_api_params.GroupRequest.groupInfo:type_name -> server_api_params.GroupInfo + 10, // 7: server_api_params.UserDepartmentMember.organizationUser:type_name -> server_api_params.OrganizationUser + 11, // 8: server_api_params.UserDepartmentMember.departmentMember:type_name -> server_api_params.DepartmentMember + 10, // 9: server_api_params.UserInDepartment.organizationUser:type_name -> server_api_params.OrganizationUser + 11, // 10: server_api_params.UserInDepartment.departmentMemberList:type_name -> server_api_params.DepartmentMember + 76, // 11: server_api_params.PullMessageBySeqListReq.groupSeqList:type_name -> server_api_params.PullMessageBySeqListReq.GroupSeqListEntry + 22, // 12: server_api_params.MsgDataList.msgDataList:type_name -> server_api_params.MsgData + 22, // 13: server_api_params.PullMessageBySeqListResp.list:type_name -> server_api_params.MsgData + 77, // 14: server_api_params.PullMessageBySeqListResp.groupMsgDataList:type_name -> server_api_params.PullMessageBySeqListResp.GroupMsgDataListEntry + 78, // 15: server_api_params.GetMaxAndMinSeqResp.groupMaxAndMinSeq:type_name -> server_api_params.GetMaxAndMinSeqResp.GroupMaxAndMinSeqEntry + 79, // 16: server_api_params.MsgData.options:type_name -> server_api_params.MsgData.OptionsEntry + 23, // 17: server_api_params.MsgData.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo + 0, // 18: server_api_params.GroupCreatedTips.group:type_name -> server_api_params.GroupInfo + 2, // 19: server_api_params.GroupCreatedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 2, // 20: server_api_params.GroupCreatedTips.memberList:type_name -> server_api_params.GroupMemberFullInfo + 2, // 21: server_api_params.GroupCreatedTips.groupOwnerUser:type_name -> server_api_params.GroupMemberFullInfo + 2, // 22: server_api_params.GroupInfoSetTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 0, // 23: server_api_params.GroupInfoSetTips.group:type_name -> server_api_params.GroupInfo + 0, // 24: server_api_params.JoinGroupApplicationTips.group:type_name -> server_api_params.GroupInfo + 3, // 25: server_api_params.JoinGroupApplicationTips.applicant:type_name -> server_api_params.PublicUserInfo + 0, // 26: server_api_params.MemberQuitTips.group:type_name -> server_api_params.GroupInfo + 2, // 27: server_api_params.MemberQuitTips.quitUser:type_name -> server_api_params.GroupMemberFullInfo + 0, // 28: server_api_params.GroupApplicationAcceptedTips.group:type_name -> server_api_params.GroupInfo + 2, // 29: server_api_params.GroupApplicationAcceptedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 0, // 30: server_api_params.GroupApplicationRejectedTips.group:type_name -> server_api_params.GroupInfo + 2, // 31: server_api_params.GroupApplicationRejectedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 0, // 32: server_api_params.GroupOwnerTransferredTips.group:type_name -> server_api_params.GroupInfo + 2, // 33: server_api_params.GroupOwnerTransferredTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 2, // 34: server_api_params.GroupOwnerTransferredTips.newGroupOwner:type_name -> server_api_params.GroupMemberFullInfo + 0, // 35: server_api_params.MemberKickedTips.group:type_name -> server_api_params.GroupInfo + 2, // 36: server_api_params.MemberKickedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 2, // 37: server_api_params.MemberKickedTips.kickedUserList:type_name -> server_api_params.GroupMemberFullInfo + 0, // 38: server_api_params.MemberInvitedTips.group:type_name -> server_api_params.GroupInfo + 2, // 39: server_api_params.MemberInvitedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 2, // 40: server_api_params.MemberInvitedTips.invitedUserList:type_name -> server_api_params.GroupMemberFullInfo + 0, // 41: server_api_params.MemberEnterTips.group:type_name -> server_api_params.GroupInfo + 2, // 42: server_api_params.MemberEnterTips.entrantUser:type_name -> server_api_params.GroupMemberFullInfo + 0, // 43: server_api_params.GroupDismissedTips.group:type_name -> server_api_params.GroupInfo + 2, // 44: server_api_params.GroupDismissedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 0, // 45: server_api_params.GroupMemberMutedTips.group:type_name -> server_api_params.GroupInfo + 2, // 46: server_api_params.GroupMemberMutedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 2, // 47: server_api_params.GroupMemberMutedTips.mutedUser:type_name -> server_api_params.GroupMemberFullInfo + 0, // 48: server_api_params.GroupMemberCancelMutedTips.group:type_name -> server_api_params.GroupInfo + 2, // 49: server_api_params.GroupMemberCancelMutedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 2, // 50: server_api_params.GroupMemberCancelMutedTips.mutedUser:type_name -> server_api_params.GroupMemberFullInfo + 0, // 51: server_api_params.GroupMutedTips.group:type_name -> server_api_params.GroupInfo + 2, // 52: server_api_params.GroupMutedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 0, // 53: server_api_params.GroupCancelMutedTips.group:type_name -> server_api_params.GroupInfo + 2, // 54: server_api_params.GroupCancelMutedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 0, // 55: server_api_params.GroupMemberInfoSetTips.group:type_name -> server_api_params.GroupInfo + 2, // 56: server_api_params.GroupMemberInfoSetTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 2, // 57: server_api_params.GroupMemberInfoSetTips.changedUser:type_name -> server_api_params.GroupMemberFullInfo + 4, // 58: server_api_params.OrganizationChangedTips.opUser:type_name -> server_api_params.UserInfo + 43, // 59: server_api_params.FriendApplicationTips.fromToUserID:type_name -> server_api_params.FromToUserID + 43, // 60: server_api_params.FriendApplicationApprovedTips.fromToUserID:type_name -> server_api_params.FromToUserID + 43, // 61: server_api_params.FriendApplicationRejectedTips.fromToUserID:type_name -> server_api_params.FromToUserID + 5, // 62: server_api_params.FriendAddedTips.friend:type_name -> server_api_params.FriendInfo + 3, // 63: server_api_params.FriendAddedTips.opUser:type_name -> server_api_params.PublicUserInfo + 43, // 64: server_api_params.FriendDeletedTips.fromToUserID:type_name -> server_api_params.FromToUserID + 43, // 65: server_api_params.BlackAddedTips.fromToUserID:type_name -> server_api_params.FromToUserID + 43, // 66: server_api_params.BlackDeletedTips.fromToUserID:type_name -> server_api_params.FromToUserID + 43, // 67: server_api_params.FriendInfoChangedTips.fromToUserID:type_name -> server_api_params.FromToUserID + 62, // 68: server_api_params.SignalReq.invite:type_name -> server_api_params.SignalInviteReq + 64, // 69: server_api_params.SignalReq.inviteInGroup:type_name -> server_api_params.SignalInviteInGroupReq + 66, // 70: server_api_params.SignalReq.cancel:type_name -> server_api_params.SignalCancelReq + 68, // 71: server_api_params.SignalReq.accept:type_name -> server_api_params.SignalAcceptReq + 70, // 72: server_api_params.SignalReq.hungUp:type_name -> server_api_params.SignalHungUpReq + 72, // 73: server_api_params.SignalReq.reject:type_name -> server_api_params.SignalRejectReq + 63, // 74: server_api_params.SignalResp.invite:type_name -> server_api_params.SignalInviteReply + 65, // 75: server_api_params.SignalResp.inviteInGroup:type_name -> server_api_params.SignalInviteInGroupReply + 67, // 76: server_api_params.SignalResp.cancel:type_name -> server_api_params.SignalCancelReply + 69, // 77: server_api_params.SignalResp.accept:type_name -> server_api_params.SignalAcceptReply + 71, // 78: server_api_params.SignalResp.hungUp:type_name -> server_api_params.SignalHungUpReply + 73, // 79: server_api_params.SignalResp.reject:type_name -> server_api_params.SignalRejectReply + 0, // 80: server_api_params.ParticipantMetaData.groupInfo:type_name -> server_api_params.GroupInfo + 2, // 81: server_api_params.ParticipantMetaData.groupMemberInfo:type_name -> server_api_params.GroupMemberFullInfo + 3, // 82: server_api_params.ParticipantMetaData.userInfo:type_name -> server_api_params.PublicUserInfo + 60, // 83: server_api_params.SignalInviteReq.invitation:type_name -> server_api_params.InvitationInfo + 23, // 84: server_api_params.SignalInviteReq.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo + 61, // 85: server_api_params.SignalInviteReq.participant:type_name -> server_api_params.ParticipantMetaData + 60, // 86: server_api_params.SignalInviteInGroupReq.invitation:type_name -> server_api_params.InvitationInfo + 23, // 87: server_api_params.SignalInviteInGroupReq.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo + 61, // 88: server_api_params.SignalInviteInGroupReq.participant:type_name -> server_api_params.ParticipantMetaData + 60, // 89: server_api_params.SignalCancelReq.invitation:type_name -> server_api_params.InvitationInfo + 23, // 90: server_api_params.SignalCancelReq.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo + 61, // 91: server_api_params.SignalCancelReq.participant:type_name -> server_api_params.ParticipantMetaData + 60, // 92: server_api_params.SignalAcceptReq.invitation:type_name -> server_api_params.InvitationInfo + 23, // 93: server_api_params.SignalAcceptReq.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo + 61, // 94: server_api_params.SignalAcceptReq.participant:type_name -> server_api_params.ParticipantMetaData + 60, // 95: server_api_params.SignalHungUpReq.invitation:type_name -> server_api_params.InvitationInfo + 23, // 96: server_api_params.SignalHungUpReq.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo + 60, // 97: server_api_params.SignalRejectReq.invitation:type_name -> server_api_params.InvitationInfo + 23, // 98: server_api_params.SignalRejectReq.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo + 61, // 99: server_api_params.SignalRejectReq.participant:type_name -> server_api_params.ParticipantMetaData + 15, // 100: server_api_params.PullMessageBySeqListReq.GroupSeqListEntry.value:type_name -> server_api_params.seqList + 16, // 101: server_api_params.PullMessageBySeqListResp.GroupMsgDataListEntry.value:type_name -> server_api_params.MsgDataList + 19, // 102: server_api_params.GetMaxAndMinSeqResp.GroupMaxAndMinSeqEntry.value:type_name -> server_api_params.MaxAndMinSeq + 103, // [103:103] is the sub-list for method output_type + 103, // [103:103] is the sub-list for method input_type + 103, // [103:103] is the sub-list for extension type_name + 103, // [103:103] is the sub-list for extension extendee + 0, // [0:103] is the sub-list for field type_name +} + +func init() { file_sdk_ws_ws_proto_init() } +func file_sdk_ws_ws_proto_init() { + if File_sdk_ws_ws_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_sdk_ws_ws_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupInfoForSet); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupMemberFullInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PublicUserInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[5].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_sdk_ws_ws_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlackInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Department); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrganizationUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DepartmentMember); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserDepartmentMember); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserInDepartment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PullMessageBySeqListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SeqList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgDataList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PullMessageBySeqListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMaxAndMinSeqReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MaxAndMinSeq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMaxAndMinSeqResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserSendMsgResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OfflinePushInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TipsComm); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupCreatedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupInfoSetTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JoinGroupApplicationTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MemberQuitTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupApplicationAcceptedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupApplicationRejectedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupOwnerTransferredTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MemberKickedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MemberInvitedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MemberEnterTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupDismissedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupMemberMutedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupMemberCancelMutedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupMutedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupCancelMutedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupMemberInfoSetTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrganizationChangedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendApplication); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FromToUserID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendApplicationTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendApplicationApprovedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendApplicationRejectedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendAddedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendDeletedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlackAddedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlackDeletedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendInfoChangedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserInfoUpdatedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConversationUpdateTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConversationSetPrivateTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteMessageTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RequestPagination); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResponsePagination); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignalReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignalResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InvitationInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ParticipantMetaData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignalInviteReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignalInviteReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignalInviteInGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignalInviteInGroupReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignalCancelReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignalCancelReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignalAcceptReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignalAcceptReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignalHungUpReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignalHungUpReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignalRejectReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignalRejectReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelMsgListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelMsgListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_sdk_ws_ws_proto_msgTypes[58].OneofWrappers = []interface{}{ + (*SignalReq_Invite)(nil), + (*SignalReq_InviteInGroup)(nil), + (*SignalReq_Cancel)(nil), + (*SignalReq_Accept)(nil), + (*SignalReq_HungUp)(nil), + (*SignalReq_Reject)(nil), + } + file_sdk_ws_ws_proto_msgTypes[59].OneofWrappers = []interface{}{ (*SignalResp_Invite)(nil), (*SignalResp_InviteInGroup)(nil), (*SignalResp_Cancel)(nil), @@ -4311,1355 +7943,22 @@ func (*SignalResp) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) er (*SignalResp_HungUp)(nil), (*SignalResp_Reject)(nil), } -} - -func _SignalResp_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*SignalResp) - // payload - switch x := m.Payload.(type) { - case *SignalResp_Invite: - b.EncodeVarint(1<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Invite); err != nil { - return err - } - case *SignalResp_InviteInGroup: - b.EncodeVarint(2<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.InviteInGroup); err != nil { - return err - } - case *SignalResp_Cancel: - b.EncodeVarint(3<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Cancel); err != nil { - return err - } - case *SignalResp_Accept: - b.EncodeVarint(4<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Accept); err != nil { - return err - } - case *SignalResp_HungUp: - b.EncodeVarint(5<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.HungUp); err != nil { - return err - } - case *SignalResp_Reject: - b.EncodeVarint(6<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Reject); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("SignalResp.Payload has unexpected type %T", x) - } - return nil -} - -func _SignalResp_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*SignalResp) - switch tag { - case 1: // payload.invite - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(SignalInviteReply) - err := b.DecodeMessage(msg) - m.Payload = &SignalResp_Invite{msg} - return true, err - case 2: // payload.inviteInGroup - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(SignalInviteInGroupReply) - err := b.DecodeMessage(msg) - m.Payload = &SignalResp_InviteInGroup{msg} - return true, err - case 3: // payload.cancel - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(SignalCancelReply) - err := b.DecodeMessage(msg) - m.Payload = &SignalResp_Cancel{msg} - return true, err - case 4: // payload.accept - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(SignalAcceptReply) - err := b.DecodeMessage(msg) - m.Payload = &SignalResp_Accept{msg} - return true, err - case 5: // payload.hungUp - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(SignalHungUpReply) - err := b.DecodeMessage(msg) - m.Payload = &SignalResp_HungUp{msg} - return true, err - case 6: // payload.reject - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(SignalRejectReply) - err := b.DecodeMessage(msg) - m.Payload = &SignalResp_Reject{msg} - return true, err - default: - return false, nil - } -} - -func _SignalResp_OneofSizer(msg proto.Message) (n int) { - m := msg.(*SignalResp) - // payload - switch x := m.Payload.(type) { - case *SignalResp_Invite: - s := proto.Size(x.Invite) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *SignalResp_InviteInGroup: - s := proto.Size(x.InviteInGroup) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *SignalResp_Cancel: - s := proto.Size(x.Cancel) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *SignalResp_Accept: - s := proto.Size(x.Accept) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *SignalResp_HungUp: - s := proto.Size(x.HungUp) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *SignalResp_Reject: - s := proto.Size(x.Reject) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -type InvitationInfo struct { - InviterUserID string `protobuf:"bytes,1,opt,name=inviterUserID" json:"inviterUserID,omitempty"` - InviteeUserIDList []string `protobuf:"bytes,2,rep,name=inviteeUserIDList" json:"inviteeUserIDList,omitempty"` - CustomData string `protobuf:"bytes,3,opt,name=customData" json:"customData,omitempty"` - GroupID string `protobuf:"bytes,4,opt,name=groupID" json:"groupID,omitempty"` - RoomID string `protobuf:"bytes,5,opt,name=roomID" json:"roomID,omitempty"` - Timeout int32 `protobuf:"varint,6,opt,name=timeout" json:"timeout,omitempty"` - MediaType string `protobuf:"bytes,7,opt,name=mediaType" json:"mediaType,omitempty"` - PlatformID int32 `protobuf:"varint,8,opt,name=platformID" json:"platformID,omitempty"` - SessionType int32 `protobuf:"varint,9,opt,name=sessionType" json:"sessionType,omitempty"` - InitiateTime int32 `protobuf:"varint,10,opt,name=initiateTime" json:"initiateTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } -func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } -func (*InvitationInfo) ProtoMessage() {} -func (*InvitationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{60} -} -func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) -} -func (m *InvitationInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_InvitationInfo.Marshal(b, m, deterministic) -} -func (dst *InvitationInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_InvitationInfo.Merge(dst, src) -} -func (m *InvitationInfo) XXX_Size() int { - return xxx_messageInfo_InvitationInfo.Size(m) -} -func (m *InvitationInfo) XXX_DiscardUnknown() { - xxx_messageInfo_InvitationInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_InvitationInfo proto.InternalMessageInfo - -func (m *InvitationInfo) GetInviterUserID() string { - if m != nil { - return m.InviterUserID - } - return "" -} - -func (m *InvitationInfo) GetInviteeUserIDList() []string { - if m != nil { - return m.InviteeUserIDList - } - return nil -} - -func (m *InvitationInfo) GetCustomData() string { - if m != nil { - return m.CustomData - } - return "" -} - -func (m *InvitationInfo) GetGroupID() string { - if m != nil { - return m.GroupID - } - return "" -} - -func (m *InvitationInfo) GetRoomID() string { - if m != nil { - return m.RoomID - } - return "" -} - -func (m *InvitationInfo) GetTimeout() int32 { - if m != nil { - return m.Timeout - } - return 0 -} - -func (m *InvitationInfo) GetMediaType() string { - if m != nil { - return m.MediaType - } - return "" -} - -func (m *InvitationInfo) GetPlatformID() int32 { - if m != nil { - return m.PlatformID - } - return 0 -} - -func (m *InvitationInfo) GetSessionType() int32 { - if m != nil { - return m.SessionType - } - return 0 -} - -func (m *InvitationInfo) GetInitiateTime() int32 { - if m != nil { - return m.InitiateTime - } - return 0 -} - -type ParticipantMetaData struct { - GroupInfo *GroupInfo `protobuf:"bytes,1,opt,name=groupInfo" json:"groupInfo,omitempty"` - GroupMemberInfo *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=groupMemberInfo" json:"groupMemberInfo,omitempty"` - UserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=userInfo" json:"userInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } -func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } -func (*ParticipantMetaData) ProtoMessage() {} -func (*ParticipantMetaData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{61} -} -func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) -} -func (m *ParticipantMetaData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ParticipantMetaData.Marshal(b, m, deterministic) -} -func (dst *ParticipantMetaData) XXX_Merge(src proto.Message) { - xxx_messageInfo_ParticipantMetaData.Merge(dst, src) -} -func (m *ParticipantMetaData) XXX_Size() int { - return xxx_messageInfo_ParticipantMetaData.Size(m) -} -func (m *ParticipantMetaData) XXX_DiscardUnknown() { - xxx_messageInfo_ParticipantMetaData.DiscardUnknown(m) -} - -var xxx_messageInfo_ParticipantMetaData proto.InternalMessageInfo - -func (m *ParticipantMetaData) GetGroupInfo() *GroupInfo { - if m != nil { - return m.GroupInfo - } - return nil -} - -func (m *ParticipantMetaData) GetGroupMemberInfo() *GroupMemberFullInfo { - if m != nil { - return m.GroupMemberInfo - } - return nil -} - -func (m *ParticipantMetaData) GetUserInfo() *PublicUserInfo { - if m != nil { - return m.UserInfo - } - return nil -} - -type SignalInviteReq struct { - OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` - Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` - Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } -func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } -func (*SignalInviteReq) ProtoMessage() {} -func (*SignalInviteReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{62} -} -func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) -} -func (m *SignalInviteReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignalInviteReq.Marshal(b, m, deterministic) -} -func (dst *SignalInviteReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignalInviteReq.Merge(dst, src) -} -func (m *SignalInviteReq) XXX_Size() int { - return xxx_messageInfo_SignalInviteReq.Size(m) -} -func (m *SignalInviteReq) XXX_DiscardUnknown() { - xxx_messageInfo_SignalInviteReq.DiscardUnknown(m) -} - -var xxx_messageInfo_SignalInviteReq proto.InternalMessageInfo - -func (m *SignalInviteReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - -func (m *SignalInviteReq) GetInvitation() *InvitationInfo { - if m != nil { - return m.Invitation - } - return nil -} - -func (m *SignalInviteReq) GetOfflinePushInfo() *OfflinePushInfo { - if m != nil { - return m.OfflinePushInfo - } - return nil -} - -func (m *SignalInviteReq) GetParticipant() *ParticipantMetaData { - if m != nil { - return m.Participant - } - return nil -} - -type SignalInviteReply struct { - Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` - RoomID string `protobuf:"bytes,2,opt,name=roomID" json:"roomID,omitempty"` - LiveURL string `protobuf:"bytes,3,opt,name=liveURL" json:"liveURL,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } -func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } -func (*SignalInviteReply) ProtoMessage() {} -func (*SignalInviteReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{63} -} -func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) -} -func (m *SignalInviteReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignalInviteReply.Marshal(b, m, deterministic) -} -func (dst *SignalInviteReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignalInviteReply.Merge(dst, src) -} -func (m *SignalInviteReply) XXX_Size() int { - return xxx_messageInfo_SignalInviteReply.Size(m) -} -func (m *SignalInviteReply) XXX_DiscardUnknown() { - xxx_messageInfo_SignalInviteReply.DiscardUnknown(m) -} - -var xxx_messageInfo_SignalInviteReply proto.InternalMessageInfo - -func (m *SignalInviteReply) GetToken() string { - if m != nil { - return m.Token - } - return "" -} - -func (m *SignalInviteReply) GetRoomID() string { - if m != nil { - return m.RoomID - } - return "" -} - -func (m *SignalInviteReply) GetLiveURL() string { - if m != nil { - return m.LiveURL - } - return "" -} - -type SignalInviteInGroupReq struct { - OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` - Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` - Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} } -func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } -func (*SignalInviteInGroupReq) ProtoMessage() {} -func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{64} -} -func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) -} -func (m *SignalInviteInGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignalInviteInGroupReq.Marshal(b, m, deterministic) -} -func (dst *SignalInviteInGroupReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignalInviteInGroupReq.Merge(dst, src) -} -func (m *SignalInviteInGroupReq) XXX_Size() int { - return xxx_messageInfo_SignalInviteInGroupReq.Size(m) -} -func (m *SignalInviteInGroupReq) XXX_DiscardUnknown() { - xxx_messageInfo_SignalInviteInGroupReq.DiscardUnknown(m) -} - -var xxx_messageInfo_SignalInviteInGroupReq proto.InternalMessageInfo - -func (m *SignalInviteInGroupReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - -func (m *SignalInviteInGroupReq) GetInvitation() *InvitationInfo { - if m != nil { - return m.Invitation - } - return nil -} - -func (m *SignalInviteInGroupReq) GetOfflinePushInfo() *OfflinePushInfo { - if m != nil { - return m.OfflinePushInfo - } - return nil -} - -func (m *SignalInviteInGroupReq) GetParticipant() *ParticipantMetaData { - if m != nil { - return m.Participant - } - return nil -} - -type SignalInviteInGroupReply struct { - Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` - RoomID string `protobuf:"bytes,2,opt,name=roomID" json:"roomID,omitempty"` - LiveURL string `protobuf:"bytes,3,opt,name=liveURL" json:"liveURL,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupReply{} } -func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } -func (*SignalInviteInGroupReply) ProtoMessage() {} -func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{65} -} -func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) -} -func (m *SignalInviteInGroupReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignalInviteInGroupReply.Marshal(b, m, deterministic) -} -func (dst *SignalInviteInGroupReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignalInviteInGroupReply.Merge(dst, src) -} -func (m *SignalInviteInGroupReply) XXX_Size() int { - return xxx_messageInfo_SignalInviteInGroupReply.Size(m) -} -func (m *SignalInviteInGroupReply) XXX_DiscardUnknown() { - xxx_messageInfo_SignalInviteInGroupReply.DiscardUnknown(m) -} - -var xxx_messageInfo_SignalInviteInGroupReply proto.InternalMessageInfo - -func (m *SignalInviteInGroupReply) GetToken() string { - if m != nil { - return m.Token - } - return "" -} - -func (m *SignalInviteInGroupReply) GetRoomID() string { - if m != nil { - return m.RoomID - } - return "" -} - -func (m *SignalInviteInGroupReply) GetLiveURL() string { - if m != nil { - return m.LiveURL - } - return "" -} - -type SignalCancelReq struct { - OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` - Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` - Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } -func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } -func (*SignalCancelReq) ProtoMessage() {} -func (*SignalCancelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{66} -} -func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) -} -func (m *SignalCancelReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignalCancelReq.Marshal(b, m, deterministic) -} -func (dst *SignalCancelReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignalCancelReq.Merge(dst, src) -} -func (m *SignalCancelReq) XXX_Size() int { - return xxx_messageInfo_SignalCancelReq.Size(m) -} -func (m *SignalCancelReq) XXX_DiscardUnknown() { - xxx_messageInfo_SignalCancelReq.DiscardUnknown(m) -} - -var xxx_messageInfo_SignalCancelReq proto.InternalMessageInfo - -func (m *SignalCancelReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - -func (m *SignalCancelReq) GetInvitation() *InvitationInfo { - if m != nil { - return m.Invitation - } - return nil -} - -func (m *SignalCancelReq) GetOfflinePushInfo() *OfflinePushInfo { - if m != nil { - return m.OfflinePushInfo - } - return nil -} - -func (m *SignalCancelReq) GetParticipant() *ParticipantMetaData { - if m != nil { - return m.Participant - } - return nil -} - -type SignalCancelReply struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } -func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } -func (*SignalCancelReply) ProtoMessage() {} -func (*SignalCancelReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{67} -} -func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) -} -func (m *SignalCancelReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignalCancelReply.Marshal(b, m, deterministic) -} -func (dst *SignalCancelReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignalCancelReply.Merge(dst, src) -} -func (m *SignalCancelReply) XXX_Size() int { - return xxx_messageInfo_SignalCancelReply.Size(m) -} -func (m *SignalCancelReply) XXX_DiscardUnknown() { - xxx_messageInfo_SignalCancelReply.DiscardUnknown(m) -} - -var xxx_messageInfo_SignalCancelReply proto.InternalMessageInfo - -type SignalAcceptReq struct { - OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` - Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` - Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` - OpUserPlatformID int32 `protobuf:"varint,5,opt,name=opUserPlatformID" json:"opUserPlatformID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } -func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } -func (*SignalAcceptReq) ProtoMessage() {} -func (*SignalAcceptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{68} -} -func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) -} -func (m *SignalAcceptReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignalAcceptReq.Marshal(b, m, deterministic) -} -func (dst *SignalAcceptReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignalAcceptReq.Merge(dst, src) -} -func (m *SignalAcceptReq) XXX_Size() int { - return xxx_messageInfo_SignalAcceptReq.Size(m) -} -func (m *SignalAcceptReq) XXX_DiscardUnknown() { - xxx_messageInfo_SignalAcceptReq.DiscardUnknown(m) -} - -var xxx_messageInfo_SignalAcceptReq proto.InternalMessageInfo - -func (m *SignalAcceptReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - -func (m *SignalAcceptReq) GetInvitation() *InvitationInfo { - if m != nil { - return m.Invitation - } - return nil -} - -func (m *SignalAcceptReq) GetOfflinePushInfo() *OfflinePushInfo { - if m != nil { - return m.OfflinePushInfo - } - return nil -} - -func (m *SignalAcceptReq) GetParticipant() *ParticipantMetaData { - if m != nil { - return m.Participant - } - return nil -} - -func (m *SignalAcceptReq) GetOpUserPlatformID() int32 { - if m != nil { - return m.OpUserPlatformID - } - return 0 -} - -type SignalAcceptReply struct { - Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` - RoomID string `protobuf:"bytes,2,opt,name=roomID" json:"roomID,omitempty"` - LiveURL string `protobuf:"bytes,3,opt,name=liveURL" json:"liveURL,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } -func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } -func (*SignalAcceptReply) ProtoMessage() {} -func (*SignalAcceptReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{69} -} -func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) -} -func (m *SignalAcceptReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignalAcceptReply.Marshal(b, m, deterministic) -} -func (dst *SignalAcceptReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignalAcceptReply.Merge(dst, src) -} -func (m *SignalAcceptReply) XXX_Size() int { - return xxx_messageInfo_SignalAcceptReply.Size(m) -} -func (m *SignalAcceptReply) XXX_DiscardUnknown() { - xxx_messageInfo_SignalAcceptReply.DiscardUnknown(m) -} - -var xxx_messageInfo_SignalAcceptReply proto.InternalMessageInfo - -func (m *SignalAcceptReply) GetToken() string { - if m != nil { - return m.Token - } - return "" -} - -func (m *SignalAcceptReply) GetRoomID() string { - if m != nil { - return m.RoomID - } - return "" -} - -func (m *SignalAcceptReply) GetLiveURL() string { - if m != nil { - return m.LiveURL - } - return "" -} - -type SignalHungUpReq struct { - OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` - Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } -func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } -func (*SignalHungUpReq) ProtoMessage() {} -func (*SignalHungUpReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{70} -} -func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) -} -func (m *SignalHungUpReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignalHungUpReq.Marshal(b, m, deterministic) -} -func (dst *SignalHungUpReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignalHungUpReq.Merge(dst, src) -} -func (m *SignalHungUpReq) XXX_Size() int { - return xxx_messageInfo_SignalHungUpReq.Size(m) -} -func (m *SignalHungUpReq) XXX_DiscardUnknown() { - xxx_messageInfo_SignalHungUpReq.DiscardUnknown(m) -} - -var xxx_messageInfo_SignalHungUpReq proto.InternalMessageInfo - -func (m *SignalHungUpReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - -func (m *SignalHungUpReq) GetInvitation() *InvitationInfo { - if m != nil { - return m.Invitation - } - return nil -} - -func (m *SignalHungUpReq) GetOfflinePushInfo() *OfflinePushInfo { - if m != nil { - return m.OfflinePushInfo - } - return nil -} - -type SignalHungUpReply struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } -func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } -func (*SignalHungUpReply) ProtoMessage() {} -func (*SignalHungUpReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{71} -} -func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) -} -func (m *SignalHungUpReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignalHungUpReply.Marshal(b, m, deterministic) -} -func (dst *SignalHungUpReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignalHungUpReply.Merge(dst, src) -} -func (m *SignalHungUpReply) XXX_Size() int { - return xxx_messageInfo_SignalHungUpReply.Size(m) -} -func (m *SignalHungUpReply) XXX_DiscardUnknown() { - xxx_messageInfo_SignalHungUpReply.DiscardUnknown(m) -} - -var xxx_messageInfo_SignalHungUpReply proto.InternalMessageInfo - -type SignalRejectReq struct { - OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` - Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` - Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` - OpUserPlatformID int32 `protobuf:"varint,5,opt,name=opUserPlatformID" json:"opUserPlatformID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } -func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } -func (*SignalRejectReq) ProtoMessage() {} -func (*SignalRejectReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{72} -} -func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) -} -func (m *SignalRejectReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignalRejectReq.Marshal(b, m, deterministic) -} -func (dst *SignalRejectReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignalRejectReq.Merge(dst, src) -} -func (m *SignalRejectReq) XXX_Size() int { - return xxx_messageInfo_SignalRejectReq.Size(m) -} -func (m *SignalRejectReq) XXX_DiscardUnknown() { - xxx_messageInfo_SignalRejectReq.DiscardUnknown(m) -} - -var xxx_messageInfo_SignalRejectReq proto.InternalMessageInfo - -func (m *SignalRejectReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - -func (m *SignalRejectReq) GetInvitation() *InvitationInfo { - if m != nil { - return m.Invitation - } - return nil -} - -func (m *SignalRejectReq) GetOfflinePushInfo() *OfflinePushInfo { - if m != nil { - return m.OfflinePushInfo - } - return nil -} - -func (m *SignalRejectReq) GetParticipant() *ParticipantMetaData { - if m != nil { - return m.Participant - } - return nil -} - -func (m *SignalRejectReq) GetOpUserPlatformID() int32 { - if m != nil { - return m.OpUserPlatformID - } - return 0 -} - -type SignalRejectReply struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } -func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } -func (*SignalRejectReply) ProtoMessage() {} -func (*SignalRejectReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{73} -} -func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) -} -func (m *SignalRejectReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignalRejectReply.Marshal(b, m, deterministic) -} -func (dst *SignalRejectReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignalRejectReply.Merge(dst, src) -} -func (m *SignalRejectReply) XXX_Size() int { - return xxx_messageInfo_SignalRejectReply.Size(m) -} -func (m *SignalRejectReply) XXX_DiscardUnknown() { - xxx_messageInfo_SignalRejectReply.DiscardUnknown(m) -} - -var xxx_messageInfo_SignalRejectReply proto.InternalMessageInfo - -type DelMsgListReq struct { - OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` - SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } -func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } -func (*DelMsgListReq) ProtoMessage() {} -func (*DelMsgListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{74} -} -func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) -} -func (m *DelMsgListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DelMsgListReq.Marshal(b, m, deterministic) -} -func (dst *DelMsgListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_DelMsgListReq.Merge(dst, src) -} -func (m *DelMsgListReq) XXX_Size() int { - return xxx_messageInfo_DelMsgListReq.Size(m) -} -func (m *DelMsgListReq) XXX_DiscardUnknown() { - xxx_messageInfo_DelMsgListReq.DiscardUnknown(m) -} - -var xxx_messageInfo_DelMsgListReq proto.InternalMessageInfo - -func (m *DelMsgListReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - -func (m *DelMsgListReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *DelMsgListReq) GetSeqList() []uint32 { - if m != nil { - return m.SeqList - } - return nil -} - -func (m *DelMsgListReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type DelMsgListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } -func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } -func (*DelMsgListResp) ProtoMessage() {} -func (*DelMsgListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_aba301ea11ce8970, []int{75} -} -func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) -} -func (m *DelMsgListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DelMsgListResp.Marshal(b, m, deterministic) -} -func (dst *DelMsgListResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_DelMsgListResp.Merge(dst, src) -} -func (m *DelMsgListResp) XXX_Size() int { - return xxx_messageInfo_DelMsgListResp.Size(m) -} -func (m *DelMsgListResp) XXX_DiscardUnknown() { - xxx_messageInfo_DelMsgListResp.DiscardUnknown(m) -} - -var xxx_messageInfo_DelMsgListResp proto.InternalMessageInfo - -func (m *DelMsgListResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode - } - return 0 -} - -func (m *DelMsgListResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg - } - return "" -} - -func init() { - proto.RegisterType((*GroupInfo)(nil), "server_api_params.GroupInfo") - proto.RegisterType((*GroupInfoForSet)(nil), "server_api_params.GroupInfoForSet") - proto.RegisterType((*GroupMemberFullInfo)(nil), "server_api_params.GroupMemberFullInfo") - proto.RegisterType((*PublicUserInfo)(nil), "server_api_params.PublicUserInfo") - proto.RegisterType((*UserInfo)(nil), "server_api_params.UserInfo") - proto.RegisterType((*FriendInfo)(nil), "server_api_params.FriendInfo") - proto.RegisterType((*BlackInfo)(nil), "server_api_params.BlackInfo") - proto.RegisterType((*GroupRequest)(nil), "server_api_params.GroupRequest") - proto.RegisterType((*FriendRequest)(nil), "server_api_params.FriendRequest") - proto.RegisterType((*Department)(nil), "server_api_params.Department") - proto.RegisterType((*OrganizationUser)(nil), "server_api_params.OrganizationUser") - proto.RegisterType((*DepartmentMember)(nil), "server_api_params.DepartmentMember") - proto.RegisterType((*UserDepartmentMember)(nil), "server_api_params.UserDepartmentMember") - proto.RegisterType((*UserInDepartment)(nil), "server_api_params.UserInDepartment") - proto.RegisterType((*PullMessageBySeqListReq)(nil), "server_api_params.PullMessageBySeqListReq") - proto.RegisterMapType((map[string]*SeqList)(nil), "server_api_params.PullMessageBySeqListReq.GroupSeqListEntry") - proto.RegisterType((*SeqList)(nil), "server_api_params.seqList") - proto.RegisterType((*MsgDataList)(nil), "server_api_params.MsgDataList") - proto.RegisterType((*PullMessageBySeqListResp)(nil), "server_api_params.PullMessageBySeqListResp") - proto.RegisterMapType((map[string]*MsgDataList)(nil), "server_api_params.PullMessageBySeqListResp.GroupMsgDataListEntry") - proto.RegisterType((*GetMaxAndMinSeqReq)(nil), "server_api_params.GetMaxAndMinSeqReq") - proto.RegisterType((*MaxAndMinSeq)(nil), "server_api_params.MaxAndMinSeq") - proto.RegisterType((*GetMaxAndMinSeqResp)(nil), "server_api_params.GetMaxAndMinSeqResp") - proto.RegisterMapType((map[string]*MaxAndMinSeq)(nil), "server_api_params.GetMaxAndMinSeqResp.GroupMaxAndMinSeqEntry") - proto.RegisterType((*UserSendMsgResp)(nil), "server_api_params.UserSendMsgResp") - proto.RegisterType((*MsgData)(nil), "server_api_params.MsgData") - proto.RegisterMapType((map[string]bool)(nil), "server_api_params.MsgData.OptionsEntry") - proto.RegisterType((*OfflinePushInfo)(nil), "server_api_params.OfflinePushInfo") - proto.RegisterType((*TipsComm)(nil), "server_api_params.TipsComm") - proto.RegisterType((*GroupCreatedTips)(nil), "server_api_params.GroupCreatedTips") - proto.RegisterType((*GroupInfoSetTips)(nil), "server_api_params.GroupInfoSetTips") - proto.RegisterType((*JoinGroupApplicationTips)(nil), "server_api_params.JoinGroupApplicationTips") - proto.RegisterType((*MemberQuitTips)(nil), "server_api_params.MemberQuitTips") - proto.RegisterType((*GroupApplicationAcceptedTips)(nil), "server_api_params.GroupApplicationAcceptedTips") - proto.RegisterType((*GroupApplicationRejectedTips)(nil), "server_api_params.GroupApplicationRejectedTips") - proto.RegisterType((*GroupOwnerTransferredTips)(nil), "server_api_params.GroupOwnerTransferredTips") - proto.RegisterType((*MemberKickedTips)(nil), "server_api_params.MemberKickedTips") - proto.RegisterType((*MemberInvitedTips)(nil), "server_api_params.MemberInvitedTips") - proto.RegisterType((*MemberEnterTips)(nil), "server_api_params.MemberEnterTips") - proto.RegisterType((*GroupDismissedTips)(nil), "server_api_params.GroupDismissedTips") - proto.RegisterType((*GroupMemberMutedTips)(nil), "server_api_params.GroupMemberMutedTips") - proto.RegisterType((*GroupMemberCancelMutedTips)(nil), "server_api_params.GroupMemberCancelMutedTips") - proto.RegisterType((*GroupMutedTips)(nil), "server_api_params.GroupMutedTips") - proto.RegisterType((*GroupCancelMutedTips)(nil), "server_api_params.GroupCancelMutedTips") - proto.RegisterType((*GroupMemberInfoSetTips)(nil), "server_api_params.GroupMemberInfoSetTips") - proto.RegisterType((*OrganizationChangedTips)(nil), "server_api_params.OrganizationChangedTips") - proto.RegisterType((*FriendApplication)(nil), "server_api_params.FriendApplication") - proto.RegisterType((*FromToUserID)(nil), "server_api_params.FromToUserID") - proto.RegisterType((*FriendApplicationTips)(nil), "server_api_params.FriendApplicationTips") - proto.RegisterType((*FriendApplicationApprovedTips)(nil), "server_api_params.FriendApplicationApprovedTips") - proto.RegisterType((*FriendApplicationRejectedTips)(nil), "server_api_params.FriendApplicationRejectedTips") - proto.RegisterType((*FriendAddedTips)(nil), "server_api_params.FriendAddedTips") - proto.RegisterType((*FriendDeletedTips)(nil), "server_api_params.FriendDeletedTips") - proto.RegisterType((*BlackAddedTips)(nil), "server_api_params.BlackAddedTips") - proto.RegisterType((*BlackDeletedTips)(nil), "server_api_params.BlackDeletedTips") - proto.RegisterType((*FriendInfoChangedTips)(nil), "server_api_params.FriendInfoChangedTips") - proto.RegisterType((*UserInfoUpdatedTips)(nil), "server_api_params.UserInfoUpdatedTips") - proto.RegisterType((*ConversationUpdateTips)(nil), "server_api_params.ConversationUpdateTips") - proto.RegisterType((*ConversationSetPrivateTips)(nil), "server_api_params.ConversationSetPrivateTips") - proto.RegisterType((*DeleteMessageTips)(nil), "server_api_params.DeleteMessageTips") - proto.RegisterType((*RequestPagination)(nil), "server_api_params.RequestPagination") - proto.RegisterType((*ResponsePagination)(nil), "server_api_params.ResponsePagination") - proto.RegisterType((*SignalReq)(nil), "server_api_params.SignalReq") - proto.RegisterType((*SignalResp)(nil), "server_api_params.SignalResp") - proto.RegisterType((*InvitationInfo)(nil), "server_api_params.InvitationInfo") - proto.RegisterType((*ParticipantMetaData)(nil), "server_api_params.ParticipantMetaData") - proto.RegisterType((*SignalInviteReq)(nil), "server_api_params.SignalInviteReq") - proto.RegisterType((*SignalInviteReply)(nil), "server_api_params.SignalInviteReply") - proto.RegisterType((*SignalInviteInGroupReq)(nil), "server_api_params.SignalInviteInGroupReq") - proto.RegisterType((*SignalInviteInGroupReply)(nil), "server_api_params.SignalInviteInGroupReply") - proto.RegisterType((*SignalCancelReq)(nil), "server_api_params.SignalCancelReq") - proto.RegisterType((*SignalCancelReply)(nil), "server_api_params.SignalCancelReply") - proto.RegisterType((*SignalAcceptReq)(nil), "server_api_params.SignalAcceptReq") - proto.RegisterType((*SignalAcceptReply)(nil), "server_api_params.SignalAcceptReply") - proto.RegisterType((*SignalHungUpReq)(nil), "server_api_params.SignalHungUpReq") - proto.RegisterType((*SignalHungUpReply)(nil), "server_api_params.SignalHungUpReply") - proto.RegisterType((*SignalRejectReq)(nil), "server_api_params.SignalRejectReq") - proto.RegisterType((*SignalRejectReply)(nil), "server_api_params.SignalRejectReply") - proto.RegisterType((*DelMsgListReq)(nil), "server_api_params.DelMsgListReq") - proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") -} - -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_aba301ea11ce8970) } - -var fileDescriptor_ws_aba301ea11ce8970 = []byte{ - // 3512 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3b, 0xcd, 0x6f, 0x24, 0x47, - 0xf5, 0xbf, 0xee, 0xf1, 0x8c, 0x3d, 0x6f, 0xfc, 0x31, 0xee, 0xdd, 0x38, 0xf3, 0x33, 0x9b, 0xc5, - 0x74, 0xac, 0x24, 0x2c, 0xc1, 0x8b, 0x36, 0x04, 0x41, 0x3e, 0x16, 0xf9, 0x23, 0xfb, 0x91, 0xec, - 0xd8, 0x4e, 0xcf, 0x6e, 0x82, 0x08, 0xd2, 0xa6, 0x3d, 0x5d, 0x1e, 0xf7, 0xba, 0xa7, 0xab, 0xdd, - 0x1f, 0xde, 0x35, 0x17, 0x24, 0x90, 0x10, 0x37, 0x2e, 0x20, 0x24, 0x2e, 0x48, 0x5c, 0x10, 0x28, - 0x8a, 0x10, 0x02, 0xc4, 0x01, 0x21, 0x84, 0xb8, 0x71, 0xe1, 0xc0, 0x8d, 0x03, 0x12, 0x67, 0xfe, - 0x01, 0x24, 0xa4, 0xa0, 0xaa, 0x57, 0xdd, 0x5d, 0xd5, 0xdd, 0x63, 0xcf, 0x5a, 0x56, 0x76, 0xa3, - 0xe5, 0x36, 0xef, 0x75, 0xbd, 0x57, 0xef, 0xbb, 0x5e, 0x7d, 0x0c, 0xcc, 0x45, 0xce, 0xfe, 0xdd, - 0xfb, 0xd1, 0xe5, 0xfb, 0xd1, 0x4a, 0x10, 0xd2, 0x98, 0x1a, 0xf3, 0x11, 0x09, 0x0f, 0x49, 0x78, - 0xd7, 0x0e, 0xdc, 0xbb, 0x81, 0x1d, 0xda, 0xc3, 0x68, 0xf1, 0xf9, 0xad, 0x80, 0xf8, 0x77, 0x6f, - 0x76, 0x2f, 0x07, 0xfb, 0x83, 0xcb, 0x7c, 0xd4, 0xe5, 0x94, 0x2a, 0xb4, 0x83, 0x80, 0x84, 0x82, - 0xd6, 0xfc, 0xc7, 0x04, 0x34, 0xaf, 0x87, 0x34, 0x09, 0x6e, 0xfa, 0xbb, 0xd4, 0xe8, 0xc0, 0xe4, - 0x80, 0x03, 0x1b, 0x1d, 0x6d, 0x49, 0x7b, 0xa1, 0x69, 0xa5, 0xa0, 0x71, 0x01, 0x9a, 0xfc, 0xe7, - 0xa6, 0x3d, 0x24, 0x1d, 0x9d, 0x7f, 0xcb, 0x11, 0x86, 0x09, 0xd3, 0x3e, 0x8d, 0xdd, 0x5d, 0xb7, - 0x6f, 0xc7, 0x2e, 0xf5, 0x3b, 0x35, 0x3e, 0x40, 0xc1, 0xb1, 0x31, 0xae, 0x1f, 0x87, 0xd4, 0x49, - 0xfa, 0x7c, 0xcc, 0x04, 0x8e, 0x91, 0x71, 0x6c, 0xfe, 0x5d, 0xbb, 0x4f, 0xee, 0x58, 0xb7, 0x3a, - 0x75, 0x9c, 0x5f, 0x80, 0xc6, 0x12, 0xb4, 0xe8, 0x7d, 0x9f, 0x84, 0x77, 0x22, 0x12, 0xde, 0xdc, - 0xe8, 0x34, 0xf8, 0x57, 0x19, 0x65, 0x5c, 0x04, 0xe8, 0x87, 0xc4, 0x8e, 0xc9, 0x6d, 0x77, 0x48, - 0x3a, 0x93, 0x4b, 0xda, 0x0b, 0x33, 0x96, 0x84, 0x61, 0x1c, 0x86, 0x64, 0xb8, 0x43, 0xc2, 0x75, - 0x9a, 0xf8, 0x71, 0x67, 0x8a, 0x0f, 0x90, 0x51, 0xc6, 0x2c, 0xe8, 0xe4, 0x41, 0xa7, 0xc9, 0x59, - 0xeb, 0xe4, 0x81, 0xb1, 0x00, 0x8d, 0x28, 0xb6, 0xe3, 0x24, 0xea, 0xc0, 0x92, 0xf6, 0x42, 0xdd, - 0x12, 0x90, 0xb1, 0x0c, 0x33, 0x9c, 0x2f, 0x4d, 0xa5, 0x69, 0x71, 0x12, 0x15, 0x99, 0x59, 0xec, - 0xf6, 0x51, 0x40, 0x3a, 0xd3, 0x9c, 0x41, 0x8e, 0x30, 0x2e, 0x41, 0xdb, 0x27, 0xc4, 0x79, 0x87, - 0x84, 0xb9, 0xd5, 0x66, 0xf8, 0xa0, 0x12, 0xde, 0x78, 0x0e, 0x66, 0x3d, 0x4a, 0xf7, 0xbb, 0x5c, - 0x54, 0xe6, 0xa7, 0xce, 0x2c, 0x1f, 0x59, 0xc0, 0x1a, 0x2f, 0xc2, 0xbc, 0x1d, 0x04, 0xde, 0x11, - 0xa2, 0xae, 0x85, 0x2e, 0xf1, 0x9d, 0xce, 0x1c, 0x1f, 0x5a, 0xfe, 0x60, 0x7c, 0x09, 0x16, 0x64, - 0xff, 0xdc, 0x09, 0x9c, 0xd4, 0x76, 0x6d, 0x6e, 0x9a, 0x11, 0x5f, 0x8d, 0x15, 0x30, 0x94, 0x2f, - 0x68, 0x82, 0x79, 0x6e, 0x82, 0x8a, 0x2f, 0xe6, 0x0f, 0x6a, 0x30, 0x97, 0x45, 0xd8, 0x35, 0x1a, - 0xf6, 0x48, 0xfc, 0x18, 0xc7, 0x19, 0xc6, 0x40, 0x23, 0x8b, 0x81, 0xeb, 0x15, 0x7e, 0x62, 0xb1, - 0xd5, 0xba, 0xf2, 0xa9, 0x95, 0x01, 0xa5, 0x03, 0x8f, 0x60, 0x22, 0xed, 0x24, 0xbb, 0x2b, 0x37, - 0xfd, 0xf8, 0xa5, 0x2b, 0xef, 0xd8, 0x5e, 0x42, 0x2a, 0x9c, 0xb8, 0x5e, 0x72, 0xe2, 0xd4, 0xc9, - 0x6c, 0x8a, 0x1e, 0xbe, 0x59, 0xe5, 0xe1, 0xe6, 0xc9, 0x7c, 0xca, 0x54, 0xe6, 0x47, 0x3a, 0x9c, - 0xe3, 0x6e, 0x11, 0xd8, 0xc4, 0xf3, 0x4e, 0x28, 0x01, 0x0b, 0xd0, 0x48, 0xd0, 0xd9, 0xe8, 0x17, - 0x01, 0x31, 0x97, 0x85, 0xd4, 0x23, 0xb7, 0xc8, 0x21, 0xf1, 0xb8, 0x47, 0xea, 0x56, 0x8e, 0x30, - 0x16, 0x61, 0xea, 0x1e, 0x75, 0x7d, 0x1e, 0x58, 0x13, 0xfc, 0x63, 0x06, 0xb3, 0x6f, 0xbe, 0xdb, - 0xdf, 0xf7, 0x99, 0xaf, 0xd1, 0x0f, 0x19, 0x2c, 0xbb, 0xa8, 0xa1, 0xba, 0xe8, 0x39, 0x98, 0xb5, - 0x83, 0xa0, 0x6b, 0xfb, 0x03, 0x12, 0xe2, 0xa4, 0x93, 0x98, 0x0e, 0x2a, 0x96, 0x15, 0x04, 0x36, - 0x53, 0x8f, 0x26, 0x61, 0x9f, 0x70, 0x6b, 0xd7, 0x2d, 0x09, 0xc3, 0xf8, 0xd0, 0x80, 0x84, 0x52, - 0x1e, 0x63, 0xea, 0x17, 0xb0, 0x22, 0x24, 0x20, 0x0b, 0x09, 0x56, 0x48, 0x92, 0x98, 0xbc, 0xe1, - 0x3b, 0x5c, 0xa9, 0x96, 0x28, 0x24, 0x39, 0x8a, 0x15, 0x08, 0xd7, 0x3f, 0x74, 0xe3, 0xac, 0x5c, - 0x4d, 0x63, 0x81, 0x50, 0x90, 0xe6, 0x77, 0x35, 0x98, 0xdd, 0x4e, 0x76, 0x3c, 0xb7, 0xcf, 0x11, - 0xcc, 0xf8, 0xb9, 0x89, 0x35, 0xc5, 0xc4, 0xb2, 0xa1, 0xf4, 0xd1, 0x86, 0xaa, 0xa9, 0x86, 0x5a, - 0x80, 0xc6, 0x80, 0xf8, 0x0e, 0x09, 0x85, 0xe1, 0x05, 0x24, 0x14, 0xaa, 0xa7, 0x0a, 0x99, 0x7f, - 0xd2, 0x61, 0xea, 0x63, 0x16, 0x61, 0x09, 0x5a, 0xc1, 0x1e, 0xf5, 0xc9, 0x66, 0xc2, 0x82, 0x4f, - 0xc8, 0x22, 0xa3, 0x8c, 0xf3, 0x50, 0xdf, 0x71, 0xc3, 0x78, 0x8f, 0x7b, 0x7f, 0xc6, 0x42, 0x80, - 0x61, 0xc9, 0xd0, 0x76, 0xd1, 0xe5, 0x4d, 0x0b, 0x01, 0xa1, 0xd0, 0x54, 0xe6, 0x21, 0x75, 0x29, - 0x68, 0x96, 0x96, 0x82, 0x72, 0x04, 0x41, 0x65, 0x04, 0x5d, 0x82, 0xf6, 0xc0, 0xa3, 0x3b, 0xb6, - 0x67, 0x91, 0xfe, 0x61, 0x37, 0x1a, 0x6c, 0x05, 0x31, 0x77, 0x77, 0xdd, 0x2a, 0xe1, 0xcd, 0x7f, - 0x6b, 0x00, 0x98, 0x5a, 0xdc, 0x8c, 0x85, 0xf5, 0x4a, 0x2b, 0xaf, 0x57, 0x0b, 0xd0, 0x08, 0xc9, - 0xd0, 0x0e, 0xf7, 0xd3, 0x74, 0x42, 0xa8, 0x20, 0x7c, 0xad, 0x24, 0xfc, 0xab, 0x00, 0xbb, 0x7c, - 0x1e, 0xc6, 0x87, 0x9b, 0x95, 0x25, 0x7f, 0xa9, 0x05, 0x58, 0x49, 0x3d, 0x6a, 0x49, 0xc3, 0x59, - 0xae, 0xda, 0x8e, 0x23, 0x52, 0xa2, 0x8e, 0xb9, 0x9a, 0x21, 0x2a, 0x32, 0xa2, 0x71, 0x4c, 0x46, - 0x4c, 0x66, 0x01, 0xf4, 0x2f, 0x0d, 0x9a, 0x6b, 0x9e, 0xdd, 0xdf, 0x1f, 0x53, 0x75, 0x55, 0x45, - 0xbd, 0xa4, 0xe2, 0x75, 0x98, 0xd9, 0x61, 0xec, 0x52, 0x15, 0xb8, 0x15, 0x5a, 0x57, 0x3e, 0x53, - 0xa1, 0xa5, 0x9a, 0x40, 0x96, 0x4a, 0xa7, 0xaa, 0x3b, 0x71, 0xb2, 0xba, 0xf5, 0x63, 0xd4, 0xcd, - 0xd6, 0x04, 0xf3, 0x47, 0x35, 0x98, 0xe6, 0xa5, 0xd3, 0x22, 0x07, 0x09, 0x89, 0x62, 0xe3, 0x75, - 0x98, 0x4a, 0x52, 0x51, 0xb5, 0x71, 0x45, 0xcd, 0x48, 0x8c, 0x57, 0xc4, 0x9a, 0xc7, 0xe9, 0x75, - 0x4e, 0x7f, 0xa1, 0x82, 0x3e, 0x5b, 0x44, 0xad, 0x7c, 0x38, 0x5b, 0xed, 0xf6, 0x6c, 0xdf, 0xf1, - 0x88, 0x45, 0xa2, 0xc4, 0x8b, 0x45, 0xfd, 0x55, 0x70, 0x18, 0x69, 0x07, 0xdd, 0x68, 0x20, 0xd6, - 0x42, 0x01, 0x31, 0xeb, 0xe0, 0x38, 0xf6, 0x09, 0x55, 0xcf, 0x11, 0x2c, 0xa9, 0x43, 0x72, 0xc0, - 0x3d, 0x84, 0x29, 0x98, 0x82, 0xf9, 0x9c, 0xc2, 0x6a, 0x18, 0x08, 0x0a, 0x8e, 0xb9, 0x18, 0x61, - 0xce, 0x00, 0x9b, 0x2d, 0x09, 0x53, 0xea, 0xb5, 0xd4, 0x62, 0x0d, 0xa5, 0x62, 0x5d, 0x2a, 0xa9, - 0xad, 0xaa, 0x92, 0xfa, 0xf7, 0x1a, 0xcc, 0x60, 0x12, 0xa6, 0xae, 0xb9, 0xc8, 0xb2, 0x85, 0x0e, - 0x95, 0x58, 0x94, 0x30, 0x4c, 0x17, 0x06, 0x6d, 0xaa, 0xa5, 0x4d, 0xc1, 0xb1, 0x80, 0x66, 0xf0, - 0x35, 0xa5, 0xc4, 0xc9, 0xa8, 0x74, 0x96, 0xeb, 0x72, 0xa9, 0x93, 0x30, 0xac, 0x78, 0xc6, 0x54, - 0x89, 0xb1, 0x0c, 0x66, 0xb4, 0x31, 0xcd, 0xe6, 0xc7, 0x28, 0x93, 0x30, 0xcc, 0x4b, 0x31, 0x4d, - 0xe7, 0x46, 0x53, 0xe7, 0x08, 0xe4, 0x2c, 0xe6, 0xc5, 0x25, 0x2e, 0x83, 0x4b, 0xb1, 0xd1, 0x3c, - 0x36, 0x36, 0x40, 0x89, 0x0d, 0x35, 0x45, 0x5b, 0xa5, 0x14, 0x5d, 0x86, 0x19, 0xe4, 0x53, 0x58, - 0xe2, 0x14, 0xa4, 0x1a, 0x61, 0x33, 0xc5, 0x08, 0x53, 0x63, 0x64, 0x76, 0x44, 0x8c, 0xcc, 0x65, - 0x79, 0xf7, 0x2b, 0x1d, 0x60, 0x83, 0x04, 0x76, 0x18, 0x0f, 0x89, 0x1f, 0x33, 0xf5, 0x9c, 0x0c, - 0xca, 0x9c, 0xab, 0xe0, 0xe4, 0x95, 0x49, 0x57, 0x57, 0x26, 0x03, 0x26, 0xb8, 0xc1, 0xd1, 0x9b, - 0xfc, 0x37, 0x33, 0x66, 0x60, 0x87, 0xc8, 0x0d, 0x53, 0x25, 0x83, 0xd9, 0xca, 0x43, 0x43, 0x47, - 0xac, 0x55, 0x75, 0x0b, 0x01, 0x56, 0x42, 0xf2, 0xf9, 0x78, 0xa7, 0xdf, 0xc0, 0x95, 0x44, 0xc5, - 0x9e, 0xb8, 0x39, 0xb9, 0x04, 0xed, 0x28, 0xd9, 0xc9, 0x95, 0xdb, 0x4c, 0x86, 0x22, 0x69, 0x4a, - 0x78, 0x66, 0x54, 0xdc, 0xb5, 0xb0, 0x41, 0xb8, 0xb8, 0xe5, 0x88, 0x62, 0xb7, 0x62, 0x7e, 0xa0, - 0x43, 0x7b, 0x2b, 0x1c, 0xd8, 0xbe, 0xfb, 0xcd, 0xac, 0x2b, 0x3f, 0xd5, 0x22, 0xbf, 0x04, 0x2d, - 0xe2, 0x0f, 0x3c, 0x37, 0xda, 0xdb, 0xcc, 0xed, 0x26, 0xa3, 0x64, 0x63, 0x4f, 0x8c, 0x6a, 0x03, - 0xea, 0x4a, 0x1b, 0xb0, 0x00, 0x8d, 0x21, 0xdd, 0x71, 0xbd, 0x34, 0xee, 0x05, 0xc4, 0x63, 0x9e, - 0x78, 0x84, 0xf7, 0x03, 0x59, 0xcc, 0xa7, 0x88, 0xbc, 0x35, 0x98, 0xaa, 0x6c, 0x0d, 0x9a, 0x72, - 0x6b, 0xa0, 0x1a, 0x1e, 0x4a, 0x86, 0x47, 0x73, 0xb5, 0x32, 0x73, 0xfd, 0x51, 0x83, 0x76, 0x6e, - 0x6e, 0xec, 0x8d, 0x47, 0x9a, 0xab, 0x18, 0x81, 0x7a, 0x45, 0x04, 0x66, 0x71, 0x53, 0x93, 0xe3, - 0x86, 0x45, 0x1a, 0x8d, 0x5c, 0x69, 0x83, 0x92, 0xc1, 0x6c, 0x36, 0x8f, 0xd8, 0x92, 0xb1, 0x10, - 0x92, 0xb6, 0xa3, 0x0d, 0x65, 0x3b, 0x5a, 0x5c, 0x8d, 0x7f, 0xa7, 0xc1, 0x79, 0xe6, 0xe5, 0x92, - 0x1a, 0x5b, 0xd0, 0xa6, 0x85, 0x48, 0x10, 0xcb, 0xd5, 0xb3, 0x15, 0xcb, 0x4d, 0x31, 0x68, 0xac, - 0x12, 0x31, 0x63, 0xe8, 0x14, 0x26, 0x11, 0xeb, 0x57, 0x15, 0xc3, 0xa2, 0x3c, 0x56, 0x89, 0xd8, - 0xfc, 0xbd, 0x06, 0x6d, 0x5c, 0x20, 0xa5, 0x3c, 0x3f, 0x73, 0xb1, 0xdf, 0x85, 0xf3, 0xc5, 0x99, - 0x6f, 0xb9, 0x51, 0xdc, 0xd1, 0x97, 0x6a, 0xe3, 0x8a, 0x5e, 0xc9, 0x80, 0xe5, 0xda, 0xd3, 0xdb, - 0x89, 0xe7, 0x75, 0x49, 0x14, 0xd9, 0x03, 0xb2, 0x76, 0xd4, 0x23, 0x07, 0xec, 0x83, 0x45, 0x0e, - 0x46, 0xc6, 0x10, 0xeb, 0x96, 0x78, 0xbb, 0xe1, 0x52, 0x3f, 0x0b, 0x21, 0x19, 0xc5, 0xd2, 0x2a, - 0x42, 0x3e, 0x9d, 0xda, 0x52, 0x8d, 0x2d, 0xc4, 0x02, 0x34, 0xde, 0x87, 0x69, 0xde, 0x09, 0x88, - 0x69, 0x3a, 0x13, 0x5c, 0x81, 0xd7, 0x2a, 0x7b, 0x8f, 0x4a, 0xa9, 0xb0, 0xa7, 0x10, 0xf0, 0x1b, - 0x7e, 0x1c, 0x1e, 0x59, 0x0a, 0xc7, 0xc5, 0xf7, 0x60, 0xbe, 0x34, 0xc4, 0x68, 0x43, 0x6d, 0x9f, - 0x1c, 0x09, 0x3d, 0xd8, 0x4f, 0xe3, 0x0b, 0x50, 0x3f, 0x64, 0x1b, 0x4d, 0xe1, 0xfd, 0xc5, 0x0a, - 0x09, 0x84, 0xcc, 0x16, 0x0e, 0x7c, 0x45, 0xff, 0xb2, 0x66, 0x3e, 0x9b, 0x29, 0x26, 0xeb, 0xa8, - 0x29, 0x3a, 0x9a, 0x6f, 0x41, 0xab, 0x1b, 0x0d, 0x36, 0xec, 0xd8, 0xe6, 0x03, 0x5f, 0x83, 0xd6, - 0x30, 0x07, 0xf9, 0xe0, 0xea, 0xf9, 0x04, 0x91, 0x25, 0x0f, 0x37, 0xff, 0xaa, 0x43, 0xa7, 0xda, - 0x14, 0x51, 0xc0, 0x64, 0x20, 0x61, 0xb8, 0x4e, 0x1d, 0xc2, 0x55, 0xab, 0x5b, 0x29, 0xc8, 0x7c, - 0x47, 0xc2, 0x90, 0xad, 0x61, 0xa2, 0x55, 0x47, 0xc8, 0x58, 0x81, 0x09, 0x2f, 0x75, 0xcb, 0xf1, - 0x52, 0xf0, 0x71, 0xc6, 0x10, 0xda, 0xdc, 0xba, 0x92, 0x42, 0xc2, 0x67, 0xab, 0x63, 0xfb, 0x2c, - 0x0a, 0xd0, 0x69, 0x12, 0x0f, 0x74, 0x5c, 0x89, 0xf5, 0x62, 0x1f, 0x9e, 0xaa, 0x1c, 0x5a, 0xe1, - 0xc0, 0x2f, 0xaa, 0x0e, 0xbc, 0x38, 0x5a, 0x95, 0xa2, 0x13, 0x03, 0x30, 0xae, 0x93, 0xb8, 0x6b, - 0x3f, 0x58, 0xf5, 0x9d, 0xae, 0xeb, 0xf7, 0xc8, 0x01, 0x8b, 0xf6, 0x25, 0x68, 0x89, 0x63, 0x83, - 0xcc, 0x4d, 0x4d, 0x4b, 0x46, 0x8d, 0x3c, 0x4d, 0x28, 0xe4, 0x43, 0xad, 0x94, 0x0f, 0xe6, 0x55, - 0x98, 0x96, 0xa7, 0xe3, 0x8b, 0x88, 0xfd, 0xa0, 0x47, 0x0e, 0xb8, 0x42, 0x33, 0x96, 0x80, 0x38, - 0x9e, 0x8f, 0x10, 0x3b, 0x0c, 0x01, 0x99, 0x7f, 0xd1, 0xe1, 0x5c, 0x49, 0xe4, 0x28, 0x78, 0x58, - 0x3e, 0x72, 0xbc, 0xd4, 0x46, 0xc5, 0xcb, 0x84, 0x12, 0x2f, 0xfb, 0x30, 0x8f, 0x4e, 0x92, 0xa6, - 0xee, 0xd4, 0x79, 0x00, 0xbc, 0x5e, 0xd5, 0xf0, 0x97, 0x85, 0x14, 0xbe, 0x97, 0xb0, 0xe8, 0xfc, - 0x32, 0xdf, 0x45, 0x02, 0x0b, 0xd5, 0x83, 0x2b, 0xdc, 0xff, 0xb2, 0xea, 0xfe, 0x4f, 0x57, 0xb9, - 0x5f, 0x96, 0x44, 0xf2, 0xff, 0x01, 0xcc, 0xb1, 0xa2, 0xda, 0x23, 0xbe, 0xd3, 0x8d, 0x06, 0xdc, - 0x90, 0x4b, 0xd0, 0x42, 0xfa, 0x6e, 0x34, 0xc8, 0x37, 0x80, 0x12, 0x8a, 0x8d, 0xe8, 0x7b, 0x2e, - 0x2b, 0x9e, 0x7c, 0x84, 0x28, 0x7a, 0x12, 0x8a, 0x2d, 0x90, 0x11, 0x11, 0x27, 0x2c, 0xcc, 0xba, - 0x35, 0x2b, 0x83, 0xcd, 0xdf, 0x36, 0x60, 0x52, 0x44, 0x23, 0x5f, 0x14, 0xd9, 0x9e, 0x3b, 0x2b, - 0xab, 0x08, 0x61, 0x5f, 0xdb, 0x3f, 0xcc, 0xc3, 0x0b, 0x21, 0xf9, 0x78, 0xab, 0xa6, 0x1e, 0x6f, - 0x15, 0x64, 0x9a, 0x28, 0xcb, 0x54, 0xd0, 0xab, 0x5e, 0xd6, 0x8b, 0xb5, 0x71, 0xbc, 0xb3, 0xd9, - 0xf6, 0xec, 0x78, 0x97, 0x86, 0x43, 0xb1, 0x85, 0xae, 0x5b, 0x25, 0x3c, 0x6b, 0x1d, 0x11, 0x97, - 0xf5, 0xfe, 0xb8, 0x84, 0x17, 0xb0, 0xac, 0xd3, 0x46, 0x4c, 0xba, 0x07, 0xc0, 0x73, 0x0e, 0x15, - 0x89, 0xb2, 0x45, 0x91, 0x4b, 0x7d, 0xde, 0x85, 0x62, 0xab, 0x2f, 0xa3, 0x98, 0xe6, 0xc3, 0x68, - 0x70, 0x2d, 0xa4, 0x43, 0xb1, 0xbd, 0x4a, 0x41, 0xae, 0x39, 0xf5, 0xe3, 0xb4, 0x83, 0xc5, 0x13, - 0x0e, 0x19, 0xc5, 0x68, 0x05, 0xc8, 0xfb, 0xfc, 0x69, 0x2b, 0x05, 0x59, 0x2c, 0x45, 0xe4, 0x40, - 0x34, 0xef, 0xec, 0xa7, 0xe2, 0xb9, 0x39, 0xd5, 0x73, 0x85, 0x6e, 0xac, 0xcd, 0xbf, 0xca, 0xdd, - 0x58, 0xde, 0xe2, 0xcc, 0x2b, 0x2d, 0xce, 0x2a, 0x4c, 0xd2, 0x80, 0xa5, 0x7f, 0xd4, 0x31, 0x78, - 0xba, 0x3c, 0x3f, 0xba, 0x40, 0xad, 0x6c, 0xe1, 0x48, 0x4c, 0x8c, 0x94, 0xce, 0xb8, 0x05, 0x73, - 0x74, 0x77, 0xd7, 0x73, 0x7d, 0xb2, 0x9d, 0x44, 0x7b, 0x7c, 0xab, 0x7d, 0x8e, 0x07, 0xbb, 0x59, - 0xd5, 0x44, 0xa8, 0x23, 0xad, 0x22, 0x29, 0xeb, 0xfc, 0xec, 0x18, 0x37, 0x39, 0xbc, 0xc0, 0x9d, - 0xe7, 0x05, 0x4e, 0xc1, 0xf1, 0x73, 0x42, 0xa9, 0xd0, 0x3f, 0xc5, 0x0d, 0x27, 0xa3, 0x90, 0x4b, - 0x6c, 0xf7, 0xf7, 0x08, 0x3f, 0x34, 0xea, 0x2c, 0x60, 0xff, 0x28, 0xe3, 0x44, 0x77, 0xf7, 0x74, - 0xda, 0xdd, 0x2d, 0xbe, 0x02, 0xd3, 0xb2, 0x82, 0x15, 0xc9, 0x7c, 0x5e, 0x4e, 0xe6, 0x29, 0x39, - 0x57, 0x7f, 0xa8, 0xc1, 0x5c, 0x41, 0x35, 0x36, 0x3a, 0x76, 0x63, 0x8f, 0x08, 0x0e, 0x08, 0xb0, - 0xdd, 0x91, 0x43, 0xa2, 0xbe, 0x48, 0x1e, 0xfe, 0x5b, 0x48, 0x52, 0xcb, 0xb6, 0xec, 0x26, 0x4c, - 0xbb, 0x5b, 0x3d, 0xc6, 0xa8, 0x47, 0x13, 0xdf, 0xc9, 0x0e, 0xda, 0x25, 0x1c, 0xdf, 0xb6, 0x6f, - 0xf5, 0xd6, 0x6c, 0x67, 0x40, 0xf0, 0xda, 0xa5, 0xce, 0x65, 0x52, 0x91, 0xa6, 0x03, 0x53, 0xb7, - 0xdd, 0x20, 0x5a, 0xa7, 0xc3, 0x21, 0x0b, 0x01, 0x87, 0xc4, 0xac, 0x8f, 0xd7, 0xb8, 0xc1, 0x04, - 0xc4, 0xac, 0xe9, 0x90, 0x5d, 0x3b, 0xf1, 0x62, 0x36, 0x34, 0x2d, 0x19, 0x12, 0x8a, 0x1f, 0x21, - 0x44, 0xd4, 0xdf, 0x40, 0x6a, 0x94, 0x53, 0xc2, 0x98, 0x7f, 0xd6, 0xa1, 0xcd, 0x2b, 0xe2, 0x3a, - 0x0f, 0x38, 0x87, 0x13, 0x5d, 0x81, 0x3a, 0x2f, 0x00, 0xa2, 0xa3, 0x3c, 0xfe, 0xdc, 0x05, 0x87, - 0x1a, 0x57, 0xa1, 0x41, 0x03, 0xde, 0x86, 0x62, 0xb9, 0x7c, 0x6e, 0x14, 0x91, 0x7a, 0xb4, 0x6e, - 0x09, 0x2a, 0xe3, 0x1a, 0xc0, 0x30, 0xef, 0x3a, 0xb1, 0x79, 0x18, 0x97, 0x87, 0x44, 0xc9, 0x8c, - 0x9b, 0xad, 0x8b, 0xd9, 0xf9, 0x7a, 0xcd, 0x52, 0x91, 0xc6, 0x26, 0xcc, 0x72, 0xb1, 0xb7, 0xd2, - 0x03, 0x38, 0xee, 0x83, 0xf1, 0x67, 0x2c, 0x50, 0x9b, 0x3f, 0xd5, 0x84, 0x19, 0xd9, 0xd7, 0x1e, - 0x41, 0xdb, 0xe7, 0x26, 0xd1, 0x4e, 0x65, 0x92, 0x45, 0x98, 0x1a, 0x26, 0xd2, 0x79, 0x60, 0xcd, - 0xca, 0xe0, 0xdc, 0x45, 0xb5, 0xb1, 0x5d, 0x64, 0xfe, 0x4c, 0x83, 0xce, 0x9b, 0xd4, 0xf5, 0xf9, - 0x87, 0xd5, 0x20, 0xf0, 0xc4, 0x35, 0xcc, 0xa9, 0x7d, 0xfe, 0x55, 0x68, 0xda, 0xc8, 0xc6, 0x8f, - 0x85, 0xdb, 0xc7, 0x38, 0xe3, 0xcb, 0x69, 0xa4, 0x83, 0x96, 0x9a, 0x7c, 0xd0, 0x62, 0x7e, 0xa8, - 0xc1, 0x2c, 0x1a, 0xe5, 0xed, 0xc4, 0x8d, 0x4f, 0x2d, 0xdf, 0x1a, 0x4c, 0x1d, 0x24, 0x6e, 0x7c, - 0x8a, 0xa8, 0xcc, 0xe8, 0xca, 0xf1, 0x54, 0xab, 0x88, 0x27, 0xf3, 0x97, 0x1a, 0x5c, 0x28, 0x9a, - 0x75, 0xb5, 0xdf, 0x27, 0xc1, 0xa3, 0x4c, 0x29, 0xe5, 0xa0, 0x69, 0xa2, 0x70, 0xd0, 0x54, 0x29, - 0xb2, 0x45, 0xee, 0x91, 0xfe, 0xe3, 0x2b, 0xf2, 0x77, 0x74, 0xf8, 0xff, 0xeb, 0x59, 0xe2, 0xdd, - 0x0e, 0x6d, 0x3f, 0xda, 0x25, 0x61, 0xf8, 0x08, 0xe5, 0xbd, 0x05, 0x33, 0x3e, 0xb9, 0x9f, 0xcb, - 0x24, 0xd2, 0x71, 0x5c, 0x36, 0x2a, 0xf1, 0x78, 0xb5, 0xcb, 0xfc, 0x8f, 0x06, 0x6d, 0xe4, 0xf3, - 0x96, 0xdb, 0xdf, 0x7f, 0x84, 0xca, 0x6f, 0xc2, 0xec, 0x3e, 0x97, 0x80, 0x41, 0xa7, 0x28, 0xdb, - 0x05, 0xea, 0x31, 0xd5, 0xff, 0x48, 0x83, 0xf9, 0xf4, 0xf6, 0xf7, 0xd0, 0x7d, 0x94, 0xc1, 0xba, - 0x0d, 0x73, 0x78, 0xd2, 0x7e, 0x5a, 0x03, 0x14, 0xc9, 0xc7, 0xb4, 0xc0, 0x6f, 0x34, 0x98, 0x43, - 0x4e, 0x6f, 0xf8, 0x31, 0x09, 0x4f, 0xad, 0xff, 0x0d, 0x68, 0x11, 0x3f, 0x0e, 0x6d, 0xff, 0x34, - 0x15, 0x52, 0x26, 0x1d, 0xb3, 0x48, 0x7e, 0xa8, 0x81, 0xc1, 0x59, 0x6d, 0xb8, 0xd1, 0xd0, 0x8d, - 0xa2, 0x47, 0xe8, 0xba, 0xf1, 0x04, 0xfe, 0xb1, 0x0e, 0xe7, 0x25, 0x2e, 0xdd, 0x24, 0x7e, 0xdc, - 0x45, 0x36, 0x36, 0xa0, 0xc9, 0x7a, 0x04, 0xf9, 0x1e, 0x74, 0xdc, 0x89, 0x72, 0x42, 0xd6, 0xc5, - 0x72, 0xa0, 0x47, 0xfa, 0xd4, 0x77, 0x22, 0xde, 0x1c, 0xcd, 0x58, 0x0a, 0x8e, 0x95, 0xa1, 0x45, - 0x89, 0xcd, 0xba, 0xed, 0xf7, 0x89, 0xf7, 0xc4, 0x98, 0xc8, 0xfc, 0x85, 0x06, 0xb3, 0x38, 0xe4, - 0xf1, 0x57, 0x99, 0xad, 0xf5, 0x18, 0xc8, 0x9f, 0x18, 0x2f, 0xb1, 0xf0, 0x5a, 0x90, 0xb8, 0xc8, - 0x7d, 0xf5, 0xe3, 0x1b, 0x5a, 0x37, 0xa0, 0xd5, 0xdf, 0xb3, 0xfd, 0xc1, 0xa9, 0x82, 0x4b, 0x26, - 0x35, 0x63, 0x78, 0x5a, 0x3e, 0xb4, 0x5f, 0xc7, 0x4f, 0x5c, 0xfd, 0x97, 0x0a, 0xaa, 0x1c, 0xfb, - 0xce, 0xe1, 0xe1, 0x8c, 0xbe, 0x0f, 0xf3, 0x78, 0x53, 0x2c, 0xf5, 0x84, 0x46, 0x07, 0x26, 0x6d, - 0x07, 0x8f, 0x2e, 0x34, 0x4e, 0x94, 0x82, 0xea, 0x4b, 0x02, 0xf1, 0x2e, 0x2d, 0x7f, 0x49, 0x70, - 0x11, 0xc0, 0x76, 0x9c, 0x77, 0x69, 0xe8, 0xb8, 0x7e, 0xda, 0xe0, 0x4b, 0x18, 0xf3, 0x4d, 0x98, - 0xbe, 0x16, 0xd2, 0xe1, 0x6d, 0xe9, 0xce, 0xf7, 0xd8, 0x5b, 0x69, 0xf9, 0xbe, 0x58, 0x57, 0xef, - 0x8b, 0xcd, 0x6f, 0xc0, 0x53, 0x25, 0xc1, 0xb9, 0xb1, 0xd6, 0xf1, 0x2a, 0x3b, 0x9d, 0x44, 0x84, - 0x4c, 0xd5, 0x59, 0x9e, 0x2c, 0x8b, 0xa5, 0x10, 0x99, 0xdf, 0xd6, 0xe0, 0x99, 0x12, 0xfb, 0xd5, - 0x20, 0x08, 0xe9, 0xa1, 0xf0, 0xc9, 0x59, 0x4c, 0xa3, 0x36, 0xbf, 0x7a, 0xb1, 0xf9, 0xad, 0x14, - 0x42, 0x69, 0xd8, 0x3f, 0x06, 0x21, 0x7e, 0xae, 0xc1, 0x9c, 0x10, 0xc2, 0x71, 0xc4, 0xb4, 0x2f, - 0x43, 0x03, 0x1f, 0xd3, 0x88, 0x09, 0x9f, 0xa9, 0x9c, 0x30, 0x7d, 0x04, 0x64, 0x89, 0xc1, 0xe5, - 0x88, 0xd4, 0xab, 0x32, 0xea, 0x2b, 0x59, 0xb0, 0x8f, 0xfd, 0xdc, 0x45, 0x10, 0x98, 0x5f, 0x4b, - 0x83, 0x79, 0x83, 0x78, 0xe4, 0x2c, 0x6d, 0x64, 0xde, 0x81, 0x59, 0xfe, 0xb2, 0x27, 0xb7, 0xc1, - 0x99, 0xb0, 0x7d, 0x17, 0xda, 0x9c, 0xed, 0x99, 0xcb, 0x9b, 0x65, 0x07, 0xb3, 0x8f, 0x5c, 0x4a, - 0xce, 0x84, 0xfb, 0xe7, 0xe1, 0x5c, 0x6a, 0x7b, 0x7c, 0x11, 0x8b, 0xbc, 0x47, 0xdc, 0xed, 0x99, - 0xef, 0xc3, 0xc2, 0x3a, 0xf5, 0x0f, 0x49, 0x18, 0x29, 0x8f, 0x68, 0x91, 0x42, 0x49, 0x7e, 0x01, - 0x19, 0x2b, 0x60, 0xf4, 0x25, 0x0a, 0x71, 0xba, 0xa8, 0xf3, 0xd3, 0xc5, 0x8a, 0x2f, 0xe6, 0x3d, - 0x58, 0x94, 0x67, 0xe8, 0x91, 0x78, 0x3b, 0x74, 0x0f, 0xa5, 0x59, 0xc4, 0x21, 0xb8, 0xa6, 0x1c, - 0x82, 0xe7, 0x87, 0xe6, 0xba, 0x72, 0x68, 0x7e, 0x01, 0x9a, 0x6e, 0x24, 0x18, 0xf0, 0x20, 0x9c, - 0xb2, 0x72, 0x84, 0x69, 0xc3, 0x3c, 0xba, 0x4b, 0x5c, 0x4a, 0xf1, 0x29, 0x16, 0x61, 0x0a, 0x63, - 0x30, 0x9b, 0x24, 0x83, 0x47, 0x5e, 0xf1, 0x8c, 0xbc, 0xd0, 0x34, 0x7b, 0x30, 0x2f, 0x1e, 0xee, - 0x6c, 0xdb, 0x03, 0xd7, 0xc7, 0xa2, 0x7c, 0x11, 0x20, 0xb0, 0x07, 0xe9, 0x53, 0x41, 0xbc, 0x9a, - 0x93, 0x30, 0xec, 0x7b, 0xb4, 0x47, 0xef, 0x8b, 0xef, 0x3a, 0x7e, 0xcf, 0x31, 0xe6, 0x3b, 0x60, - 0x58, 0x24, 0x0a, 0xa8, 0x1f, 0x11, 0x89, 0xeb, 0x12, 0xb4, 0xd6, 0x93, 0x30, 0x24, 0x3e, 0x9b, - 0x2a, 0x7d, 0x0b, 0x27, 0xa3, 0x18, 0xdf, 0x5e, 0xce, 0x17, 0x8f, 0xf1, 0x25, 0x8c, 0xf9, 0x93, - 0x1a, 0x34, 0x7b, 0xee, 0xc0, 0xb7, 0x3d, 0x8b, 0x1c, 0x18, 0xaf, 0x41, 0x03, 0xb7, 0x38, 0x22, - 0xb2, 0xaa, 0x8e, 0x95, 0x71, 0x34, 0xee, 0xe5, 0x2c, 0x72, 0x70, 0xe3, 0xff, 0x2c, 0x41, 0x63, - 0xbc, 0x9d, 0x3e, 0x6f, 0xba, 0x89, 0x47, 0x56, 0x62, 0xbd, 0xfb, 0xec, 0x09, 0x4c, 0xc4, 0x68, - 0xe4, 0xa5, 0x72, 0x60, 0x02, 0xf5, 0x79, 0x0b, 0x24, 0xca, 0xc9, 0x68, 0x81, 0xb0, 0x53, 0x12, - 0x02, 0x21, 0x0d, 0xa3, 0xb6, 0xf9, 0xa1, 0x8e, 0x58, 0xd9, 0x47, 0x53, 0xe3, 0xd9, 0x8f, 0xa0, - 0x46, 0x1a, 0x46, 0xbd, 0x97, 0xf8, 0x83, 0x3b, 0x81, 0x38, 0x6b, 0x1c, 0x4d, 0x7d, 0x83, 0x0f, - 0x13, 0xd4, 0x48, 0xc3, 0xa8, 0x43, 0x5e, 0xec, 0xb9, 0xd1, 0x8f, 0xa3, 0xc6, 0x35, 0x41, 0x50, - 0x23, 0xcd, 0x5a, 0x13, 0x26, 0x03, 0xfb, 0xc8, 0xa3, 0xb6, 0x63, 0x7e, 0x50, 0x03, 0x48, 0x07, - 0x46, 0xbc, 0x31, 0x52, 0x5c, 0xb4, 0x7c, 0xa2, 0x8b, 0x02, 0xef, 0x48, 0x72, 0x52, 0xaf, 0xda, - 0x49, 0x9f, 0x1b, 0xd7, 0x49, 0xc8, 0xad, 0xe0, 0xa6, 0xab, 0x05, 0x37, 0x2d, 0x9f, 0xe8, 0x26, - 0x21, 0x94, 0x70, 0xd4, 0xd5, 0x82, 0xa3, 0x96, 0x4f, 0x74, 0x94, 0xa0, 0x17, 0xae, 0xba, 0x5a, - 0x70, 0xd5, 0xf2, 0x89, 0xae, 0x12, 0xf4, 0xc2, 0x59, 0x57, 0x0b, 0xce, 0x5a, 0x3e, 0xd1, 0x59, - 0x82, 0xbe, 0xec, 0xae, 0xbf, 0xe9, 0x30, 0xcb, 0x4d, 0x86, 0x15, 0xce, 0xdf, 0xa5, 0xe5, 0x67, - 0x7f, 0x5a, 0xc5, 0xb3, 0x3f, 0xe3, 0x45, 0x98, 0x47, 0x04, 0x91, 0xae, 0x64, 0xb0, 0x68, 0x96, - 0x3f, 0xf0, 0x4b, 0xa8, 0x24, 0x8a, 0xe9, 0x70, 0xc3, 0x8e, 0xed, 0xb4, 0x59, 0xcb, 0x31, 0xf2, - 0x15, 0xe1, 0x44, 0xe9, 0x05, 0x7c, 0x48, 0xe9, 0x30, 0xbb, 0xfb, 0x13, 0x10, 0xa3, 0x88, 0xdd, - 0x21, 0xa1, 0x49, 0x2c, 0xca, 0x44, 0x0a, 0xe2, 0x5b, 0x2d, 0xc7, 0xb5, 0xf9, 0xc5, 0x9a, 0x78, - 0xc8, 0x94, 0x21, 0x78, 0x65, 0xcb, 0x2f, 0x0a, 0xc5, 0x0b, 0xf5, 0x1c, 0x33, 0xc6, 0xa5, 0x1e, - 0xff, 0xb3, 0x83, 0x1b, 0xbb, 0xf2, 0x03, 0xa7, 0xba, 0xa5, 0xe0, 0xcc, 0x7f, 0x6a, 0x70, 0x6e, - 0xdb, 0x0e, 0x63, 0xb7, 0xef, 0x06, 0xb6, 0x1f, 0x77, 0x49, 0x6c, 0x73, 0x3d, 0x95, 0x67, 0xa7, - 0xda, 0xc3, 0x3d, 0x3b, 0xdd, 0x86, 0xb9, 0x81, 0xba, 0x63, 0x79, 0xc8, 0xcd, 0x46, 0x91, 0x5c, - 0x79, 0x43, 0x5b, 0x7b, 0xe8, 0x37, 0xb4, 0xe6, 0xf7, 0x74, 0x98, 0x2b, 0x94, 0xd7, 0x63, 0xd7, - 0xa6, 0x55, 0x00, 0x37, 0x0b, 0xb5, 0x63, 0x0e, 0xf4, 0xd5, 0x78, 0xb4, 0x24, 0xa2, 0xaa, 0x1b, - 0xc5, 0xda, 0xe9, 0x6f, 0x14, 0x6f, 0x40, 0x2b, 0xc8, 0x9d, 0x74, 0xcc, 0x7e, 0xaa, 0xc2, 0x95, - 0x96, 0x4c, 0x6a, 0xbe, 0x07, 0xf3, 0xa5, 0x2a, 0xc6, 0xaf, 0xf9, 0xe8, 0x3e, 0xf1, 0xb3, 0x6b, - 0x3e, 0x06, 0x48, 0x01, 0xad, 0x17, 0x03, 0xda, 0x73, 0x0f, 0xe5, 0x07, 0xfd, 0x02, 0x34, 0xbf, - 0xaf, 0xc3, 0x42, 0xf5, 0x0a, 0xf4, 0xa4, 0x9a, 0x7b, 0x07, 0x3a, 0xa3, 0xaa, 0xfd, 0x99, 0x59, - 0x3d, 0x8f, 0xee, 0x6c, 0xad, 0x7e, 0x52, 0xcd, 0x7d, 0x2e, 0x8d, 0x6e, 0x69, 0x39, 0x34, 0x7f, - 0x9d, 0xd9, 0x27, 0xeb, 0x46, 0x9e, 0x50, 0xfb, 0x18, 0x97, 0xa0, 0x8d, 0x6a, 0x4a, 0x4f, 0x50, - 0xb0, 0xb9, 0x2d, 0xe1, 0xf3, 0x4a, 0x21, 0xb5, 0x06, 0x67, 0x16, 0xb3, 0x7f, 0xd0, 0x52, 0x9f, - 0x64, 0x3d, 0xde, 0x27, 0xca, 0x27, 0x79, 0xa4, 0x49, 0x8d, 0x8f, 0x14, 0x69, 0x59, 0xef, 0xf9, - 0xbf, 0x48, 0x3b, 0x39, 0xd2, 0x32, 0x5b, 0x4a, 0x4d, 0xa0, 0xf9, 0x2d, 0x98, 0xd9, 0x20, 0x5e, - 0x37, 0x1a, 0xa4, 0x6f, 0x64, 0xcf, 0x74, 0x33, 0x59, 0x7c, 0x49, 0x38, 0x51, 0x7e, 0x49, 0xb8, - 0x06, 0xb3, 0xb2, 0x00, 0xa7, 0x79, 0x03, 0xba, 0x76, 0xe1, 0xeb, 0x8b, 0x2b, 0xe2, 0xbf, 0xd5, - 0xaf, 0x96, 0x8c, 0xb8, 0xd3, 0xe0, 0xff, 0xc6, 0x7c, 0xe9, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, - 0x36, 0xc8, 0xed, 0x00, 0xb4, 0x3d, 0x00, 0x00, + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_sdk_ws_ws_proto_rawDesc, + NumEnums: 0, + NumMessages: 80, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_sdk_ws_ws_proto_goTypes, + DependencyIndexes: file_sdk_ws_ws_proto_depIdxs, + MessageInfos: file_sdk_ws_ws_proto_msgTypes, + }.Build() + File_sdk_ws_ws_proto = out.File + file_sdk_ws_ws_proto_rawDesc = nil + file_sdk_ws_ws_proto_goTypes = nil + file_sdk_ws_ws_proto_depIdxs = nil } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 7c0a6813a..b43ec2057 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -72,9 +72,14 @@ message UserInfo{ uint32 birth = 6; string email = 7; string ex = 8; - uint32 createTime = 9; - int32 appMangerLevel = 10; - int32 globalRecvMsgOpt = 11; + string createIp = 9; + uint32 createTime = 10; + string LastLoginIp =11; + uint32 LastLoginTime = 12; + int32 LoginTimes = 13; + int32 LoginLimit = 14; + int32 appMangerLevel = 15; + int32 globalRecvMsgOpt = 16; } message FriendInfo{ diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 41e69b7f9..c77d3e4af 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -1,2743 +1,4548 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.15.5 // source: user/user.proto -package user // import "./user" - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" -import sdk_ws "Open_IM/pkg/proto/sdk_ws" +package user import ( - context "golang.org/x/net/context" + sdk_ws "Open_IM/pkg/proto/sdk_ws" + context "context" grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) type CommonResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ErrCode int32 `protobuf:"varint,1,opt,name=errCode,proto3" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg,omitempty"` } -func (m *CommonResp) Reset() { *m = CommonResp{} } -func (m *CommonResp) String() string { return proto.CompactTextString(m) } -func (*CommonResp) ProtoMessage() {} +func (x *CommonResp) Reset() { + *x = CommonResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommonResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommonResp) ProtoMessage() {} + +func (x *CommonResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 CommonResp.ProtoReflect.Descriptor instead. func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{0} -} -func (m *CommonResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CommonResp.Unmarshal(m, b) -} -func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic) -} -func (dst *CommonResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_CommonResp.Merge(dst, src) -} -func (m *CommonResp) XXX_Size() int { - return xxx_messageInfo_CommonResp.Size(m) -} -func (m *CommonResp) XXX_DiscardUnknown() { - xxx_messageInfo_CommonResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{0} } -var xxx_messageInfo_CommonResp proto.InternalMessageInfo - -func (m *CommonResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *CommonResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *CommonResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *CommonResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } type DeleteUsersReq struct { - DeleteUserIDList []string `protobuf:"bytes,2,rep,name=DeleteUserIDList" json:"DeleteUserIDList,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeleteUserIDList []string `protobuf:"bytes,2,rep,name=DeleteUserIDList,proto3" json:"DeleteUserIDList,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } -func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } -func (*DeleteUsersReq) ProtoMessage() {} +func (x *DeleteUsersReq) Reset() { + *x = DeleteUsersReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteUsersReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUsersReq) ProtoMessage() {} + +func (x *DeleteUsersReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 DeleteUsersReq.ProtoReflect.Descriptor instead. func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{1} -} -func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) -} -func (m *DeleteUsersReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteUsersReq.Marshal(b, m, deterministic) -} -func (dst *DeleteUsersReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteUsersReq.Merge(dst, src) -} -func (m *DeleteUsersReq) XXX_Size() int { - return xxx_messageInfo_DeleteUsersReq.Size(m) -} -func (m *DeleteUsersReq) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteUsersReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{1} } -var xxx_messageInfo_DeleteUsersReq proto.InternalMessageInfo - -func (m *DeleteUsersReq) GetDeleteUserIDList() []string { - if m != nil { - return m.DeleteUserIDList +func (x *DeleteUsersReq) GetDeleteUserIDList() []string { + if x != nil { + return x.DeleteUserIDList } return nil } -func (m *DeleteUsersReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *DeleteUsersReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *DeleteUsersReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *DeleteUsersReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type DeleteUsersResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - FailedUserIDList []string `protobuf:"bytes,2,rep,name=FailedUserIDList" json:"FailedUserIDList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + FailedUserIDList []string `protobuf:"bytes,2,rep,name=FailedUserIDList,proto3" json:"FailedUserIDList,omitempty"` } -func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } -func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } -func (*DeleteUsersResp) ProtoMessage() {} +func (x *DeleteUsersResp) Reset() { + *x = DeleteUsersResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteUsersResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUsersResp) ProtoMessage() {} + +func (x *DeleteUsersResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 DeleteUsersResp.ProtoReflect.Descriptor instead. func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{2} -} -func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) -} -func (m *DeleteUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteUsersResp.Marshal(b, m, deterministic) -} -func (dst *DeleteUsersResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteUsersResp.Merge(dst, src) -} -func (m *DeleteUsersResp) XXX_Size() int { - return xxx_messageInfo_DeleteUsersResp.Size(m) -} -func (m *DeleteUsersResp) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteUsersResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{2} } -var xxx_messageInfo_DeleteUsersResp proto.InternalMessageInfo - -func (m *DeleteUsersResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *DeleteUsersResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *DeleteUsersResp) GetFailedUserIDList() []string { - if m != nil { - return m.FailedUserIDList +func (x *DeleteUsersResp) GetFailedUserIDList() []string { + if x != nil { + return x.FailedUserIDList } return nil } type GetAllUserIDReq struct { - OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` } -func (m *GetAllUserIDReq) Reset() { *m = GetAllUserIDReq{} } -func (m *GetAllUserIDReq) String() string { return proto.CompactTextString(m) } -func (*GetAllUserIDReq) ProtoMessage() {} +func (x *GetAllUserIDReq) Reset() { + *x = GetAllUserIDReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAllUserIDReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAllUserIDReq) ProtoMessage() {} + +func (x *GetAllUserIDReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 GetAllUserIDReq.ProtoReflect.Descriptor instead. func (*GetAllUserIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{3} -} -func (m *GetAllUserIDReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetAllUserIDReq.Unmarshal(m, b) -} -func (m *GetAllUserIDReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetAllUserIDReq.Marshal(b, m, deterministic) -} -func (dst *GetAllUserIDReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetAllUserIDReq.Merge(dst, src) -} -func (m *GetAllUserIDReq) XXX_Size() int { - return xxx_messageInfo_GetAllUserIDReq.Size(m) -} -func (m *GetAllUserIDReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetAllUserIDReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{3} } -var xxx_messageInfo_GetAllUserIDReq proto.InternalMessageInfo - -func (m *GetAllUserIDReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetAllUserIDReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *GetAllUserIDReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetAllUserIDReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetAllUserIDResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - UserIDList []string `protobuf:"bytes,2,rep,name=UserIDList" json:"UserIDList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + UserIDList []string `protobuf:"bytes,2,rep,name=UserIDList,proto3" json:"UserIDList,omitempty"` } -func (m *GetAllUserIDResp) Reset() { *m = GetAllUserIDResp{} } -func (m *GetAllUserIDResp) String() string { return proto.CompactTextString(m) } -func (*GetAllUserIDResp) ProtoMessage() {} +func (x *GetAllUserIDResp) Reset() { + *x = GetAllUserIDResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAllUserIDResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAllUserIDResp) ProtoMessage() {} + +func (x *GetAllUserIDResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 GetAllUserIDResp.ProtoReflect.Descriptor instead. func (*GetAllUserIDResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{4} -} -func (m *GetAllUserIDResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetAllUserIDResp.Unmarshal(m, b) -} -func (m *GetAllUserIDResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetAllUserIDResp.Marshal(b, m, deterministic) -} -func (dst *GetAllUserIDResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetAllUserIDResp.Merge(dst, src) -} -func (m *GetAllUserIDResp) XXX_Size() int { - return xxx_messageInfo_GetAllUserIDResp.Size(m) -} -func (m *GetAllUserIDResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetAllUserIDResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{4} } -var xxx_messageInfo_GetAllUserIDResp proto.InternalMessageInfo - -func (m *GetAllUserIDResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *GetAllUserIDResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *GetAllUserIDResp) GetUserIDList() []string { - if m != nil { - return m.UserIDList +func (x *GetAllUserIDResp) GetUserIDList() []string { + if x != nil { + return x.UserIDList } return nil } type AccountCheckReq struct { - CheckUserIDList []string `protobuf:"bytes,1,rep,name=CheckUserIDList" json:"CheckUserIDList,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CheckUserIDList []string `protobuf:"bytes,1,rep,name=CheckUserIDList,proto3" json:"CheckUserIDList,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *AccountCheckReq) Reset() { *m = AccountCheckReq{} } -func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) } -func (*AccountCheckReq) ProtoMessage() {} +func (x *AccountCheckReq) Reset() { + *x = AccountCheckReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountCheckReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountCheckReq) ProtoMessage() {} + +func (x *AccountCheckReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 AccountCheckReq.ProtoReflect.Descriptor instead. func (*AccountCheckReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{5} -} -func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b) -} -func (m *AccountCheckReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AccountCheckReq.Marshal(b, m, deterministic) -} -func (dst *AccountCheckReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_AccountCheckReq.Merge(dst, src) -} -func (m *AccountCheckReq) XXX_Size() int { - return xxx_messageInfo_AccountCheckReq.Size(m) -} -func (m *AccountCheckReq) XXX_DiscardUnknown() { - xxx_messageInfo_AccountCheckReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{5} } -var xxx_messageInfo_AccountCheckReq proto.InternalMessageInfo - -func (m *AccountCheckReq) GetCheckUserIDList() []string { - if m != nil { - return m.CheckUserIDList +func (x *AccountCheckReq) GetCheckUserIDList() []string { + if x != nil { + return x.CheckUserIDList } return nil } -func (m *AccountCheckReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *AccountCheckReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *AccountCheckReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *AccountCheckReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type AccountCheckResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - ResultList []*AccountCheckResp_SingleUserStatus `protobuf:"bytes,2,rep,name=ResultList" json:"ResultList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + ResultList []*AccountCheckResp_SingleUserStatus `protobuf:"bytes,2,rep,name=ResultList,proto3" json:"ResultList,omitempty"` } -func (m *AccountCheckResp) Reset() { *m = AccountCheckResp{} } -func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) } -func (*AccountCheckResp) ProtoMessage() {} +func (x *AccountCheckResp) Reset() { + *x = AccountCheckResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountCheckResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountCheckResp) ProtoMessage() {} + +func (x *AccountCheckResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 AccountCheckResp.ProtoReflect.Descriptor instead. func (*AccountCheckResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{6} -} -func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b) -} -func (m *AccountCheckResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AccountCheckResp.Marshal(b, m, deterministic) -} -func (dst *AccountCheckResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_AccountCheckResp.Merge(dst, src) -} -func (m *AccountCheckResp) XXX_Size() int { - return xxx_messageInfo_AccountCheckResp.Size(m) -} -func (m *AccountCheckResp) XXX_DiscardUnknown() { - xxx_messageInfo_AccountCheckResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{6} } -var xxx_messageInfo_AccountCheckResp proto.InternalMessageInfo - -func (m *AccountCheckResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *AccountCheckResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *AccountCheckResp) GetResultList() []*AccountCheckResp_SingleUserStatus { - if m != nil { - return m.ResultList +func (x *AccountCheckResp) GetResultList() []*AccountCheckResp_SingleUserStatus { + if x != nil { + return x.ResultList } return nil } -type AccountCheckResp_SingleUserStatus struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - AccountStatus string `protobuf:"bytes,2,opt,name=accountStatus" json:"accountStatus,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AccountCheckResp_SingleUserStatus) Reset() { *m = AccountCheckResp_SingleUserStatus{} } -func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) } -func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} -func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{6, 0} -} -func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b) -} -func (m *AccountCheckResp_SingleUserStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Marshal(b, m, deterministic) -} -func (dst *AccountCheckResp_SingleUserStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_AccountCheckResp_SingleUserStatus.Merge(dst, src) -} -func (m *AccountCheckResp_SingleUserStatus) XXX_Size() int { - return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Size(m) -} -func (m *AccountCheckResp_SingleUserStatus) XXX_DiscardUnknown() { - xxx_messageInfo_AccountCheckResp_SingleUserStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_AccountCheckResp_SingleUserStatus proto.InternalMessageInfo - -func (m *AccountCheckResp_SingleUserStatus) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *AccountCheckResp_SingleUserStatus) GetAccountStatus() string { - if m != nil { - return m.AccountStatus - } - return "" -} - type GetUserInfoReq struct { - UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserIDList []string `protobuf:"bytes,1,rep,name=userIDList,proto3" json:"userIDList,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *GetUserInfoReq) Reset() { *m = GetUserInfoReq{} } -func (m *GetUserInfoReq) String() string { return proto.CompactTextString(m) } -func (*GetUserInfoReq) ProtoMessage() {} +func (x *GetUserInfoReq) Reset() { + *x = GetUserInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserInfoReq) ProtoMessage() {} + +func (x *GetUserInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 GetUserInfoReq.ProtoReflect.Descriptor instead. func (*GetUserInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{7} -} -func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) -} -func (m *GetUserInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserInfoReq.Marshal(b, m, deterministic) -} -func (dst *GetUserInfoReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserInfoReq.Merge(dst, src) -} -func (m *GetUserInfoReq) XXX_Size() int { - return xxx_messageInfo_GetUserInfoReq.Size(m) -} -func (m *GetUserInfoReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserInfoReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{7} } -var xxx_messageInfo_GetUserInfoReq proto.InternalMessageInfo - -func (m *GetUserInfoReq) GetUserIDList() []string { - if m != nil { - return m.UserIDList +func (x *GetUserInfoReq) GetUserIDList() []string { + if x != nil { + return x.UserIDList } return nil } -func (m *GetUserInfoReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetUserInfoReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *GetUserInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetUserInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetUserInfoResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - UserInfoList []*sdk_ws.UserInfo `protobuf:"bytes,3,rep,name=UserInfoList" json:"UserInfoList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + UserInfoList []*sdk_ws.UserInfo `protobuf:"bytes,3,rep,name=UserInfoList,proto3" json:"UserInfoList,omitempty"` } -func (m *GetUserInfoResp) Reset() { *m = GetUserInfoResp{} } -func (m *GetUserInfoResp) String() string { return proto.CompactTextString(m) } -func (*GetUserInfoResp) ProtoMessage() {} +func (x *GetUserInfoResp) Reset() { + *x = GetUserInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserInfoResp) ProtoMessage() {} + +func (x *GetUserInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 GetUserInfoResp.ProtoReflect.Descriptor instead. func (*GetUserInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{8} -} -func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) -} -func (m *GetUserInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserInfoResp.Marshal(b, m, deterministic) -} -func (dst *GetUserInfoResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserInfoResp.Merge(dst, src) -} -func (m *GetUserInfoResp) XXX_Size() int { - return xxx_messageInfo_GetUserInfoResp.Size(m) -} -func (m *GetUserInfoResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserInfoResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{8} } -var xxx_messageInfo_GetUserInfoResp proto.InternalMessageInfo - -func (m *GetUserInfoResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *GetUserInfoResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *GetUserInfoResp) GetUserInfoList() []*sdk_ws.UserInfo { - if m != nil { - return m.UserInfoList +func (x *GetUserInfoResp) GetUserInfoList() []*sdk_ws.UserInfo { + if x != nil { + return x.UserInfoList } return nil } type UpdateUserInfoReq struct { - UserInfo *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=UserInfo" json:"UserInfo,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserInfo *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=UserInfo,proto3" json:"UserInfo,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` } -func (m *UpdateUserInfoReq) Reset() { *m = UpdateUserInfoReq{} } -func (m *UpdateUserInfoReq) String() string { return proto.CompactTextString(m) } -func (*UpdateUserInfoReq) ProtoMessage() {} +func (x *UpdateUserInfoReq) Reset() { + *x = UpdateUserInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserInfoReq) ProtoMessage() {} + +func (x *UpdateUserInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 UpdateUserInfoReq.ProtoReflect.Descriptor instead. func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{9} -} -func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) -} -func (m *UpdateUserInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateUserInfoReq.Marshal(b, m, deterministic) -} -func (dst *UpdateUserInfoReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateUserInfoReq.Merge(dst, src) -} -func (m *UpdateUserInfoReq) XXX_Size() int { - return xxx_messageInfo_UpdateUserInfoReq.Size(m) -} -func (m *UpdateUserInfoReq) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateUserInfoReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{9} } -var xxx_messageInfo_UpdateUserInfoReq proto.InternalMessageInfo - -func (m *UpdateUserInfoReq) GetUserInfo() *sdk_ws.UserInfo { - if m != nil { - return m.UserInfo +func (x *UpdateUserInfoReq) GetUserInfo() *sdk_ws.UserInfo { + if x != nil { + return x.UserInfo } return nil } -func (m *UpdateUserInfoReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *UpdateUserInfoReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *UpdateUserInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *UpdateUserInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type UpdateUserInfoResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` } -func (m *UpdateUserInfoResp) Reset() { *m = UpdateUserInfoResp{} } -func (m *UpdateUserInfoResp) String() string { return proto.CompactTextString(m) } -func (*UpdateUserInfoResp) ProtoMessage() {} +func (x *UpdateUserInfoResp) Reset() { + *x = UpdateUserInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserInfoResp) ProtoMessage() {} + +func (x *UpdateUserInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 UpdateUserInfoResp.ProtoReflect.Descriptor instead. func (*UpdateUserInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{10} -} -func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b) -} -func (m *UpdateUserInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateUserInfoResp.Marshal(b, m, deterministic) -} -func (dst *UpdateUserInfoResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateUserInfoResp.Merge(dst, src) -} -func (m *UpdateUserInfoResp) XXX_Size() int { - return xxx_messageInfo_UpdateUserInfoResp.Size(m) -} -func (m *UpdateUserInfoResp) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateUserInfoResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{10} } -var xxx_messageInfo_UpdateUserInfoResp proto.InternalMessageInfo - -func (m *UpdateUserInfoResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *UpdateUserInfoResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type SetGlobalRecvMessageOptReq struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - GlobalRecvMsgOpt int32 `protobuf:"varint,3,opt,name=globalRecvMsgOpt" json:"globalRecvMsgOpt,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` + GlobalRecvMsgOpt int32 `protobuf:"varint,3,opt,name=globalRecvMsgOpt,proto3" json:"globalRecvMsgOpt,omitempty"` } -func (m *SetGlobalRecvMessageOptReq) Reset() { *m = SetGlobalRecvMessageOptReq{} } -func (m *SetGlobalRecvMessageOptReq) String() string { return proto.CompactTextString(m) } -func (*SetGlobalRecvMessageOptReq) ProtoMessage() {} +func (x *SetGlobalRecvMessageOptReq) Reset() { + *x = SetGlobalRecvMessageOptReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetGlobalRecvMessageOptReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetGlobalRecvMessageOptReq) ProtoMessage() {} + +func (x *SetGlobalRecvMessageOptReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 SetGlobalRecvMessageOptReq.ProtoReflect.Descriptor instead. func (*SetGlobalRecvMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{11} -} -func (m *SetGlobalRecvMessageOptReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetGlobalRecvMessageOptReq.Unmarshal(m, b) -} -func (m *SetGlobalRecvMessageOptReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetGlobalRecvMessageOptReq.Marshal(b, m, deterministic) -} -func (dst *SetGlobalRecvMessageOptReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetGlobalRecvMessageOptReq.Merge(dst, src) -} -func (m *SetGlobalRecvMessageOptReq) XXX_Size() int { - return xxx_messageInfo_SetGlobalRecvMessageOptReq.Size(m) -} -func (m *SetGlobalRecvMessageOptReq) XXX_DiscardUnknown() { - xxx_messageInfo_SetGlobalRecvMessageOptReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{11} } -var xxx_messageInfo_SetGlobalRecvMessageOptReq proto.InternalMessageInfo - -func (m *SetGlobalRecvMessageOptReq) GetUserID() string { - if m != nil { - return m.UserID +func (x *SetGlobalRecvMessageOptReq) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *SetGlobalRecvMessageOptReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *SetGlobalRecvMessageOptReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *SetGlobalRecvMessageOptReq) GetGlobalRecvMsgOpt() int32 { - if m != nil { - return m.GlobalRecvMsgOpt +func (x *SetGlobalRecvMessageOptReq) GetGlobalRecvMsgOpt() int32 { + if x != nil { + return x.GlobalRecvMsgOpt } return 0 } type SetGlobalRecvMessageOptResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` } -func (m *SetGlobalRecvMessageOptResp) Reset() { *m = SetGlobalRecvMessageOptResp{} } -func (m *SetGlobalRecvMessageOptResp) String() string { return proto.CompactTextString(m) } -func (*SetGlobalRecvMessageOptResp) ProtoMessage() {} +func (x *SetGlobalRecvMessageOptResp) Reset() { + *x = SetGlobalRecvMessageOptResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetGlobalRecvMessageOptResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetGlobalRecvMessageOptResp) ProtoMessage() {} + +func (x *SetGlobalRecvMessageOptResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 SetGlobalRecvMessageOptResp.ProtoReflect.Descriptor instead. func (*SetGlobalRecvMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{12} -} -func (m *SetGlobalRecvMessageOptResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetGlobalRecvMessageOptResp.Unmarshal(m, b) -} -func (m *SetGlobalRecvMessageOptResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetGlobalRecvMessageOptResp.Marshal(b, m, deterministic) -} -func (dst *SetGlobalRecvMessageOptResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetGlobalRecvMessageOptResp.Merge(dst, src) -} -func (m *SetGlobalRecvMessageOptResp) XXX_Size() int { - return xxx_messageInfo_SetGlobalRecvMessageOptResp.Size(m) -} -func (m *SetGlobalRecvMessageOptResp) XXX_DiscardUnknown() { - xxx_messageInfo_SetGlobalRecvMessageOptResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{12} } -var xxx_messageInfo_SetGlobalRecvMessageOptResp proto.InternalMessageInfo - -func (m *SetGlobalRecvMessageOptResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *SetGlobalRecvMessageOptResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type Conversation struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - ConversationID string `protobuf:"bytes,2,opt,name=ConversationID" json:"ConversationID,omitempty"` - RecvMsgOpt int32 `protobuf:"varint,3,opt,name=RecvMsgOpt" json:"RecvMsgOpt,omitempty"` - ConversationType int32 `protobuf:"varint,4,opt,name=ConversationType" json:"ConversationType,omitempty"` - UserID string `protobuf:"bytes,5,opt,name=UserID" json:"UserID,omitempty"` - GroupID string `protobuf:"bytes,6,opt,name=GroupID" json:"GroupID,omitempty"` - UnreadCount int32 `protobuf:"varint,7,opt,name=UnreadCount" json:"UnreadCount,omitempty"` - DraftTextTime int64 `protobuf:"varint,8,opt,name=DraftTextTime" json:"DraftTextTime,omitempty"` - IsPinned bool `protobuf:"varint,9,opt,name=IsPinned" json:"IsPinned,omitempty"` - AttachedInfo string `protobuf:"bytes,10,opt,name=AttachedInfo" json:"AttachedInfo,omitempty"` - IsPrivateChat bool `protobuf:"varint,11,opt,name=IsPrivateChat" json:"IsPrivateChat,omitempty"` - GroupAtType int32 `protobuf:"varint,12,opt,name=GroupAtType" json:"GroupAtType,omitempty"` - IsNotInGroup bool `protobuf:"varint,13,opt,name=IsNotInGroup" json:"IsNotInGroup,omitempty"` - Ex string `protobuf:"bytes,14,opt,name=Ex" json:"Ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` + ConversationID string `protobuf:"bytes,2,opt,name=ConversationID,proto3" json:"ConversationID,omitempty"` + RecvMsgOpt int32 `protobuf:"varint,3,opt,name=RecvMsgOpt,proto3" json:"RecvMsgOpt,omitempty"` + ConversationType int32 `protobuf:"varint,4,opt,name=ConversationType,proto3" json:"ConversationType,omitempty"` + UserID string `protobuf:"bytes,5,opt,name=UserID,proto3" json:"UserID,omitempty"` + GroupID string `protobuf:"bytes,6,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + UnreadCount int32 `protobuf:"varint,7,opt,name=UnreadCount,proto3" json:"UnreadCount,omitempty"` + DraftTextTime int64 `protobuf:"varint,8,opt,name=DraftTextTime,proto3" json:"DraftTextTime,omitempty"` + IsPinned bool `protobuf:"varint,9,opt,name=IsPinned,proto3" json:"IsPinned,omitempty"` + AttachedInfo string `protobuf:"bytes,10,opt,name=AttachedInfo,proto3" json:"AttachedInfo,omitempty"` + IsPrivateChat bool `protobuf:"varint,11,opt,name=IsPrivateChat,proto3" json:"IsPrivateChat,omitempty"` + GroupAtType int32 `protobuf:"varint,12,opt,name=GroupAtType,proto3" json:"GroupAtType,omitempty"` + IsNotInGroup bool `protobuf:"varint,13,opt,name=IsNotInGroup,proto3" json:"IsNotInGroup,omitempty"` + Ex string `protobuf:"bytes,14,opt,name=Ex,proto3" json:"Ex,omitempty"` } -func (m *Conversation) Reset() { *m = Conversation{} } -func (m *Conversation) String() string { return proto.CompactTextString(m) } -func (*Conversation) ProtoMessage() {} +func (x *Conversation) Reset() { + *x = Conversation{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Conversation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Conversation) ProtoMessage() {} + +func (x *Conversation) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 Conversation.ProtoReflect.Descriptor instead. func (*Conversation) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{13} -} -func (m *Conversation) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Conversation.Unmarshal(m, b) -} -func (m *Conversation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Conversation.Marshal(b, m, deterministic) -} -func (dst *Conversation) XXX_Merge(src proto.Message) { - xxx_messageInfo_Conversation.Merge(dst, src) -} -func (m *Conversation) XXX_Size() int { - return xxx_messageInfo_Conversation.Size(m) -} -func (m *Conversation) XXX_DiscardUnknown() { - xxx_messageInfo_Conversation.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{13} } -var xxx_messageInfo_Conversation proto.InternalMessageInfo - -func (m *Conversation) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID +func (x *Conversation) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID } return "" } -func (m *Conversation) GetConversationID() string { - if m != nil { - return m.ConversationID +func (x *Conversation) GetConversationID() string { + if x != nil { + return x.ConversationID } return "" } -func (m *Conversation) GetRecvMsgOpt() int32 { - if m != nil { - return m.RecvMsgOpt +func (x *Conversation) GetRecvMsgOpt() int32 { + if x != nil { + return x.RecvMsgOpt } return 0 } -func (m *Conversation) GetConversationType() int32 { - if m != nil { - return m.ConversationType +func (x *Conversation) GetConversationType() int32 { + if x != nil { + return x.ConversationType } return 0 } -func (m *Conversation) GetUserID() string { - if m != nil { - return m.UserID +func (x *Conversation) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *Conversation) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *Conversation) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *Conversation) GetUnreadCount() int32 { - if m != nil { - return m.UnreadCount +func (x *Conversation) GetUnreadCount() int32 { + if x != nil { + return x.UnreadCount } return 0 } -func (m *Conversation) GetDraftTextTime() int64 { - if m != nil { - return m.DraftTextTime +func (x *Conversation) GetDraftTextTime() int64 { + if x != nil { + return x.DraftTextTime } return 0 } -func (m *Conversation) GetIsPinned() bool { - if m != nil { - return m.IsPinned +func (x *Conversation) GetIsPinned() bool { + if x != nil { + return x.IsPinned } return false } -func (m *Conversation) GetAttachedInfo() string { - if m != nil { - return m.AttachedInfo +func (x *Conversation) GetAttachedInfo() string { + if x != nil { + return x.AttachedInfo } return "" } -func (m *Conversation) GetIsPrivateChat() bool { - if m != nil { - return m.IsPrivateChat +func (x *Conversation) GetIsPrivateChat() bool { + if x != nil { + return x.IsPrivateChat } return false } -func (m *Conversation) GetGroupAtType() int32 { - if m != nil { - return m.GroupAtType +func (x *Conversation) GetGroupAtType() int32 { + if x != nil { + return x.GroupAtType } return 0 } -func (m *Conversation) GetIsNotInGroup() bool { - if m != nil { - return m.IsNotInGroup +func (x *Conversation) GetIsNotInGroup() bool { + if x != nil { + return x.IsNotInGroup } return false } -func (m *Conversation) GetEx() string { - if m != nil { - return m.Ex +func (x *Conversation) GetEx() string { + if x != nil { + return x.Ex } return "" } type SetConversationReq struct { - Conversation *Conversation `protobuf:"bytes,1,opt,name=Conversation" json:"Conversation,omitempty"` - NotificationType int32 `protobuf:"varint,2,opt,name=notificationType" json:"notificationType,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Conversation *Conversation `protobuf:"bytes,1,opt,name=Conversation,proto3" json:"Conversation,omitempty"` + NotificationType int32 `protobuf:"varint,2,opt,name=notificationType,proto3" json:"notificationType,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *SetConversationReq) Reset() { *m = SetConversationReq{} } -func (m *SetConversationReq) String() string { return proto.CompactTextString(m) } -func (*SetConversationReq) ProtoMessage() {} +func (x *SetConversationReq) Reset() { + *x = SetConversationReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetConversationReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetConversationReq) ProtoMessage() {} + +func (x *SetConversationReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 SetConversationReq.ProtoReflect.Descriptor instead. func (*SetConversationReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{14} -} -func (m *SetConversationReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetConversationReq.Unmarshal(m, b) -} -func (m *SetConversationReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetConversationReq.Marshal(b, m, deterministic) -} -func (dst *SetConversationReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetConversationReq.Merge(dst, src) -} -func (m *SetConversationReq) XXX_Size() int { - return xxx_messageInfo_SetConversationReq.Size(m) -} -func (m *SetConversationReq) XXX_DiscardUnknown() { - xxx_messageInfo_SetConversationReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{14} } -var xxx_messageInfo_SetConversationReq proto.InternalMessageInfo - -func (m *SetConversationReq) GetConversation() *Conversation { - if m != nil { - return m.Conversation +func (x *SetConversationReq) GetConversation() *Conversation { + if x != nil { + return x.Conversation } return nil } -func (m *SetConversationReq) GetNotificationType() int32 { - if m != nil { - return m.NotificationType +func (x *SetConversationReq) GetNotificationType() int32 { + if x != nil { + return x.NotificationType } return 0 } -func (m *SetConversationReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *SetConversationReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type SetConversationResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` } -func (m *SetConversationResp) Reset() { *m = SetConversationResp{} } -func (m *SetConversationResp) String() string { return proto.CompactTextString(m) } -func (*SetConversationResp) ProtoMessage() {} +func (x *SetConversationResp) Reset() { + *x = SetConversationResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetConversationResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetConversationResp) ProtoMessage() {} + +func (x *SetConversationResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 SetConversationResp.ProtoReflect.Descriptor instead. func (*SetConversationResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{15} -} -func (m *SetConversationResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetConversationResp.Unmarshal(m, b) -} -func (m *SetConversationResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetConversationResp.Marshal(b, m, deterministic) -} -func (dst *SetConversationResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetConversationResp.Merge(dst, src) -} -func (m *SetConversationResp) XXX_Size() int { - return xxx_messageInfo_SetConversationResp.Size(m) -} -func (m *SetConversationResp) XXX_DiscardUnknown() { - xxx_messageInfo_SetConversationResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{15} } -var xxx_messageInfo_SetConversationResp proto.InternalMessageInfo - -func (m *SetConversationResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *SetConversationResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type SetRecvMsgOptReq struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - ConversationID string `protobuf:"bytes,2,opt,name=ConversationID" json:"ConversationID,omitempty"` - RecvMsgOpt int32 `protobuf:"varint,3,opt,name=RecvMsgOpt" json:"RecvMsgOpt,omitempty"` - NotificationType int32 `protobuf:"varint,4,opt,name=notificationType" json:"notificationType,omitempty"` - OperationID string `protobuf:"bytes,5,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` + ConversationID string `protobuf:"bytes,2,opt,name=ConversationID,proto3" json:"ConversationID,omitempty"` + RecvMsgOpt int32 `protobuf:"varint,3,opt,name=RecvMsgOpt,proto3" json:"RecvMsgOpt,omitempty"` + NotificationType int32 `protobuf:"varint,4,opt,name=notificationType,proto3" json:"notificationType,omitempty"` + OperationID string `protobuf:"bytes,5,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *SetRecvMsgOptReq) Reset() { *m = SetRecvMsgOptReq{} } -func (m *SetRecvMsgOptReq) String() string { return proto.CompactTextString(m) } -func (*SetRecvMsgOptReq) ProtoMessage() {} +func (x *SetRecvMsgOptReq) Reset() { + *x = SetRecvMsgOptReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetRecvMsgOptReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetRecvMsgOptReq) ProtoMessage() {} + +func (x *SetRecvMsgOptReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 SetRecvMsgOptReq.ProtoReflect.Descriptor instead. func (*SetRecvMsgOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{16} -} -func (m *SetRecvMsgOptReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetRecvMsgOptReq.Unmarshal(m, b) -} -func (m *SetRecvMsgOptReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetRecvMsgOptReq.Marshal(b, m, deterministic) -} -func (dst *SetRecvMsgOptReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetRecvMsgOptReq.Merge(dst, src) -} -func (m *SetRecvMsgOptReq) XXX_Size() int { - return xxx_messageInfo_SetRecvMsgOptReq.Size(m) -} -func (m *SetRecvMsgOptReq) XXX_DiscardUnknown() { - xxx_messageInfo_SetRecvMsgOptReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{16} } -var xxx_messageInfo_SetRecvMsgOptReq proto.InternalMessageInfo - -func (m *SetRecvMsgOptReq) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID +func (x *SetRecvMsgOptReq) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID } return "" } -func (m *SetRecvMsgOptReq) GetConversationID() string { - if m != nil { - return m.ConversationID +func (x *SetRecvMsgOptReq) GetConversationID() string { + if x != nil { + return x.ConversationID } return "" } -func (m *SetRecvMsgOptReq) GetRecvMsgOpt() int32 { - if m != nil { - return m.RecvMsgOpt +func (x *SetRecvMsgOptReq) GetRecvMsgOpt() int32 { + if x != nil { + return x.RecvMsgOpt } return 0 } -func (m *SetRecvMsgOptReq) GetNotificationType() int32 { - if m != nil { - return m.NotificationType +func (x *SetRecvMsgOptReq) GetNotificationType() int32 { + if x != nil { + return x.NotificationType } return 0 } -func (m *SetRecvMsgOptReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *SetRecvMsgOptReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type SetRecvMsgOptResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` } -func (m *SetRecvMsgOptResp) Reset() { *m = SetRecvMsgOptResp{} } -func (m *SetRecvMsgOptResp) String() string { return proto.CompactTextString(m) } -func (*SetRecvMsgOptResp) ProtoMessage() {} +func (x *SetRecvMsgOptResp) Reset() { + *x = SetRecvMsgOptResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetRecvMsgOptResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetRecvMsgOptResp) ProtoMessage() {} + +func (x *SetRecvMsgOptResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 SetRecvMsgOptResp.ProtoReflect.Descriptor instead. func (*SetRecvMsgOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{17} -} -func (m *SetRecvMsgOptResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetRecvMsgOptResp.Unmarshal(m, b) -} -func (m *SetRecvMsgOptResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetRecvMsgOptResp.Marshal(b, m, deterministic) -} -func (dst *SetRecvMsgOptResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetRecvMsgOptResp.Merge(dst, src) -} -func (m *SetRecvMsgOptResp) XXX_Size() int { - return xxx_messageInfo_SetRecvMsgOptResp.Size(m) -} -func (m *SetRecvMsgOptResp) XXX_DiscardUnknown() { - xxx_messageInfo_SetRecvMsgOptResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{17} } -var xxx_messageInfo_SetRecvMsgOptResp proto.InternalMessageInfo - -func (m *SetRecvMsgOptResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *SetRecvMsgOptResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type GetConversationReq struct { - ConversationID string `protobuf:"bytes,1,opt,name=ConversationID" json:"ConversationID,omitempty"` - OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ConversationID string `protobuf:"bytes,1,opt,name=ConversationID,proto3" json:"ConversationID,omitempty"` + OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *GetConversationReq) Reset() { *m = GetConversationReq{} } -func (m *GetConversationReq) String() string { return proto.CompactTextString(m) } -func (*GetConversationReq) ProtoMessage() {} +func (x *GetConversationReq) Reset() { + *x = GetConversationReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetConversationReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetConversationReq) ProtoMessage() {} + +func (x *GetConversationReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 GetConversationReq.ProtoReflect.Descriptor instead. func (*GetConversationReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{18} -} -func (m *GetConversationReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetConversationReq.Unmarshal(m, b) -} -func (m *GetConversationReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetConversationReq.Marshal(b, m, deterministic) -} -func (dst *GetConversationReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetConversationReq.Merge(dst, src) -} -func (m *GetConversationReq) XXX_Size() int { - return xxx_messageInfo_GetConversationReq.Size(m) -} -func (m *GetConversationReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetConversationReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{18} } -var xxx_messageInfo_GetConversationReq proto.InternalMessageInfo - -func (m *GetConversationReq) GetConversationID() string { - if m != nil { - return m.ConversationID +func (x *GetConversationReq) GetConversationID() string { + if x != nil { + return x.ConversationID } return "" } -func (m *GetConversationReq) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID +func (x *GetConversationReq) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID } return "" } -func (m *GetConversationReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetConversationReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetConversationResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - Conversation *Conversation `protobuf:"bytes,2,opt,name=Conversation" json:"Conversation,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + Conversation *Conversation `protobuf:"bytes,2,opt,name=Conversation,proto3" json:"Conversation,omitempty"` } -func (m *GetConversationResp) Reset() { *m = GetConversationResp{} } -func (m *GetConversationResp) String() string { return proto.CompactTextString(m) } -func (*GetConversationResp) ProtoMessage() {} +func (x *GetConversationResp) Reset() { + *x = GetConversationResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetConversationResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetConversationResp) ProtoMessage() {} + +func (x *GetConversationResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 GetConversationResp.ProtoReflect.Descriptor instead. func (*GetConversationResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{19} -} -func (m *GetConversationResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetConversationResp.Unmarshal(m, b) -} -func (m *GetConversationResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetConversationResp.Marshal(b, m, deterministic) -} -func (dst *GetConversationResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetConversationResp.Merge(dst, src) -} -func (m *GetConversationResp) XXX_Size() int { - return xxx_messageInfo_GetConversationResp.Size(m) -} -func (m *GetConversationResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetConversationResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{19} } -var xxx_messageInfo_GetConversationResp proto.InternalMessageInfo - -func (m *GetConversationResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *GetConversationResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *GetConversationResp) GetConversation() *Conversation { - if m != nil { - return m.Conversation +func (x *GetConversationResp) GetConversation() *Conversation { + if x != nil { + return x.Conversation } return nil } type GetConversationsReq struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - ConversationIDs []string `protobuf:"bytes,2,rep,name=ConversationIDs" json:"ConversationIDs,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` + ConversationIDs []string `protobuf:"bytes,2,rep,name=ConversationIDs,proto3" json:"ConversationIDs,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *GetConversationsReq) Reset() { *m = GetConversationsReq{} } -func (m *GetConversationsReq) String() string { return proto.CompactTextString(m) } -func (*GetConversationsReq) ProtoMessage() {} +func (x *GetConversationsReq) Reset() { + *x = GetConversationsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetConversationsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetConversationsReq) ProtoMessage() {} + +func (x *GetConversationsReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_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 GetConversationsReq.ProtoReflect.Descriptor instead. func (*GetConversationsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{20} -} -func (m *GetConversationsReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetConversationsReq.Unmarshal(m, b) -} -func (m *GetConversationsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetConversationsReq.Marshal(b, m, deterministic) -} -func (dst *GetConversationsReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetConversationsReq.Merge(dst, src) -} -func (m *GetConversationsReq) XXX_Size() int { - return xxx_messageInfo_GetConversationsReq.Size(m) -} -func (m *GetConversationsReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetConversationsReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{20} } -var xxx_messageInfo_GetConversationsReq proto.InternalMessageInfo - -func (m *GetConversationsReq) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID +func (x *GetConversationsReq) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID } return "" } -func (m *GetConversationsReq) GetConversationIDs() []string { - if m != nil { - return m.ConversationIDs +func (x *GetConversationsReq) GetConversationIDs() []string { + if x != nil { + return x.ConversationIDs } return nil } -func (m *GetConversationsReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetConversationsReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetConversationsResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations" json:"Conversations,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations,proto3" json:"Conversations,omitempty"` } -func (m *GetConversationsResp) Reset() { *m = GetConversationsResp{} } -func (m *GetConversationsResp) String() string { return proto.CompactTextString(m) } -func (*GetConversationsResp) ProtoMessage() {} +func (x *GetConversationsResp) Reset() { + *x = GetConversationsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetConversationsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetConversationsResp) ProtoMessage() {} + +func (x *GetConversationsResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetConversationsResp.ProtoReflect.Descriptor instead. func (*GetConversationsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{21} -} -func (m *GetConversationsResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetConversationsResp.Unmarshal(m, b) -} -func (m *GetConversationsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetConversationsResp.Marshal(b, m, deterministic) -} -func (dst *GetConversationsResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetConversationsResp.Merge(dst, src) -} -func (m *GetConversationsResp) XXX_Size() int { - return xxx_messageInfo_GetConversationsResp.Size(m) -} -func (m *GetConversationsResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetConversationsResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{21} } -var xxx_messageInfo_GetConversationsResp proto.InternalMessageInfo - -func (m *GetConversationsResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *GetConversationsResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *GetConversationsResp) GetConversations() []*Conversation { - if m != nil { - return m.Conversations +func (x *GetConversationsResp) GetConversations() []*Conversation { + if x != nil { + return x.Conversations } return nil } type GetAllConversationsReq struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *GetAllConversationsReq) Reset() { *m = GetAllConversationsReq{} } -func (m *GetAllConversationsReq) String() string { return proto.CompactTextString(m) } -func (*GetAllConversationsReq) ProtoMessage() {} +func (x *GetAllConversationsReq) Reset() { + *x = GetAllConversationsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAllConversationsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAllConversationsReq) ProtoMessage() {} + +func (x *GetAllConversationsReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAllConversationsReq.ProtoReflect.Descriptor instead. func (*GetAllConversationsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{22} -} -func (m *GetAllConversationsReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetAllConversationsReq.Unmarshal(m, b) -} -func (m *GetAllConversationsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetAllConversationsReq.Marshal(b, m, deterministic) -} -func (dst *GetAllConversationsReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetAllConversationsReq.Merge(dst, src) -} -func (m *GetAllConversationsReq) XXX_Size() int { - return xxx_messageInfo_GetAllConversationsReq.Size(m) -} -func (m *GetAllConversationsReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetAllConversationsReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{22} } -var xxx_messageInfo_GetAllConversationsReq proto.InternalMessageInfo - -func (m *GetAllConversationsReq) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID +func (x *GetAllConversationsReq) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID } return "" } -func (m *GetAllConversationsReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetAllConversationsReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetAllConversationsResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations" json:"Conversations,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations,proto3" json:"Conversations,omitempty"` } -func (m *GetAllConversationsResp) Reset() { *m = GetAllConversationsResp{} } -func (m *GetAllConversationsResp) String() string { return proto.CompactTextString(m) } -func (*GetAllConversationsResp) ProtoMessage() {} +func (x *GetAllConversationsResp) Reset() { + *x = GetAllConversationsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAllConversationsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAllConversationsResp) ProtoMessage() {} + +func (x *GetAllConversationsResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAllConversationsResp.ProtoReflect.Descriptor instead. func (*GetAllConversationsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{23} -} -func (m *GetAllConversationsResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetAllConversationsResp.Unmarshal(m, b) -} -func (m *GetAllConversationsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetAllConversationsResp.Marshal(b, m, deterministic) -} -func (dst *GetAllConversationsResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetAllConversationsResp.Merge(dst, src) -} -func (m *GetAllConversationsResp) XXX_Size() int { - return xxx_messageInfo_GetAllConversationsResp.Size(m) -} -func (m *GetAllConversationsResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetAllConversationsResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{23} } -var xxx_messageInfo_GetAllConversationsResp proto.InternalMessageInfo - -func (m *GetAllConversationsResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *GetAllConversationsResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *GetAllConversationsResp) GetConversations() []*Conversation { - if m != nil { - return m.Conversations +func (x *GetAllConversationsResp) GetConversations() []*Conversation { + if x != nil { + return x.Conversations } return nil } type BatchSetConversationsReq struct { - Conversations []*Conversation `protobuf:"bytes,1,rep,name=Conversations" json:"Conversations,omitempty"` - OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - NotificationType int32 `protobuf:"varint,3,opt,name=notificationType" json:"notificationType,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Conversations []*Conversation `protobuf:"bytes,1,rep,name=Conversations,proto3" json:"Conversations,omitempty"` + OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` + NotificationType int32 `protobuf:"varint,3,opt,name=notificationType,proto3" json:"notificationType,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *BatchSetConversationsReq) Reset() { *m = BatchSetConversationsReq{} } -func (m *BatchSetConversationsReq) String() string { return proto.CompactTextString(m) } -func (*BatchSetConversationsReq) ProtoMessage() {} +func (x *BatchSetConversationsReq) Reset() { + *x = BatchSetConversationsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchSetConversationsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchSetConversationsReq) ProtoMessage() {} + +func (x *BatchSetConversationsReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchSetConversationsReq.ProtoReflect.Descriptor instead. func (*BatchSetConversationsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{24} -} -func (m *BatchSetConversationsReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BatchSetConversationsReq.Unmarshal(m, b) -} -func (m *BatchSetConversationsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BatchSetConversationsReq.Marshal(b, m, deterministic) -} -func (dst *BatchSetConversationsReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_BatchSetConversationsReq.Merge(dst, src) -} -func (m *BatchSetConversationsReq) XXX_Size() int { - return xxx_messageInfo_BatchSetConversationsReq.Size(m) -} -func (m *BatchSetConversationsReq) XXX_DiscardUnknown() { - xxx_messageInfo_BatchSetConversationsReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{24} } -var xxx_messageInfo_BatchSetConversationsReq proto.InternalMessageInfo - -func (m *BatchSetConversationsReq) GetConversations() []*Conversation { - if m != nil { - return m.Conversations +func (x *BatchSetConversationsReq) GetConversations() []*Conversation { + if x != nil { + return x.Conversations } return nil } -func (m *BatchSetConversationsReq) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID +func (x *BatchSetConversationsReq) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID } return "" } -func (m *BatchSetConversationsReq) GetNotificationType() int32 { - if m != nil { - return m.NotificationType +func (x *BatchSetConversationsReq) GetNotificationType() int32 { + if x != nil { + return x.NotificationType } return 0 } -func (m *BatchSetConversationsReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *BatchSetConversationsReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type BatchSetConversationsResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - Success []string `protobuf:"bytes,2,rep,name=Success" json:"Success,omitempty"` - Failed []string `protobuf:"bytes,3,rep,name=Failed" json:"Failed,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + Success []string `protobuf:"bytes,2,rep,name=Success,proto3" json:"Success,omitempty"` + Failed []string `protobuf:"bytes,3,rep,name=Failed,proto3" json:"Failed,omitempty"` } -func (m *BatchSetConversationsResp) Reset() { *m = BatchSetConversationsResp{} } -func (m *BatchSetConversationsResp) String() string { return proto.CompactTextString(m) } -func (*BatchSetConversationsResp) ProtoMessage() {} +func (x *BatchSetConversationsResp) Reset() { + *x = BatchSetConversationsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchSetConversationsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchSetConversationsResp) ProtoMessage() {} + +func (x *BatchSetConversationsResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchSetConversationsResp.ProtoReflect.Descriptor instead. func (*BatchSetConversationsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{25} -} -func (m *BatchSetConversationsResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BatchSetConversationsResp.Unmarshal(m, b) -} -func (m *BatchSetConversationsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BatchSetConversationsResp.Marshal(b, m, deterministic) -} -func (dst *BatchSetConversationsResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_BatchSetConversationsResp.Merge(dst, src) -} -func (m *BatchSetConversationsResp) XXX_Size() int { - return xxx_messageInfo_BatchSetConversationsResp.Size(m) -} -func (m *BatchSetConversationsResp) XXX_DiscardUnknown() { - xxx_messageInfo_BatchSetConversationsResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{25} } -var xxx_messageInfo_BatchSetConversationsResp proto.InternalMessageInfo - -func (m *BatchSetConversationsResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *BatchSetConversationsResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *BatchSetConversationsResp) GetSuccess() []string { - if m != nil { - return m.Success +func (x *BatchSetConversationsResp) GetSuccess() []string { + if x != nil { + return x.Success } return nil } -func (m *BatchSetConversationsResp) GetFailed() []string { - if m != nil { - return m.Failed +func (x *BatchSetConversationsResp) GetFailed() []string { + if x != nil { + return x.Failed } return nil } type ResignUserReq struct { - UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *ResignUserReq) Reset() { *m = ResignUserReq{} } -func (m *ResignUserReq) String() string { return proto.CompactTextString(m) } -func (*ResignUserReq) ProtoMessage() {} +func (x *ResignUserReq) Reset() { + *x = ResignUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResignUserReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResignUserReq) ProtoMessage() {} + +func (x *ResignUserReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResignUserReq.ProtoReflect.Descriptor instead. func (*ResignUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{26} -} -func (m *ResignUserReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ResignUserReq.Unmarshal(m, b) -} -func (m *ResignUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ResignUserReq.Marshal(b, m, deterministic) -} -func (dst *ResignUserReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_ResignUserReq.Merge(dst, src) -} -func (m *ResignUserReq) XXX_Size() int { - return xxx_messageInfo_ResignUserReq.Size(m) -} -func (m *ResignUserReq) XXX_DiscardUnknown() { - xxx_messageInfo_ResignUserReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{26} } -var xxx_messageInfo_ResignUserReq proto.InternalMessageInfo - -func (m *ResignUserReq) GetUserId() string { - if m != nil { - return m.UserId +func (x *ResignUserReq) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *ResignUserReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *ResignUserReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type ResignUserResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` } -func (m *ResignUserResp) Reset() { *m = ResignUserResp{} } -func (m *ResignUserResp) String() string { return proto.CompactTextString(m) } -func (*ResignUserResp) ProtoMessage() {} +func (x *ResignUserResp) Reset() { + *x = ResignUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResignUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResignUserResp) ProtoMessage() {} + +func (x *ResignUserResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResignUserResp.ProtoReflect.Descriptor instead. func (*ResignUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{27} -} -func (m *ResignUserResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ResignUserResp.Unmarshal(m, b) -} -func (m *ResignUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ResignUserResp.Marshal(b, m, deterministic) -} -func (dst *ResignUserResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_ResignUserResp.Merge(dst, src) -} -func (m *ResignUserResp) XXX_Size() int { - return xxx_messageInfo_ResignUserResp.Size(m) -} -func (m *ResignUserResp) XXX_DiscardUnknown() { - xxx_messageInfo_ResignUserResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{27} } -var xxx_messageInfo_ResignUserResp proto.InternalMessageInfo - -func (m *ResignUserResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *ResignUserResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type GetUserByIdReq struct { - UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *GetUserByIdReq) Reset() { *m = GetUserByIdReq{} } -func (m *GetUserByIdReq) String() string { return proto.CompactTextString(m) } -func (*GetUserByIdReq) ProtoMessage() {} +func (x *GetUserByIdReq) Reset() { + *x = GetUserByIdReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserByIdReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserByIdReq) ProtoMessage() {} + +func (x *GetUserByIdReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserByIdReq.ProtoReflect.Descriptor instead. func (*GetUserByIdReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{28} -} -func (m *GetUserByIdReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserByIdReq.Unmarshal(m, b) -} -func (m *GetUserByIdReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserByIdReq.Marshal(b, m, deterministic) -} -func (dst *GetUserByIdReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserByIdReq.Merge(dst, src) -} -func (m *GetUserByIdReq) XXX_Size() int { - return xxx_messageInfo_GetUserByIdReq.Size(m) -} -func (m *GetUserByIdReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserByIdReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{28} } -var xxx_messageInfo_GetUserByIdReq proto.InternalMessageInfo - -func (m *GetUserByIdReq) GetUserId() string { - if m != nil { - return m.UserId +func (x *GetUserByIdReq) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *GetUserByIdReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetUserByIdReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type User struct { - ProfilePhoto string `protobuf:"bytes,1,opt,name=ProfilePhoto" json:"ProfilePhoto,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` - UserId string `protobuf:"bytes,3,opt,name=UserId" json:"UserId,omitempty"` - CreateTime string `protobuf:"bytes,4,opt,name=CreateTime" json:"CreateTime,omitempty"` - IsBlock bool `protobuf:"varint,5,opt,name=IsBlock" json:"IsBlock,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProfilePhoto string `protobuf:"bytes,1,opt,name=ProfilePhoto,proto3" json:"ProfilePhoto,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=Nickname,proto3" json:"Nickname,omitempty"` + UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` + CreateTime string `protobuf:"bytes,4,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` + PhoneNumber string `protobuf:"bytes,5,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` + Email string `protobuf:"bytes,6,opt,name=Email,proto3" json:"Email,omitempty"` + Birth string `protobuf:"bytes,7,opt,name=Birth,proto3" json:"Birth,omitempty"` + CreateIp string `protobuf:"bytes,8,opt,name=CreateIp,proto3" json:"CreateIp,omitempty"` + LastLoginTime string `protobuf:"bytes,9,opt,name=LastLoginTime,proto3" json:"LastLoginTime,omitempty"` + LastLoginIp string `protobuf:"bytes,10,opt,name=LastLoginIp,proto3" json:"LastLoginIp,omitempty"` + LoginTimes int32 `protobuf:"varint,11,opt,name=LoginTimes,proto3" json:"LoginTimes,omitempty"` + Gender int32 `protobuf:"varint,12,opt,name=Gender,proto3" json:"Gender,omitempty"` + LoginLimit int32 `protobuf:"varint,13,opt,name=LoginLimit,proto3" json:"LoginLimit,omitempty"` + IsBlock bool `protobuf:"varint,14,opt,name=IsBlock,proto3" json:"IsBlock,omitempty"` } -func (m *User) Reset() { *m = User{} } -func (m *User) String() string { return proto.CompactTextString(m) } -func (*User) ProtoMessage() {} +func (x *User) Reset() { + *x = User{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *User) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*User) ProtoMessage() {} + +func (x *User) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use User.ProtoReflect.Descriptor instead. func (*User) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{29} -} -func (m *User) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_User.Unmarshal(m, b) -} -func (m *User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_User.Marshal(b, m, deterministic) -} -func (dst *User) XXX_Merge(src proto.Message) { - xxx_messageInfo_User.Merge(dst, src) -} -func (m *User) XXX_Size() int { - return xxx_messageInfo_User.Size(m) -} -func (m *User) XXX_DiscardUnknown() { - xxx_messageInfo_User.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{29} } -var xxx_messageInfo_User proto.InternalMessageInfo - -func (m *User) GetProfilePhoto() string { - if m != nil { - return m.ProfilePhoto +func (x *User) GetProfilePhoto() string { + if x != nil { + return x.ProfilePhoto } return "" } -func (m *User) GetNickname() string { - if m != nil { - return m.Nickname +func (x *User) GetNickname() string { + if x != nil { + return x.Nickname } return "" } -func (m *User) GetUserId() string { - if m != nil { - return m.UserId +func (x *User) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *User) GetCreateTime() string { - if m != nil { - return m.CreateTime +func (x *User) GetCreateTime() string { + if x != nil { + return x.CreateTime } return "" } -func (m *User) GetIsBlock() bool { - if m != nil { - return m.IsBlock +func (x *User) GetPhoneNumber() string { + if x != nil { + return x.PhoneNumber + } + return "" +} + +func (x *User) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *User) GetBirth() string { + if x != nil { + return x.Birth + } + return "" +} + +func (x *User) GetCreateIp() string { + if x != nil { + return x.CreateIp + } + return "" +} + +func (x *User) GetLastLoginTime() string { + if x != nil { + return x.LastLoginTime + } + return "" +} + +func (x *User) GetLastLoginIp() string { + if x != nil { + return x.LastLoginIp + } + return "" +} + +func (x *User) GetLoginTimes() int32 { + if x != nil { + return x.LoginTimes + } + return 0 +} + +func (x *User) GetGender() int32 { + if x != nil { + return x.Gender + } + return 0 +} + +func (x *User) GetLoginLimit() int32 { + if x != nil { + return x.LoginLimit + } + return 0 +} + +func (x *User) GetIsBlock() bool { + if x != nil { + return x.IsBlock } return false } type GetUserByIdResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - User *User `protobuf:"bytes,2,opt,name=user" json:"user,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` } -func (m *GetUserByIdResp) Reset() { *m = GetUserByIdResp{} } -func (m *GetUserByIdResp) String() string { return proto.CompactTextString(m) } -func (*GetUserByIdResp) ProtoMessage() {} +func (x *GetUserByIdResp) Reset() { + *x = GetUserByIdResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserByIdResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserByIdResp) ProtoMessage() {} + +func (x *GetUserByIdResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserByIdResp.ProtoReflect.Descriptor instead. func (*GetUserByIdResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{30} -} -func (m *GetUserByIdResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserByIdResp.Unmarshal(m, b) -} -func (m *GetUserByIdResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserByIdResp.Marshal(b, m, deterministic) -} -func (dst *GetUserByIdResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserByIdResp.Merge(dst, src) -} -func (m *GetUserByIdResp) XXX_Size() int { - return xxx_messageInfo_GetUserByIdResp.Size(m) -} -func (m *GetUserByIdResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserByIdResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{30} } -var xxx_messageInfo_GetUserByIdResp proto.InternalMessageInfo - -func (m *GetUserByIdResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *GetUserByIdResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *GetUserByIdResp) GetUser() *User { - if m != nil { - return m.User +func (x *GetUserByIdResp) GetUser() *User { + if x != nil { + return x.User } return nil } type GetUsersByNameReq struct { - UserName string `protobuf:"bytes,1,opt,name=UserName" json:"UserName,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *GetUsersByNameReq) Reset() { *m = GetUsersByNameReq{} } -func (m *GetUsersByNameReq) String() string { return proto.CompactTextString(m) } -func (*GetUsersByNameReq) ProtoMessage() {} +func (x *GetUsersByNameReq) Reset() { + *x = GetUsersByNameReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsersByNameReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsersByNameReq) ProtoMessage() {} + +func (x *GetUsersByNameReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsersByNameReq.ProtoReflect.Descriptor instead. func (*GetUsersByNameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{31} -} -func (m *GetUsersByNameReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUsersByNameReq.Unmarshal(m, b) -} -func (m *GetUsersByNameReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUsersByNameReq.Marshal(b, m, deterministic) -} -func (dst *GetUsersByNameReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUsersByNameReq.Merge(dst, src) -} -func (m *GetUsersByNameReq) XXX_Size() int { - return xxx_messageInfo_GetUsersByNameReq.Size(m) -} -func (m *GetUsersByNameReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetUsersByNameReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{31} } -var xxx_messageInfo_GetUsersByNameReq proto.InternalMessageInfo - -func (m *GetUsersByNameReq) GetUserName() string { - if m != nil { - return m.UserName +func (x *GetUsersByNameReq) GetUserName() string { + if x != nil { + return x.UserName } return "" } -func (m *GetUsersByNameReq) GetPagination() *sdk_ws.RequestPagination { - if m != nil { - return m.Pagination +func (x *GetUsersByNameReq) GetPagination() *sdk_ws.RequestPagination { + if x != nil { + return x.Pagination } return nil } -func (m *GetUsersByNameReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetUsersByNameReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetUsersByNameResp struct { - Users []*User `protobuf:"bytes,1,rep,name=users" json:"users,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` - UserNums int32 `protobuf:"varint,3,opt,name=UserNums" json:"UserNums,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Users []*User `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + UserNums int32 `protobuf:"varint,3,opt,name=UserNums,proto3" json:"UserNums,omitempty"` } -func (m *GetUsersByNameResp) Reset() { *m = GetUsersByNameResp{} } -func (m *GetUsersByNameResp) String() string { return proto.CompactTextString(m) } -func (*GetUsersByNameResp) ProtoMessage() {} +func (x *GetUsersByNameResp) Reset() { + *x = GetUsersByNameResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsersByNameResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsersByNameResp) ProtoMessage() {} + +func (x *GetUsersByNameResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsersByNameResp.ProtoReflect.Descriptor instead. func (*GetUsersByNameResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{32} -} -func (m *GetUsersByNameResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUsersByNameResp.Unmarshal(m, b) -} -func (m *GetUsersByNameResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUsersByNameResp.Marshal(b, m, deterministic) -} -func (dst *GetUsersByNameResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUsersByNameResp.Merge(dst, src) -} -func (m *GetUsersByNameResp) XXX_Size() int { - return xxx_messageInfo_GetUsersByNameResp.Size(m) -} -func (m *GetUsersByNameResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetUsersByNameResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{32} } -var xxx_messageInfo_GetUsersByNameResp proto.InternalMessageInfo - -func (m *GetUsersByNameResp) GetUsers() []*User { - if m != nil { - return m.Users +func (x *GetUsersByNameResp) GetUsers() []*User { + if x != nil { + return x.Users } return nil } -func (m *GetUsersByNameResp) GetPagination() *sdk_ws.ResponsePagination { - if m != nil { - return m.Pagination +func (x *GetUsersByNameResp) GetPagination() *sdk_ws.ResponsePagination { + if x != nil { + return x.Pagination } return nil } -func (m *GetUsersByNameResp) GetUserNums() int32 { - if m != nil { - return m.UserNums +func (x *GetUsersByNameResp) GetUserNums() int32 { + if x != nil { + return x.UserNums } return 0 } type AlterUserReq struct { - UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - PhoneNumber int64 `protobuf:"varint,3,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` - Nickname string `protobuf:"bytes,4,opt,name=Nickname" json:"Nickname,omitempty"` - Email string `protobuf:"bytes,5,opt,name=Email" json:"Email,omitempty"` - OpUserId string `protobuf:"bytes,6,opt,name=OpUserId" json:"OpUserId,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + PhoneNumber int64 `protobuf:"varint,3,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` + Nickname string `protobuf:"bytes,4,opt,name=Nickname,proto3" json:"Nickname,omitempty"` + Email string `protobuf:"bytes,5,opt,name=Email,proto3" json:"Email,omitempty"` + OpUserId string `protobuf:"bytes,6,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` } -func (m *AlterUserReq) Reset() { *m = AlterUserReq{} } -func (m *AlterUserReq) String() string { return proto.CompactTextString(m) } -func (*AlterUserReq) ProtoMessage() {} +func (x *AlterUserReq) Reset() { + *x = AlterUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AlterUserReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AlterUserReq) ProtoMessage() {} + +func (x *AlterUserReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AlterUserReq.ProtoReflect.Descriptor instead. func (*AlterUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{33} -} -func (m *AlterUserReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AlterUserReq.Unmarshal(m, b) -} -func (m *AlterUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AlterUserReq.Marshal(b, m, deterministic) -} -func (dst *AlterUserReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_AlterUserReq.Merge(dst, src) -} -func (m *AlterUserReq) XXX_Size() int { - return xxx_messageInfo_AlterUserReq.Size(m) -} -func (m *AlterUserReq) XXX_DiscardUnknown() { - xxx_messageInfo_AlterUserReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{33} } -var xxx_messageInfo_AlterUserReq proto.InternalMessageInfo - -func (m *AlterUserReq) GetUserId() string { - if m != nil { - return m.UserId +func (x *AlterUserReq) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *AlterUserReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *AlterUserReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *AlterUserReq) GetPhoneNumber() int64 { - if m != nil { - return m.PhoneNumber +func (x *AlterUserReq) GetPhoneNumber() int64 { + if x != nil { + return x.PhoneNumber } return 0 } -func (m *AlterUserReq) GetNickname() string { - if m != nil { - return m.Nickname +func (x *AlterUserReq) GetNickname() string { + if x != nil { + return x.Nickname } return "" } -func (m *AlterUserReq) GetEmail() string { - if m != nil { - return m.Email +func (x *AlterUserReq) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *AlterUserReq) GetOpUserId() string { - if m != nil { - return m.OpUserId +func (x *AlterUserReq) GetOpUserId() string { + if x != nil { + return x.OpUserId } return "" } type AlterUserResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (m *AlterUserResp) Reset() { *m = AlterUserResp{} } -func (m *AlterUserResp) String() string { return proto.CompactTextString(m) } -func (*AlterUserResp) ProtoMessage() {} +func (x *AlterUserResp) Reset() { + *x = AlterUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AlterUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AlterUserResp) ProtoMessage() {} + +func (x *AlterUserResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AlterUserResp.ProtoReflect.Descriptor instead. func (*AlterUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{34} -} -func (m *AlterUserResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AlterUserResp.Unmarshal(m, b) -} -func (m *AlterUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AlterUserResp.Marshal(b, m, deterministic) -} -func (dst *AlterUserResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_AlterUserResp.Merge(dst, src) -} -func (m *AlterUserResp) XXX_Size() int { - return xxx_messageInfo_AlterUserResp.Size(m) -} -func (m *AlterUserResp) XXX_DiscardUnknown() { - xxx_messageInfo_AlterUserResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{34} } -var xxx_messageInfo_AlterUserResp proto.InternalMessageInfo - -func (m *AlterUserResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *AlterUserResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type GetUsersReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` - UserName string `protobuf:"bytes,3,opt,name=UserName" json:"UserName,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + UserName string `protobuf:"bytes,3,opt,name=UserName,proto3" json:"UserName,omitempty"` } -func (m *GetUsersReq) Reset() { *m = GetUsersReq{} } -func (m *GetUsersReq) String() string { return proto.CompactTextString(m) } -func (*GetUsersReq) ProtoMessage() {} +func (x *GetUsersReq) Reset() { + *x = GetUsersReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsersReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsersReq) ProtoMessage() {} + +func (x *GetUsersReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsersReq.ProtoReflect.Descriptor instead. func (*GetUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{35} -} -func (m *GetUsersReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUsersReq.Unmarshal(m, b) -} -func (m *GetUsersReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUsersReq.Marshal(b, m, deterministic) -} -func (dst *GetUsersReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUsersReq.Merge(dst, src) -} -func (m *GetUsersReq) XXX_Size() int { - return xxx_messageInfo_GetUsersReq.Size(m) -} -func (m *GetUsersReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetUsersReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{35} } -var xxx_messageInfo_GetUsersReq proto.InternalMessageInfo - -func (m *GetUsersReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetUsersReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GetUsersReq) GetPagination() *sdk_ws.RequestPagination { - if m != nil { - return m.Pagination +func (x *GetUsersReq) GetPagination() *sdk_ws.RequestPagination { + if x != nil { + return x.Pagination } return nil } -func (m *GetUsersReq) GetUserName() string { - if m != nil { - return m.UserName +func (x *GetUsersReq) GetUserName() string { + if x != nil { + return x.UserName } return "" } type GetUsersResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - User []*User `protobuf:"bytes,2,rep,name=user" json:"user,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination" json:"Pagination,omitempty"` - UserNums int32 `protobuf:"varint,4,opt,name=UserNums" json:"UserNums,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + User []*User `protobuf:"bytes,2,rep,name=user,proto3" json:"user,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + UserNums int32 `protobuf:"varint,4,opt,name=UserNums,proto3" json:"UserNums,omitempty"` } -func (m *GetUsersResp) Reset() { *m = GetUsersResp{} } -func (m *GetUsersResp) String() string { return proto.CompactTextString(m) } -func (*GetUsersResp) ProtoMessage() {} +func (x *GetUsersResp) Reset() { + *x = GetUsersResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsersResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsersResp) ProtoMessage() {} + +func (x *GetUsersResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsersResp.ProtoReflect.Descriptor instead. func (*GetUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{36} -} -func (m *GetUsersResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUsersResp.Unmarshal(m, b) -} -func (m *GetUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUsersResp.Marshal(b, m, deterministic) -} -func (dst *GetUsersResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUsersResp.Merge(dst, src) -} -func (m *GetUsersResp) XXX_Size() int { - return xxx_messageInfo_GetUsersResp.Size(m) -} -func (m *GetUsersResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetUsersResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{36} } -var xxx_messageInfo_GetUsersResp proto.InternalMessageInfo - -func (m *GetUsersResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *GetUsersResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *GetUsersResp) GetUser() []*User { - if m != nil { - return m.User +func (x *GetUsersResp) GetUser() []*User { + if x != nil { + return x.User } return nil } -func (m *GetUsersResp) GetPagination() *sdk_ws.ResponsePagination { - if m != nil { - return m.Pagination +func (x *GetUsersResp) GetPagination() *sdk_ws.ResponsePagination { + if x != nil { + return x.Pagination } return nil } -func (m *GetUsersResp) GetUserNums() int32 { - if m != nil { - return m.UserNums +func (x *GetUsersResp) GetUserNums() int32 { + if x != nil { + return x.UserNums } return 0 } type AddUserReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - PhoneNumber string `protobuf:"bytes,2,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` - UserId string `protobuf:"bytes,3,opt,name=UserId" json:"UserId,omitempty"` - Name string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"` - OpUserId string `protobuf:"bytes,5,opt,name=OpUserId" json:"OpUserId,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + PhoneNumber string `protobuf:"bytes,2,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` + UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + OpUserId string `protobuf:"bytes,5,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` } -func (m *AddUserReq) Reset() { *m = AddUserReq{} } -func (m *AddUserReq) String() string { return proto.CompactTextString(m) } -func (*AddUserReq) ProtoMessage() {} +func (x *AddUserReq) Reset() { + *x = AddUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddUserReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddUserReq) ProtoMessage() {} + +func (x *AddUserReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddUserReq.ProtoReflect.Descriptor instead. func (*AddUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{37} -} -func (m *AddUserReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AddUserReq.Unmarshal(m, b) -} -func (m *AddUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AddUserReq.Marshal(b, m, deterministic) -} -func (dst *AddUserReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddUserReq.Merge(dst, src) -} -func (m *AddUserReq) XXX_Size() int { - return xxx_messageInfo_AddUserReq.Size(m) -} -func (m *AddUserReq) XXX_DiscardUnknown() { - xxx_messageInfo_AddUserReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{37} } -var xxx_messageInfo_AddUserReq proto.InternalMessageInfo - -func (m *AddUserReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *AddUserReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *AddUserReq) GetPhoneNumber() string { - if m != nil { - return m.PhoneNumber +func (x *AddUserReq) GetPhoneNumber() string { + if x != nil { + return x.PhoneNumber } return "" } -func (m *AddUserReq) GetUserId() string { - if m != nil { - return m.UserId +func (x *AddUserReq) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *AddUserReq) GetName() string { - if m != nil { - return m.Name +func (x *AddUserReq) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *AddUserReq) GetOpUserId() string { - if m != nil { - return m.OpUserId +func (x *AddUserReq) GetOpUserId() string { + if x != nil { + return x.OpUserId } return "" } type AddUserResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (m *AddUserResp) Reset() { *m = AddUserResp{} } -func (m *AddUserResp) String() string { return proto.CompactTextString(m) } -func (*AddUserResp) ProtoMessage() {} +func (x *AddUserResp) Reset() { + *x = AddUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddUserResp) ProtoMessage() {} + +func (x *AddUserResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddUserResp.ProtoReflect.Descriptor instead. func (*AddUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{38} -} -func (m *AddUserResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AddUserResp.Unmarshal(m, b) -} -func (m *AddUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AddUserResp.Marshal(b, m, deterministic) -} -func (dst *AddUserResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddUserResp.Merge(dst, src) -} -func (m *AddUserResp) XXX_Size() int { - return xxx_messageInfo_AddUserResp.Size(m) -} -func (m *AddUserResp) XXX_DiscardUnknown() { - xxx_messageInfo_AddUserResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{38} } -var xxx_messageInfo_AddUserResp proto.InternalMessageInfo - -func (m *AddUserResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *AddUserResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type BlockUserReq struct { - UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` - EndDisableTime string `protobuf:"bytes,2,opt,name=EndDisableTime" json:"EndDisableTime,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserId string `protobuf:"bytes,4,opt,name=OpUserId" json:"OpUserId,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` + EndDisableTime string `protobuf:"bytes,2,opt,name=EndDisableTime,proto3" json:"EndDisableTime,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserId string `protobuf:"bytes,4,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` } -func (m *BlockUserReq) Reset() { *m = BlockUserReq{} } -func (m *BlockUserReq) String() string { return proto.CompactTextString(m) } -func (*BlockUserReq) ProtoMessage() {} +func (x *BlockUserReq) Reset() { + *x = BlockUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockUserReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockUserReq) ProtoMessage() {} + +func (x *BlockUserReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BlockUserReq.ProtoReflect.Descriptor instead. func (*BlockUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{39} -} -func (m *BlockUserReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BlockUserReq.Unmarshal(m, b) -} -func (m *BlockUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BlockUserReq.Marshal(b, m, deterministic) -} -func (dst *BlockUserReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_BlockUserReq.Merge(dst, src) -} -func (m *BlockUserReq) XXX_Size() int { - return xxx_messageInfo_BlockUserReq.Size(m) -} -func (m *BlockUserReq) XXX_DiscardUnknown() { - xxx_messageInfo_BlockUserReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{39} } -var xxx_messageInfo_BlockUserReq proto.InternalMessageInfo - -func (m *BlockUserReq) GetUserId() string { - if m != nil { - return m.UserId +func (x *BlockUserReq) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *BlockUserReq) GetEndDisableTime() string { - if m != nil { - return m.EndDisableTime +func (x *BlockUserReq) GetEndDisableTime() string { + if x != nil { + return x.EndDisableTime } return "" } -func (m *BlockUserReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *BlockUserReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *BlockUserReq) GetOpUserId() string { - if m != nil { - return m.OpUserId +func (x *BlockUserReq) GetOpUserId() string { + if x != nil { + return x.OpUserId } return "" } type BlockUserResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (m *BlockUserResp) Reset() { *m = BlockUserResp{} } -func (m *BlockUserResp) String() string { return proto.CompactTextString(m) } -func (*BlockUserResp) ProtoMessage() {} +func (x *BlockUserResp) Reset() { + *x = BlockUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockUserResp) ProtoMessage() {} + +func (x *BlockUserResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BlockUserResp.ProtoReflect.Descriptor instead. func (*BlockUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{40} -} -func (m *BlockUserResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BlockUserResp.Unmarshal(m, b) -} -func (m *BlockUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BlockUserResp.Marshal(b, m, deterministic) -} -func (dst *BlockUserResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_BlockUserResp.Merge(dst, src) -} -func (m *BlockUserResp) XXX_Size() int { - return xxx_messageInfo_BlockUserResp.Size(m) -} -func (m *BlockUserResp) XXX_DiscardUnknown() { - xxx_messageInfo_BlockUserResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{40} } -var xxx_messageInfo_BlockUserResp proto.InternalMessageInfo - -func (m *BlockUserResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *BlockUserResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type UnBlockUserReq struct { - UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserId string `protobuf:"bytes,3,opt,name=OpUserId" json:"OpUserId,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserId string `protobuf:"bytes,3,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` } -func (m *UnBlockUserReq) Reset() { *m = UnBlockUserReq{} } -func (m *UnBlockUserReq) String() string { return proto.CompactTextString(m) } -func (*UnBlockUserReq) ProtoMessage() {} +func (x *UnBlockUserReq) Reset() { + *x = UnBlockUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnBlockUserReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnBlockUserReq) ProtoMessage() {} + +func (x *UnBlockUserReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UnBlockUserReq.ProtoReflect.Descriptor instead. func (*UnBlockUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{41} -} -func (m *UnBlockUserReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UnBlockUserReq.Unmarshal(m, b) -} -func (m *UnBlockUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UnBlockUserReq.Marshal(b, m, deterministic) -} -func (dst *UnBlockUserReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_UnBlockUserReq.Merge(dst, src) -} -func (m *UnBlockUserReq) XXX_Size() int { - return xxx_messageInfo_UnBlockUserReq.Size(m) -} -func (m *UnBlockUserReq) XXX_DiscardUnknown() { - xxx_messageInfo_UnBlockUserReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{41} } -var xxx_messageInfo_UnBlockUserReq proto.InternalMessageInfo - -func (m *UnBlockUserReq) GetUserId() string { - if m != nil { - return m.UserId +func (x *UnBlockUserReq) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *UnBlockUserReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *UnBlockUserReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *UnBlockUserReq) GetOpUserId() string { - if m != nil { - return m.OpUserId +func (x *UnBlockUserReq) GetOpUserId() string { + if x != nil { + return x.OpUserId } return "" } type UnBlockUserResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (m *UnBlockUserResp) Reset() { *m = UnBlockUserResp{} } -func (m *UnBlockUserResp) String() string { return proto.CompactTextString(m) } -func (*UnBlockUserResp) ProtoMessage() {} +func (x *UnBlockUserResp) Reset() { + *x = UnBlockUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnBlockUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnBlockUserResp) ProtoMessage() {} + +func (x *UnBlockUserResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UnBlockUserResp.ProtoReflect.Descriptor instead. func (*UnBlockUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{42} -} -func (m *UnBlockUserResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UnBlockUserResp.Unmarshal(m, b) -} -func (m *UnBlockUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UnBlockUserResp.Marshal(b, m, deterministic) -} -func (dst *UnBlockUserResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_UnBlockUserResp.Merge(dst, src) -} -func (m *UnBlockUserResp) XXX_Size() int { - return xxx_messageInfo_UnBlockUserResp.Size(m) -} -func (m *UnBlockUserResp) XXX_DiscardUnknown() { - xxx_messageInfo_UnBlockUserResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{42} } -var xxx_messageInfo_UnBlockUserResp proto.InternalMessageInfo - -func (m *UnBlockUserResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *UnBlockUserResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type GetBlockUsersReq struct { - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - BlockUserNum int32 `protobuf:"varint,3,opt,name=BlockUserNum" json:"BlockUserNum,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + BlockUserNum int32 `protobuf:"varint,3,opt,name=BlockUserNum,proto3" json:"BlockUserNum,omitempty"` } -func (m *GetBlockUsersReq) Reset() { *m = GetBlockUsersReq{} } -func (m *GetBlockUsersReq) String() string { return proto.CompactTextString(m) } -func (*GetBlockUsersReq) ProtoMessage() {} +func (x *GetBlockUsersReq) Reset() { + *x = GetBlockUsersReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBlockUsersReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBlockUsersReq) ProtoMessage() {} + +func (x *GetBlockUsersReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBlockUsersReq.ProtoReflect.Descriptor instead. func (*GetBlockUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{43} -} -func (m *GetBlockUsersReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetBlockUsersReq.Unmarshal(m, b) -} -func (m *GetBlockUsersReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetBlockUsersReq.Marshal(b, m, deterministic) -} -func (dst *GetBlockUsersReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetBlockUsersReq.Merge(dst, src) -} -func (m *GetBlockUsersReq) XXX_Size() int { - return xxx_messageInfo_GetBlockUsersReq.Size(m) -} -func (m *GetBlockUsersReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetBlockUsersReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{43} } -var xxx_messageInfo_GetBlockUsersReq proto.InternalMessageInfo - -func (m *GetBlockUsersReq) GetPagination() *sdk_ws.RequestPagination { - if m != nil { - return m.Pagination +func (x *GetBlockUsersReq) GetPagination() *sdk_ws.RequestPagination { + if x != nil { + return x.Pagination } return nil } -func (m *GetBlockUsersReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetBlockUsersReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GetBlockUsersReq) GetBlockUserNum() int32 { - if m != nil { - return m.BlockUserNum +func (x *GetBlockUsersReq) GetBlockUserNum() int32 { + if x != nil { + return x.BlockUserNum } return 0 } type BlockUser struct { - User *User `protobuf:"bytes,1,opt,name=User" json:"User,omitempty"` - BeginDisableTime string `protobuf:"bytes,2,opt,name=BeginDisableTime" json:"BeginDisableTime,omitempty"` - EndDisableTime string `protobuf:"bytes,3,opt,name=EndDisableTime" json:"EndDisableTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + User *User `protobuf:"bytes,1,opt,name=User,proto3" json:"User,omitempty"` + BeginDisableTime string `protobuf:"bytes,2,opt,name=BeginDisableTime,proto3" json:"BeginDisableTime,omitempty"` + EndDisableTime string `protobuf:"bytes,3,opt,name=EndDisableTime,proto3" json:"EndDisableTime,omitempty"` } -func (m *BlockUser) Reset() { *m = BlockUser{} } -func (m *BlockUser) String() string { return proto.CompactTextString(m) } -func (*BlockUser) ProtoMessage() {} +func (x *BlockUser) Reset() { + *x = BlockUser{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockUser) ProtoMessage() {} + +func (x *BlockUser) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BlockUser.ProtoReflect.Descriptor instead. func (*BlockUser) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{44} -} -func (m *BlockUser) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BlockUser.Unmarshal(m, b) -} -func (m *BlockUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BlockUser.Marshal(b, m, deterministic) -} -func (dst *BlockUser) XXX_Merge(src proto.Message) { - xxx_messageInfo_BlockUser.Merge(dst, src) -} -func (m *BlockUser) XXX_Size() int { - return xxx_messageInfo_BlockUser.Size(m) -} -func (m *BlockUser) XXX_DiscardUnknown() { - xxx_messageInfo_BlockUser.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{44} } -var xxx_messageInfo_BlockUser proto.InternalMessageInfo - -func (m *BlockUser) GetUser() *User { - if m != nil { - return m.User +func (x *BlockUser) GetUser() *User { + if x != nil { + return x.User } return nil } -func (m *BlockUser) GetBeginDisableTime() string { - if m != nil { - return m.BeginDisableTime +func (x *BlockUser) GetBeginDisableTime() string { + if x != nil { + return x.BeginDisableTime } return "" } -func (m *BlockUser) GetEndDisableTime() string { - if m != nil { - return m.EndDisableTime +func (x *BlockUser) GetEndDisableTime() string { + if x != nil { + return x.EndDisableTime } return "" } type GetBlockUsersResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - BlockUsers []*BlockUser `protobuf:"bytes,2,rep,name=BlockUsers" json:"BlockUsers,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination" json:"Pagination,omitempty"` - UserNums int32 `protobuf:"varint,4,opt,name=UserNums" json:"UserNums,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + BlockUsers []*BlockUser `protobuf:"bytes,2,rep,name=BlockUsers,proto3" json:"BlockUsers,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + UserNums int32 `protobuf:"varint,4,opt,name=UserNums,proto3" json:"UserNums,omitempty"` } -func (m *GetBlockUsersResp) Reset() { *m = GetBlockUsersResp{} } -func (m *GetBlockUsersResp) String() string { return proto.CompactTextString(m) } -func (*GetBlockUsersResp) ProtoMessage() {} +func (x *GetBlockUsersResp) Reset() { + *x = GetBlockUsersResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBlockUsersResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBlockUsersResp) ProtoMessage() {} + +func (x *GetBlockUsersResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBlockUsersResp.ProtoReflect.Descriptor instead. func (*GetBlockUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{45} -} -func (m *GetBlockUsersResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetBlockUsersResp.Unmarshal(m, b) -} -func (m *GetBlockUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetBlockUsersResp.Marshal(b, m, deterministic) -} -func (dst *GetBlockUsersResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetBlockUsersResp.Merge(dst, src) -} -func (m *GetBlockUsersResp) XXX_Size() int { - return xxx_messageInfo_GetBlockUsersResp.Size(m) -} -func (m *GetBlockUsersResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetBlockUsersResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{45} } -var xxx_messageInfo_GetBlockUsersResp proto.InternalMessageInfo - -func (m *GetBlockUsersResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *GetBlockUsersResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *GetBlockUsersResp) GetBlockUsers() []*BlockUser { - if m != nil { - return m.BlockUsers +func (x *GetBlockUsersResp) GetBlockUsers() []*BlockUser { + if x != nil { + return x.BlockUsers } return nil } -func (m *GetBlockUsersResp) GetPagination() *sdk_ws.ResponsePagination { - if m != nil { - return m.Pagination +func (x *GetBlockUsersResp) GetPagination() *sdk_ws.ResponsePagination { + if x != nil { + return x.Pagination } return nil } -func (m *GetBlockUsersResp) GetUserNums() int32 { - if m != nil { - return m.UserNums +func (x *GetBlockUsersResp) GetUserNums() int32 { + if x != nil { + return x.UserNums } return 0 } type GetBlockUserByIdReq struct { - UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId" json:"User_id,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId,proto3" json:"User_id,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *GetBlockUserByIdReq) Reset() { *m = GetBlockUserByIdReq{} } -func (m *GetBlockUserByIdReq) String() string { return proto.CompactTextString(m) } -func (*GetBlockUserByIdReq) ProtoMessage() {} +func (x *GetBlockUserByIdReq) Reset() { + *x = GetBlockUserByIdReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBlockUserByIdReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBlockUserByIdReq) ProtoMessage() {} + +func (x *GetBlockUserByIdReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBlockUserByIdReq.ProtoReflect.Descriptor instead. func (*GetBlockUserByIdReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{46} -} -func (m *GetBlockUserByIdReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetBlockUserByIdReq.Unmarshal(m, b) -} -func (m *GetBlockUserByIdReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetBlockUserByIdReq.Marshal(b, m, deterministic) -} -func (dst *GetBlockUserByIdReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetBlockUserByIdReq.Merge(dst, src) -} -func (m *GetBlockUserByIdReq) XXX_Size() int { - return xxx_messageInfo_GetBlockUserByIdReq.Size(m) -} -func (m *GetBlockUserByIdReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetBlockUserByIdReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{46} } -var xxx_messageInfo_GetBlockUserByIdReq proto.InternalMessageInfo - -func (m *GetBlockUserByIdReq) GetUserId() string { - if m != nil { - return m.UserId +func (x *GetBlockUserByIdReq) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *GetBlockUserByIdReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetBlockUserByIdReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetBlockUserByIdResp struct { - BlockUser *BlockUser `protobuf:"bytes,2,opt,name=BlockUser" json:"BlockUser,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlockUser *BlockUser `protobuf:"bytes,2,opt,name=BlockUser,proto3" json:"BlockUser,omitempty"` } -func (m *GetBlockUserByIdResp) Reset() { *m = GetBlockUserByIdResp{} } -func (m *GetBlockUserByIdResp) String() string { return proto.CompactTextString(m) } -func (*GetBlockUserByIdResp) ProtoMessage() {} +func (x *GetBlockUserByIdResp) Reset() { + *x = GetBlockUserByIdResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBlockUserByIdResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBlockUserByIdResp) ProtoMessage() {} + +func (x *GetBlockUserByIdResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[47] + 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 GetBlockUserByIdResp.ProtoReflect.Descriptor instead. func (*GetBlockUserByIdResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{47} -} -func (m *GetBlockUserByIdResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetBlockUserByIdResp.Unmarshal(m, b) -} -func (m *GetBlockUserByIdResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetBlockUserByIdResp.Marshal(b, m, deterministic) -} -func (dst *GetBlockUserByIdResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetBlockUserByIdResp.Merge(dst, src) -} -func (m *GetBlockUserByIdResp) XXX_Size() int { - return xxx_messageInfo_GetBlockUserByIdResp.Size(m) -} -func (m *GetBlockUserByIdResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetBlockUserByIdResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{47} } -var xxx_messageInfo_GetBlockUserByIdResp proto.InternalMessageInfo - -func (m *GetBlockUserByIdResp) GetBlockUser() *BlockUser { - if m != nil { - return m.BlockUser +func (x *GetBlockUserByIdResp) GetBlockUser() *BlockUser { + if x != nil { + return x.BlockUser } return nil } type DeleteUserReq struct { - UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId" json:"User_id,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserId string `protobuf:"bytes,3,opt,name=OpUserId" json:"OpUserId,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId,proto3" json:"User_id,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserId string `protobuf:"bytes,3,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` } -func (m *DeleteUserReq) Reset() { *m = DeleteUserReq{} } -func (m *DeleteUserReq) String() string { return proto.CompactTextString(m) } -func (*DeleteUserReq) ProtoMessage() {} +func (x *DeleteUserReq) Reset() { + *x = DeleteUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteUserReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUserReq) ProtoMessage() {} + +func (x *DeleteUserReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[48] + 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 DeleteUserReq.ProtoReflect.Descriptor instead. func (*DeleteUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{48} -} -func (m *DeleteUserReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteUserReq.Unmarshal(m, b) -} -func (m *DeleteUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteUserReq.Marshal(b, m, deterministic) -} -func (dst *DeleteUserReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteUserReq.Merge(dst, src) -} -func (m *DeleteUserReq) XXX_Size() int { - return xxx_messageInfo_DeleteUserReq.Size(m) -} -func (m *DeleteUserReq) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteUserReq.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{48} } -var xxx_messageInfo_DeleteUserReq proto.InternalMessageInfo - -func (m *DeleteUserReq) GetUserId() string { - if m != nil { - return m.UserId +func (x *DeleteUserReq) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *DeleteUserReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *DeleteUserReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *DeleteUserReq) GetOpUserId() string { - if m != nil { - return m.OpUserId +func (x *DeleteUserReq) GetOpUserId() string { + if x != nil { + return x.OpUserId } return "" } type DeleteUserResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (m *DeleteUserResp) Reset() { *m = DeleteUserResp{} } -func (m *DeleteUserResp) String() string { return proto.CompactTextString(m) } -func (*DeleteUserResp) ProtoMessage() {} +func (x *DeleteUserResp) Reset() { + *x = DeleteUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUserResp) ProtoMessage() {} + +func (x *DeleteUserResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[49] + 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 DeleteUserResp.ProtoReflect.Descriptor instead. func (*DeleteUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_f1112695e0d68005, []int{49} -} -func (m *DeleteUserResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteUserResp.Unmarshal(m, b) -} -func (m *DeleteUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteUserResp.Marshal(b, m, deterministic) -} -func (dst *DeleteUserResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteUserResp.Merge(dst, src) -} -func (m *DeleteUserResp) XXX_Size() int { - return xxx_messageInfo_DeleteUserResp.Size(m) -} -func (m *DeleteUserResp) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteUserResp.DiscardUnknown(m) + return file_user_user_proto_rawDescGZIP(), []int{49} } -var xxx_messageInfo_DeleteUserResp proto.InternalMessageInfo - -func (m *DeleteUserResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *DeleteUserResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func init() { - proto.RegisterType((*CommonResp)(nil), "user.CommonResp") - proto.RegisterType((*DeleteUsersReq)(nil), "user.DeleteUsersReq") - proto.RegisterType((*DeleteUsersResp)(nil), "user.DeleteUsersResp") - proto.RegisterType((*GetAllUserIDReq)(nil), "user.GetAllUserIDReq") - proto.RegisterType((*GetAllUserIDResp)(nil), "user.GetAllUserIDResp") - proto.RegisterType((*AccountCheckReq)(nil), "user.AccountCheckReq") - proto.RegisterType((*AccountCheckResp)(nil), "user.AccountCheckResp") - proto.RegisterType((*AccountCheckResp_SingleUserStatus)(nil), "user.AccountCheckResp.SingleUserStatus") - proto.RegisterType((*GetUserInfoReq)(nil), "user.GetUserInfoReq") - proto.RegisterType((*GetUserInfoResp)(nil), "user.GetUserInfoResp") - proto.RegisterType((*UpdateUserInfoReq)(nil), "user.UpdateUserInfoReq") - proto.RegisterType((*UpdateUserInfoResp)(nil), "user.UpdateUserInfoResp") - proto.RegisterType((*SetGlobalRecvMessageOptReq)(nil), "user.SetGlobalRecvMessageOptReq") - proto.RegisterType((*SetGlobalRecvMessageOptResp)(nil), "user.SetGlobalRecvMessageOptResp") - proto.RegisterType((*Conversation)(nil), "user.Conversation") - proto.RegisterType((*SetConversationReq)(nil), "user.SetConversationReq") - proto.RegisterType((*SetConversationResp)(nil), "user.SetConversationResp") - proto.RegisterType((*SetRecvMsgOptReq)(nil), "user.SetRecvMsgOptReq") - proto.RegisterType((*SetRecvMsgOptResp)(nil), "user.SetRecvMsgOptResp") - proto.RegisterType((*GetConversationReq)(nil), "user.GetConversationReq") - proto.RegisterType((*GetConversationResp)(nil), "user.GetConversationResp") - proto.RegisterType((*GetConversationsReq)(nil), "user.GetConversationsReq") - proto.RegisterType((*GetConversationsResp)(nil), "user.GetConversationsResp") - proto.RegisterType((*GetAllConversationsReq)(nil), "user.GetAllConversationsReq") - proto.RegisterType((*GetAllConversationsResp)(nil), "user.GetAllConversationsResp") - proto.RegisterType((*BatchSetConversationsReq)(nil), "user.BatchSetConversationsReq") - proto.RegisterType((*BatchSetConversationsResp)(nil), "user.BatchSetConversationsResp") - proto.RegisterType((*ResignUserReq)(nil), "user.ResignUserReq") - proto.RegisterType((*ResignUserResp)(nil), "user.ResignUserResp") - proto.RegisterType((*GetUserByIdReq)(nil), "user.GetUserByIdReq") - proto.RegisterType((*User)(nil), "user.User") - proto.RegisterType((*GetUserByIdResp)(nil), "user.GetUserByIdResp") - proto.RegisterType((*GetUsersByNameReq)(nil), "user.GetUsersByNameReq") - proto.RegisterType((*GetUsersByNameResp)(nil), "user.GetUsersByNameResp") - proto.RegisterType((*AlterUserReq)(nil), "user.AlterUserReq") - proto.RegisterType((*AlterUserResp)(nil), "user.AlterUserResp") - proto.RegisterType((*GetUsersReq)(nil), "user.GetUsersReq") - proto.RegisterType((*GetUsersResp)(nil), "user.GetUsersResp") - proto.RegisterType((*AddUserReq)(nil), "user.AddUserReq") - proto.RegisterType((*AddUserResp)(nil), "user.AddUserResp") - proto.RegisterType((*BlockUserReq)(nil), "user.BlockUserReq") - proto.RegisterType((*BlockUserResp)(nil), "user.BlockUserResp") - proto.RegisterType((*UnBlockUserReq)(nil), "user.UnBlockUserReq") - proto.RegisterType((*UnBlockUserResp)(nil), "user.UnBlockUserResp") - proto.RegisterType((*GetBlockUsersReq)(nil), "user.GetBlockUsersReq") - proto.RegisterType((*BlockUser)(nil), "user.BlockUser") - proto.RegisterType((*GetBlockUsersResp)(nil), "user.GetBlockUsersResp") - proto.RegisterType((*GetBlockUserByIdReq)(nil), "user.GetBlockUserByIdReq") - proto.RegisterType((*GetBlockUserByIdResp)(nil), "user.GetBlockUserByIdResp") - proto.RegisterType((*DeleteUserReq)(nil), "user.DeleteUserReq") - proto.RegisterType((*DeleteUserResp)(nil), "user.DeleteUserResp") +type AccountCheckResp_SingleUserStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` + AccountStatus string `protobuf:"bytes,2,opt,name=accountStatus,proto3" json:"accountStatus,omitempty"` +} + +func (x *AccountCheckResp_SingleUserStatus) Reset() { + *x = AccountCheckResp_SingleUserStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountCheckResp_SingleUserStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} + +func (x *AccountCheckResp_SingleUserStatus) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[50] + 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 AccountCheckResp_SingleUserStatus.ProtoReflect.Descriptor instead. +func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *AccountCheckResp_SingleUserStatus) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *AccountCheckResp_SingleUserStatus) GetAccountStatus() string { + if x != nil { + return x.AccountStatus + } + return "" +} + +var File_user_user_proto protoreflect.FileDescriptor + +var file_user_user_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x04, 0x75, 0x73, 0x65, 0x72, 0x1a, 0x21, 0x4f, 0x70, 0x65, 0x6e, 0x5f, 0x49, 0x4d, + 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, + 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3e, 0x0a, 0x0a, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x7a, 0x0a, 0x0e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x2a, 0x0a, 0x10, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x6f, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, + 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x10, 0x46, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x6c, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x64, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, + 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, + 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x79, + 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, + 0x71, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xdf, 0x01, 0x0a, 0x10, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, + 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x47, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x50, 0x0a, 0x10, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6e, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x84, 0x01, 0x0a, 0x0f, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, + 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x37, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, + 0x46, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x82, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x12, 0x2a, 0x0a, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, + 0x67, 0x4f, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x22, 0x4f, 0x0a, 0x1b, + 0x53, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xda, 0x03, + 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, + 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x76, + 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, + 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x55, 0x6e, 0x72, + 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x72, 0x61, 0x66, + 0x74, 0x54, 0x65, 0x78, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0d, 0x44, 0x72, 0x61, 0x66, 0x74, 0x54, 0x65, 0x78, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x49, 0x73, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x49, 0x73, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, + 0x0a, 0x0d, 0x49, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x49, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x43, 0x68, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x49, 0x73, 0x4e, 0x6f, 0x74, 0x49, + 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x49, 0x73, + 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x45, 0x78, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x45, 0x78, 0x22, 0x9a, 0x01, 0x0a, 0x12, 0x53, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x47, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, + 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0xca, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, + 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, + 0x2a, 0x0a, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x45, 0x0a, + 0x11, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x80, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x43, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x7f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, + 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x82, + 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0x5c, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, + 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x22, 0x85, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, + 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x38, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x18, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x38, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x22, 0x7f, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, + 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x46, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x42, 0x0a, 0x0e, + 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, + 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x4a, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, + 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xa2, 0x03, 0x0a, + 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, + 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, + 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x61, 0x73, 0x74, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x12, + 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4c, 0x6f, 0x67, + 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x22, 0x63, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x97, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, + 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, + 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x22, 0x99, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0xb8, 0x01, 0x0a, + 0x0c, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, + 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, + 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, + 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc3, + 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, + 0x72, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, + 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, + 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x98, 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, + 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, + 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x8c, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, + 0x41, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x66, 0x0a, 0x0e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, + 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0f, 0x55, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, + 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x9e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x22, 0x7f, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, + 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, + 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x50, 0x0a, + 0x13, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, + 0x64, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, + 0x45, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, + 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x22, 0x66, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x42, + 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x32, 0xf7, 0x0b, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5e, 0x0a, 0x17, + 0x53, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x20, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, + 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x53, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, + 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, + 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, + 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x1a, 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, + 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x40, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, + 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, + 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, + 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, + 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, + 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, + 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, + 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x19, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, + 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_user_user_proto_rawDescOnce sync.Once + file_user_user_proto_rawDescData = file_user_user_proto_rawDesc +) + +func file_user_user_proto_rawDescGZIP() []byte { + file_user_user_proto_rawDescOnce.Do(func() { + file_user_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_user_proto_rawDescData) + }) + return file_user_user_proto_rawDescData +} + +var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 51) +var file_user_user_proto_goTypes = []interface{}{ + (*CommonResp)(nil), // 0: user.CommonResp + (*DeleteUsersReq)(nil), // 1: user.DeleteUsersReq + (*DeleteUsersResp)(nil), // 2: user.DeleteUsersResp + (*GetAllUserIDReq)(nil), // 3: user.GetAllUserIDReq + (*GetAllUserIDResp)(nil), // 4: user.GetAllUserIDResp + (*AccountCheckReq)(nil), // 5: user.AccountCheckReq + (*AccountCheckResp)(nil), // 6: user.AccountCheckResp + (*GetUserInfoReq)(nil), // 7: user.GetUserInfoReq + (*GetUserInfoResp)(nil), // 8: user.GetUserInfoResp + (*UpdateUserInfoReq)(nil), // 9: user.UpdateUserInfoReq + (*UpdateUserInfoResp)(nil), // 10: user.UpdateUserInfoResp + (*SetGlobalRecvMessageOptReq)(nil), // 11: user.SetGlobalRecvMessageOptReq + (*SetGlobalRecvMessageOptResp)(nil), // 12: user.SetGlobalRecvMessageOptResp + (*Conversation)(nil), // 13: user.Conversation + (*SetConversationReq)(nil), // 14: user.SetConversationReq + (*SetConversationResp)(nil), // 15: user.SetConversationResp + (*SetRecvMsgOptReq)(nil), // 16: user.SetRecvMsgOptReq + (*SetRecvMsgOptResp)(nil), // 17: user.SetRecvMsgOptResp + (*GetConversationReq)(nil), // 18: user.GetConversationReq + (*GetConversationResp)(nil), // 19: user.GetConversationResp + (*GetConversationsReq)(nil), // 20: user.GetConversationsReq + (*GetConversationsResp)(nil), // 21: user.GetConversationsResp + (*GetAllConversationsReq)(nil), // 22: user.GetAllConversationsReq + (*GetAllConversationsResp)(nil), // 23: user.GetAllConversationsResp + (*BatchSetConversationsReq)(nil), // 24: user.BatchSetConversationsReq + (*BatchSetConversationsResp)(nil), // 25: user.BatchSetConversationsResp + (*ResignUserReq)(nil), // 26: user.ResignUserReq + (*ResignUserResp)(nil), // 27: user.ResignUserResp + (*GetUserByIdReq)(nil), // 28: user.GetUserByIdReq + (*User)(nil), // 29: user.User + (*GetUserByIdResp)(nil), // 30: user.GetUserByIdResp + (*GetUsersByNameReq)(nil), // 31: user.GetUsersByNameReq + (*GetUsersByNameResp)(nil), // 32: user.GetUsersByNameResp + (*AlterUserReq)(nil), // 33: user.AlterUserReq + (*AlterUserResp)(nil), // 34: user.AlterUserResp + (*GetUsersReq)(nil), // 35: user.GetUsersReq + (*GetUsersResp)(nil), // 36: user.GetUsersResp + (*AddUserReq)(nil), // 37: user.AddUserReq + (*AddUserResp)(nil), // 38: user.AddUserResp + (*BlockUserReq)(nil), // 39: user.BlockUserReq + (*BlockUserResp)(nil), // 40: user.BlockUserResp + (*UnBlockUserReq)(nil), // 41: user.UnBlockUserReq + (*UnBlockUserResp)(nil), // 42: user.UnBlockUserResp + (*GetBlockUsersReq)(nil), // 43: user.GetBlockUsersReq + (*BlockUser)(nil), // 44: user.BlockUser + (*GetBlockUsersResp)(nil), // 45: user.GetBlockUsersResp + (*GetBlockUserByIdReq)(nil), // 46: user.GetBlockUserByIdReq + (*GetBlockUserByIdResp)(nil), // 47: user.GetBlockUserByIdResp + (*DeleteUserReq)(nil), // 48: user.DeleteUserReq + (*DeleteUserResp)(nil), // 49: user.DeleteUserResp + (*AccountCheckResp_SingleUserStatus)(nil), // 50: user.AccountCheckResp.SingleUserStatus + (*sdk_ws.UserInfo)(nil), // 51: server_api_params.UserInfo + (*sdk_ws.RequestPagination)(nil), // 52: server_api_params.RequestPagination + (*sdk_ws.ResponsePagination)(nil), // 53: server_api_params.ResponsePagination +} +var file_user_user_proto_depIdxs = []int32{ + 0, // 0: user.DeleteUsersResp.CommonResp:type_name -> user.CommonResp + 0, // 1: user.GetAllUserIDResp.CommonResp:type_name -> user.CommonResp + 0, // 2: user.AccountCheckResp.commonResp:type_name -> user.CommonResp + 50, // 3: user.AccountCheckResp.ResultList:type_name -> user.AccountCheckResp.SingleUserStatus + 0, // 4: user.GetUserInfoResp.commonResp:type_name -> user.CommonResp + 51, // 5: user.GetUserInfoResp.UserInfoList:type_name -> server_api_params.UserInfo + 51, // 6: user.UpdateUserInfoReq.UserInfo:type_name -> server_api_params.UserInfo + 0, // 7: user.UpdateUserInfoResp.commonResp:type_name -> user.CommonResp + 0, // 8: user.SetGlobalRecvMessageOptResp.commonResp:type_name -> user.CommonResp + 13, // 9: user.SetConversationReq.Conversation:type_name -> user.Conversation + 0, // 10: user.SetConversationResp.commonResp:type_name -> user.CommonResp + 0, // 11: user.SetRecvMsgOptResp.commonResp:type_name -> user.CommonResp + 0, // 12: user.GetConversationResp.commonResp:type_name -> user.CommonResp + 13, // 13: user.GetConversationResp.Conversation:type_name -> user.Conversation + 0, // 14: user.GetConversationsResp.commonResp:type_name -> user.CommonResp + 13, // 15: user.GetConversationsResp.Conversations:type_name -> user.Conversation + 0, // 16: user.GetAllConversationsResp.commonResp:type_name -> user.CommonResp + 13, // 17: user.GetAllConversationsResp.Conversations:type_name -> user.Conversation + 13, // 18: user.BatchSetConversationsReq.Conversations:type_name -> user.Conversation + 0, // 19: user.BatchSetConversationsResp.commonResp:type_name -> user.CommonResp + 0, // 20: user.ResignUserResp.commonResp:type_name -> user.CommonResp + 0, // 21: user.GetUserByIdResp.CommonResp:type_name -> user.CommonResp + 29, // 22: user.GetUserByIdResp.user:type_name -> user.User + 52, // 23: user.GetUsersByNameReq.Pagination:type_name -> server_api_params.RequestPagination + 29, // 24: user.GetUsersByNameResp.users:type_name -> user.User + 53, // 25: user.GetUsersByNameResp.Pagination:type_name -> server_api_params.ResponsePagination + 0, // 26: user.AlterUserResp.CommonResp:type_name -> user.CommonResp + 52, // 27: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 0, // 28: user.GetUsersResp.CommonResp:type_name -> user.CommonResp + 29, // 29: user.GetUsersResp.user:type_name -> user.User + 53, // 30: user.GetUsersResp.Pagination:type_name -> server_api_params.ResponsePagination + 0, // 31: user.AddUserResp.CommonResp:type_name -> user.CommonResp + 0, // 32: user.BlockUserResp.CommonResp:type_name -> user.CommonResp + 0, // 33: user.UnBlockUserResp.CommonResp:type_name -> user.CommonResp + 52, // 34: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 29, // 35: user.BlockUser.User:type_name -> user.User + 0, // 36: user.GetBlockUsersResp.CommonResp:type_name -> user.CommonResp + 44, // 37: user.GetBlockUsersResp.BlockUsers:type_name -> user.BlockUser + 53, // 38: user.GetBlockUsersResp.Pagination:type_name -> server_api_params.ResponsePagination + 44, // 39: user.GetBlockUserByIdResp.BlockUser:type_name -> user.BlockUser + 0, // 40: user.DeleteUserResp.CommonResp:type_name -> user.CommonResp + 7, // 41: user.user.GetUserInfo:input_type -> user.GetUserInfoReq + 9, // 42: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq + 11, // 43: user.user.SetGlobalRecvMessageOpt:input_type -> user.SetGlobalRecvMessageOptReq + 1, // 44: user.user.DeleteUsers:input_type -> user.DeleteUsersReq + 3, // 45: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq + 5, // 46: user.user.AccountCheck:input_type -> user.AccountCheckReq + 18, // 47: user.user.GetConversation:input_type -> user.GetConversationReq + 22, // 48: user.user.GetAllConversations:input_type -> user.GetAllConversationsReq + 20, // 49: user.user.GetConversations:input_type -> user.GetConversationsReq + 24, // 50: user.user.BatchSetConversations:input_type -> user.BatchSetConversationsReq + 14, // 51: user.user.SetConversation:input_type -> user.SetConversationReq + 16, // 52: user.user.SetRecvMsgOpt:input_type -> user.SetRecvMsgOptReq + 28, // 53: user.user.GetUserById:input_type -> user.GetUserByIdReq + 31, // 54: user.user.GetUsersByName:input_type -> user.GetUsersByNameReq + 26, // 55: user.user.ResignUser:input_type -> user.ResignUserReq + 33, // 56: user.user.AlterUser:input_type -> user.AlterUserReq + 35, // 57: user.user.GetUsers:input_type -> user.GetUsersReq + 37, // 58: user.user.AddUser:input_type -> user.AddUserReq + 39, // 59: user.user.BlockUser:input_type -> user.BlockUserReq + 41, // 60: user.user.UnBlockUser:input_type -> user.UnBlockUserReq + 43, // 61: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq + 46, // 62: user.user.GetBlockUserById:input_type -> user.GetBlockUserByIdReq + 48, // 63: user.user.DeleteUser:input_type -> user.DeleteUserReq + 8, // 64: user.user.GetUserInfo:output_type -> user.GetUserInfoResp + 10, // 65: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp + 12, // 66: user.user.SetGlobalRecvMessageOpt:output_type -> user.SetGlobalRecvMessageOptResp + 2, // 67: user.user.DeleteUsers:output_type -> user.DeleteUsersResp + 4, // 68: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp + 6, // 69: user.user.AccountCheck:output_type -> user.AccountCheckResp + 19, // 70: user.user.GetConversation:output_type -> user.GetConversationResp + 23, // 71: user.user.GetAllConversations:output_type -> user.GetAllConversationsResp + 21, // 72: user.user.GetConversations:output_type -> user.GetConversationsResp + 25, // 73: user.user.BatchSetConversations:output_type -> user.BatchSetConversationsResp + 15, // 74: user.user.SetConversation:output_type -> user.SetConversationResp + 17, // 75: user.user.SetRecvMsgOpt:output_type -> user.SetRecvMsgOptResp + 30, // 76: user.user.GetUserById:output_type -> user.GetUserByIdResp + 32, // 77: user.user.GetUsersByName:output_type -> user.GetUsersByNameResp + 27, // 78: user.user.ResignUser:output_type -> user.ResignUserResp + 34, // 79: user.user.AlterUser:output_type -> user.AlterUserResp + 36, // 80: user.user.GetUsers:output_type -> user.GetUsersResp + 38, // 81: user.user.AddUser:output_type -> user.AddUserResp + 40, // 82: user.user.BlockUser:output_type -> user.BlockUserResp + 42, // 83: user.user.UnBlockUser:output_type -> user.UnBlockUserResp + 45, // 84: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp + 47, // 85: user.user.GetBlockUserById:output_type -> user.GetBlockUserByIdResp + 49, // 86: user.user.DeleteUser:output_type -> user.DeleteUserResp + 64, // [64:87] is the sub-list for method output_type + 41, // [41:64] is the sub-list for method input_type + 41, // [41:41] is the sub-list for extension type_name + 41, // [41:41] is the sub-list for extension extendee + 0, // [0:41] is the sub-list for field type_name +} + +func init() { file_user_user_proto_init() } +func file_user_user_proto_init() { + if File_user_user_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_user_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommonResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUsersReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUsersResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAllUserIDReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAllUserIDResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountCheckReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountCheckResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGlobalRecvMessageOptReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGlobalRecvMessageOptResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Conversation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetConversationReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetConversationResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetRecvMsgOptReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetRecvMsgOptResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetConversationReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetConversationResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetConversationsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetConversationsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAllConversationsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAllConversationsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchSetConversationsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchSetConversationsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResignUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResignUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserByIdReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*User); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserByIdResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsersByNameReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsersByNameResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AlterUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AlterUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsersReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsersResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnBlockUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnBlockUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockUsersReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockUsersResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockUserByIdReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockUserByIdResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountCheckResp_SingleUserStatus); 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_user_user_proto_rawDesc, + NumEnums: 0, + NumMessages: 51, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_user_user_proto_goTypes, + DependencyIndexes: file_user_user_proto_depIdxs, + MessageInfos: file_user_user_proto_msgTypes, + }.Build() + File_user_user_proto = out.File + file_user_user_proto_rawDesc = nil + file_user_user_proto_goTypes = nil + file_user_user_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConn +var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 - -// Client API for User service +const _ = grpc.SupportPackageIsVersion6 +// UserClient is the client API for User service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type UserClient interface { GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*UpdateUserInfoResp, error) @@ -2765,16 +4570,16 @@ type UserClient interface { } type userClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewUserClient(cc *grpc.ClientConn) UserClient { +func NewUserClient(cc grpc.ClientConnInterface) UserClient { return &userClient{cc} } func (c *userClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) { out := new(GetUserInfoResp) - err := grpc.Invoke(ctx, "/user.user/GetUserInfo", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/GetUserInfo", in, out, opts...) if err != nil { return nil, err } @@ -2783,7 +4588,7 @@ func (c *userClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts . func (c *userClient) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*UpdateUserInfoResp, error) { out := new(UpdateUserInfoResp) - err := grpc.Invoke(ctx, "/user.user/UpdateUserInfo", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/UpdateUserInfo", in, out, opts...) if err != nil { return nil, err } @@ -2792,7 +4597,7 @@ func (c *userClient) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, func (c *userClient) SetGlobalRecvMessageOpt(ctx context.Context, in *SetGlobalRecvMessageOptReq, opts ...grpc.CallOption) (*SetGlobalRecvMessageOptResp, error) { out := new(SetGlobalRecvMessageOptResp) - err := grpc.Invoke(ctx, "/user.user/SetGlobalRecvMessageOpt", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/SetGlobalRecvMessageOpt", in, out, opts...) if err != nil { return nil, err } @@ -2801,7 +4606,7 @@ func (c *userClient) SetGlobalRecvMessageOpt(ctx context.Context, in *SetGlobalR func (c *userClient) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) { out := new(DeleteUsersResp) - err := grpc.Invoke(ctx, "/user.user/DeleteUsers", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/DeleteUsers", in, out, opts...) if err != nil { return nil, err } @@ -2810,7 +4615,7 @@ func (c *userClient) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts . func (c *userClient) GetAllUserID(ctx context.Context, in *GetAllUserIDReq, opts ...grpc.CallOption) (*GetAllUserIDResp, error) { out := new(GetAllUserIDResp) - err := grpc.Invoke(ctx, "/user.user/GetAllUserID", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/GetAllUserID", in, out, opts...) if err != nil { return nil, err } @@ -2819,7 +4624,7 @@ func (c *userClient) GetAllUserID(ctx context.Context, in *GetAllUserIDReq, opts func (c *userClient) AccountCheck(ctx context.Context, in *AccountCheckReq, opts ...grpc.CallOption) (*AccountCheckResp, error) { out := new(AccountCheckResp) - err := grpc.Invoke(ctx, "/user.user/AccountCheck", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/AccountCheck", in, out, opts...) if err != nil { return nil, err } @@ -2828,7 +4633,7 @@ func (c *userClient) AccountCheck(ctx context.Context, in *AccountCheckReq, opts func (c *userClient) GetConversation(ctx context.Context, in *GetConversationReq, opts ...grpc.CallOption) (*GetConversationResp, error) { out := new(GetConversationResp) - err := grpc.Invoke(ctx, "/user.user/GetConversation", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/GetConversation", in, out, opts...) if err != nil { return nil, err } @@ -2837,7 +4642,7 @@ func (c *userClient) GetConversation(ctx context.Context, in *GetConversationReq func (c *userClient) GetAllConversations(ctx context.Context, in *GetAllConversationsReq, opts ...grpc.CallOption) (*GetAllConversationsResp, error) { out := new(GetAllConversationsResp) - err := grpc.Invoke(ctx, "/user.user/GetAllConversations", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/GetAllConversations", in, out, opts...) if err != nil { return nil, err } @@ -2846,7 +4651,7 @@ func (c *userClient) GetAllConversations(ctx context.Context, in *GetAllConversa func (c *userClient) GetConversations(ctx context.Context, in *GetConversationsReq, opts ...grpc.CallOption) (*GetConversationsResp, error) { out := new(GetConversationsResp) - err := grpc.Invoke(ctx, "/user.user/GetConversations", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/GetConversations", in, out, opts...) if err != nil { return nil, err } @@ -2855,7 +4660,7 @@ func (c *userClient) GetConversations(ctx context.Context, in *GetConversationsR func (c *userClient) BatchSetConversations(ctx context.Context, in *BatchSetConversationsReq, opts ...grpc.CallOption) (*BatchSetConversationsResp, error) { out := new(BatchSetConversationsResp) - err := grpc.Invoke(ctx, "/user.user/BatchSetConversations", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/BatchSetConversations", in, out, opts...) if err != nil { return nil, err } @@ -2864,7 +4669,7 @@ func (c *userClient) BatchSetConversations(ctx context.Context, in *BatchSetConv func (c *userClient) SetConversation(ctx context.Context, in *SetConversationReq, opts ...grpc.CallOption) (*SetConversationResp, error) { out := new(SetConversationResp) - err := grpc.Invoke(ctx, "/user.user/SetConversation", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/SetConversation", in, out, opts...) if err != nil { return nil, err } @@ -2873,7 +4678,7 @@ func (c *userClient) SetConversation(ctx context.Context, in *SetConversationReq func (c *userClient) SetRecvMsgOpt(ctx context.Context, in *SetRecvMsgOptReq, opts ...grpc.CallOption) (*SetRecvMsgOptResp, error) { out := new(SetRecvMsgOptResp) - err := grpc.Invoke(ctx, "/user.user/SetRecvMsgOpt", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/SetRecvMsgOpt", in, out, opts...) if err != nil { return nil, err } @@ -2882,7 +4687,7 @@ func (c *userClient) SetRecvMsgOpt(ctx context.Context, in *SetRecvMsgOptReq, op func (c *userClient) GetUserById(ctx context.Context, in *GetUserByIdReq, opts ...grpc.CallOption) (*GetUserByIdResp, error) { out := new(GetUserByIdResp) - err := grpc.Invoke(ctx, "/user.user/GetUserById", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/GetUserById", in, out, opts...) if err != nil { return nil, err } @@ -2891,7 +4696,7 @@ func (c *userClient) GetUserById(ctx context.Context, in *GetUserByIdReq, opts . func (c *userClient) GetUsersByName(ctx context.Context, in *GetUsersByNameReq, opts ...grpc.CallOption) (*GetUsersByNameResp, error) { out := new(GetUsersByNameResp) - err := grpc.Invoke(ctx, "/user.user/GetUsersByName", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/GetUsersByName", in, out, opts...) if err != nil { return nil, err } @@ -2900,7 +4705,7 @@ func (c *userClient) GetUsersByName(ctx context.Context, in *GetUsersByNameReq, func (c *userClient) ResignUser(ctx context.Context, in *ResignUserReq, opts ...grpc.CallOption) (*ResignUserResp, error) { out := new(ResignUserResp) - err := grpc.Invoke(ctx, "/user.user/ResignUser", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/ResignUser", in, out, opts...) if err != nil { return nil, err } @@ -2909,7 +4714,7 @@ func (c *userClient) ResignUser(ctx context.Context, in *ResignUserReq, opts ... func (c *userClient) AlterUser(ctx context.Context, in *AlterUserReq, opts ...grpc.CallOption) (*AlterUserResp, error) { out := new(AlterUserResp) - err := grpc.Invoke(ctx, "/user.user/AlterUser", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/AlterUser", in, out, opts...) if err != nil { return nil, err } @@ -2918,7 +4723,7 @@ func (c *userClient) AlterUser(ctx context.Context, in *AlterUserReq, opts ...gr func (c *userClient) GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc.CallOption) (*GetUsersResp, error) { out := new(GetUsersResp) - err := grpc.Invoke(ctx, "/user.user/GetUsers", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/GetUsers", in, out, opts...) if err != nil { return nil, err } @@ -2927,7 +4732,7 @@ func (c *userClient) GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc func (c *userClient) AddUser(ctx context.Context, in *AddUserReq, opts ...grpc.CallOption) (*AddUserResp, error) { out := new(AddUserResp) - err := grpc.Invoke(ctx, "/user.user/AddUser", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/AddUser", in, out, opts...) if err != nil { return nil, err } @@ -2936,7 +4741,7 @@ func (c *userClient) AddUser(ctx context.Context, in *AddUserReq, opts ...grpc.C func (c *userClient) BlockUser(ctx context.Context, in *BlockUserReq, opts ...grpc.CallOption) (*BlockUserResp, error) { out := new(BlockUserResp) - err := grpc.Invoke(ctx, "/user.user/BlockUser", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/BlockUser", in, out, opts...) if err != nil { return nil, err } @@ -2945,7 +4750,7 @@ func (c *userClient) BlockUser(ctx context.Context, in *BlockUserReq, opts ...gr func (c *userClient) UnBlockUser(ctx context.Context, in *UnBlockUserReq, opts ...grpc.CallOption) (*UnBlockUserResp, error) { out := new(UnBlockUserResp) - err := grpc.Invoke(ctx, "/user.user/UnBlockUser", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/UnBlockUser", in, out, opts...) if err != nil { return nil, err } @@ -2954,7 +4759,7 @@ func (c *userClient) UnBlockUser(ctx context.Context, in *UnBlockUserReq, opts . func (c *userClient) GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, opts ...grpc.CallOption) (*GetBlockUsersResp, error) { out := new(GetBlockUsersResp) - err := grpc.Invoke(ctx, "/user.user/GetBlockUsers", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/GetBlockUsers", in, out, opts...) if err != nil { return nil, err } @@ -2963,7 +4768,7 @@ func (c *userClient) GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, op func (c *userClient) GetBlockUserById(ctx context.Context, in *GetBlockUserByIdReq, opts ...grpc.CallOption) (*GetBlockUserByIdResp, error) { out := new(GetBlockUserByIdResp) - err := grpc.Invoke(ctx, "/user.user/GetBlockUserById", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/GetBlockUserById", in, out, opts...) if err != nil { return nil, err } @@ -2972,15 +4777,14 @@ func (c *userClient) GetBlockUserById(ctx context.Context, in *GetBlockUserByIdR func (c *userClient) DeleteUser(ctx context.Context, in *DeleteUserReq, opts ...grpc.CallOption) (*DeleteUserResp, error) { out := new(DeleteUserResp) - err := grpc.Invoke(ctx, "/user.user/DeleteUser", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/DeleteUser", in, out, opts...) if err != nil { return nil, err } return out, nil } -// Server API for User service - +// UserServer is the server API for User service. type UserServer interface { GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*UpdateUserInfoResp, error) @@ -3007,6 +4811,80 @@ type UserServer interface { DeleteUser(context.Context, *DeleteUserReq) (*DeleteUserResp, error) } +// UnimplementedUserServer can be embedded to have forward compatible implementations. +type UnimplementedUserServer struct { +} + +func (*UnimplementedUserServer) GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserInfo not implemented") +} +func (*UnimplementedUserServer) UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*UpdateUserInfoResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateUserInfo not implemented") +} +func (*UnimplementedUserServer) SetGlobalRecvMessageOpt(context.Context, *SetGlobalRecvMessageOptReq) (*SetGlobalRecvMessageOptResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetGlobalRecvMessageOpt not implemented") +} +func (*UnimplementedUserServer) DeleteUsers(context.Context, *DeleteUsersReq) (*DeleteUsersResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteUsers not implemented") +} +func (*UnimplementedUserServer) GetAllUserID(context.Context, *GetAllUserIDReq) (*GetAllUserIDResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAllUserID not implemented") +} +func (*UnimplementedUserServer) AccountCheck(context.Context, *AccountCheckReq) (*AccountCheckResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method AccountCheck not implemented") +} +func (*UnimplementedUserServer) GetConversation(context.Context, *GetConversationReq) (*GetConversationResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetConversation not implemented") +} +func (*UnimplementedUserServer) GetAllConversations(context.Context, *GetAllConversationsReq) (*GetAllConversationsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAllConversations not implemented") +} +func (*UnimplementedUserServer) GetConversations(context.Context, *GetConversationsReq) (*GetConversationsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetConversations not implemented") +} +func (*UnimplementedUserServer) BatchSetConversations(context.Context, *BatchSetConversationsReq) (*BatchSetConversationsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method BatchSetConversations not implemented") +} +func (*UnimplementedUserServer) SetConversation(context.Context, *SetConversationReq) (*SetConversationResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetConversation not implemented") +} +func (*UnimplementedUserServer) SetRecvMsgOpt(context.Context, *SetRecvMsgOptReq) (*SetRecvMsgOptResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetRecvMsgOpt not implemented") +} +func (*UnimplementedUserServer) GetUserById(context.Context, *GetUserByIdReq) (*GetUserByIdResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserById not implemented") +} +func (*UnimplementedUserServer) GetUsersByName(context.Context, *GetUsersByNameReq) (*GetUsersByNameResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUsersByName not implemented") +} +func (*UnimplementedUserServer) ResignUser(context.Context, *ResignUserReq) (*ResignUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ResignUser not implemented") +} +func (*UnimplementedUserServer) AlterUser(context.Context, *AlterUserReq) (*AlterUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method AlterUser not implemented") +} +func (*UnimplementedUserServer) GetUsers(context.Context, *GetUsersReq) (*GetUsersResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUsers not implemented") +} +func (*UnimplementedUserServer) AddUser(context.Context, *AddUserReq) (*AddUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddUser not implemented") +} +func (*UnimplementedUserServer) BlockUser(context.Context, *BlockUserReq) (*BlockUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method BlockUser not implemented") +} +func (*UnimplementedUserServer) UnBlockUser(context.Context, *UnBlockUserReq) (*UnBlockUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UnBlockUser not implemented") +} +func (*UnimplementedUserServer) GetBlockUsers(context.Context, *GetBlockUsersReq) (*GetBlockUsersResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBlockUsers not implemented") +} +func (*UnimplementedUserServer) GetBlockUserById(context.Context, *GetBlockUserByIdReq) (*GetBlockUserByIdResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBlockUserById not implemented") +} +func (*UnimplementedUserServer) DeleteUser(context.Context, *DeleteUserReq) (*DeleteUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteUser not implemented") +} + func RegisterUserServer(s *grpc.Server, srv UserServer) { s.RegisterService(&_User_serviceDesc, srv) } @@ -3525,130 +5403,3 @@ var _User_serviceDesc = grpc.ServiceDesc{ Streams: []grpc.StreamDesc{}, Metadata: "user/user.proto", } - -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_f1112695e0d68005) } - -var fileDescriptor_user_f1112695e0d68005 = []byte{ - // 1923 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0xcd, 0x6f, 0x23, 0x49, - 0x15, 0x57, 0xfb, 0x63, 0x92, 0x3c, 0xc7, 0x8e, 0x53, 0x93, 0x9d, 0xf4, 0xf6, 0xc2, 0xe0, 0x6d, - 0x2d, 0x4b, 0x34, 0x12, 0x09, 0x0c, 0x88, 0x41, 0x8b, 0x60, 0x37, 0x76, 0x32, 0x96, 0x11, 0x93, - 0x58, 0xed, 0x19, 0x09, 0x21, 0x44, 0xd4, 0x63, 0x57, 0x9c, 0x56, 0xec, 0xee, 0xde, 0xae, 0xf6, - 0x7c, 0x70, 0x59, 0xb4, 0xc0, 0x05, 0x71, 0xe1, 0xc4, 0xc0, 0x81, 0xbf, 0x83, 0x3b, 0x9c, 0xf8, - 0x0f, 0xe0, 0xc2, 0x9f, 0xc1, 0x15, 0xd5, 0x47, 0x77, 0x57, 0x55, 0xb7, 0x63, 0x6f, 0x67, 0x34, - 0x97, 0xc4, 0xf5, 0xea, 0xa3, 0xdf, 0xef, 0xbd, 0xdf, 0x7b, 0xf5, 0xaa, 0x0a, 0x76, 0x16, 0x04, - 0x47, 0x47, 0xf4, 0xcf, 0x61, 0x18, 0x05, 0x71, 0x80, 0x6a, 0xf4, 0xb7, 0xf5, 0xe1, 0x79, 0x88, - 0xfd, 0x8b, 0xc1, 0x93, 0xa3, 0xf0, 0x7a, 0x7a, 0xc4, 0x3a, 0x8e, 0xc8, 0xe4, 0xfa, 0xe2, 0x25, - 0x39, 0x7a, 0x49, 0xf8, 0x40, 0xfb, 0x27, 0x00, 0xbd, 0x60, 0x3e, 0x0f, 0x7c, 0x07, 0x93, 0x10, - 0x99, 0xb0, 0x81, 0xa3, 0xa8, 0x17, 0x4c, 0xb0, 0x69, 0x74, 0x8c, 0x83, 0xba, 0x93, 0x34, 0xd1, - 0x3d, 0xb8, 0x83, 0xa3, 0xe8, 0x09, 0x99, 0x9a, 0x95, 0x8e, 0x71, 0xb0, 0xe5, 0x88, 0x96, 0xfd, - 0x6b, 0x68, 0x9d, 0xe0, 0x19, 0x8e, 0xf1, 0x33, 0x82, 0x23, 0xe2, 0xe0, 0xcf, 0xd1, 0x03, 0x68, - 0x67, 0x92, 0xc1, 0xc9, 0xcf, 0x3c, 0x12, 0x9b, 0x95, 0x4e, 0xf5, 0x60, 0xcb, 0xc9, 0xc9, 0x91, - 0x05, 0x9b, 0xe7, 0x21, 0x6f, 0x9b, 0x55, 0xb6, 0x6e, 0xda, 0x46, 0x1d, 0x68, 0x9c, 0x87, 0x38, - 0x72, 0x63, 0x2f, 0xf0, 0x07, 0x27, 0x66, 0x8d, 0x75, 0xcb, 0x22, 0x3b, 0x80, 0x1d, 0xe5, 0xdb, - 0x24, 0x44, 0xdf, 0x91, 0xe1, 0x30, 0x0c, 0x8d, 0x87, 0xed, 0x43, 0x66, 0x98, 0x4c, 0xee, 0xc8, - 0x90, 0x1f, 0x40, 0xfb, 0xb1, 0xeb, 0xcd, 0xf0, 0x24, 0xaf, 0xae, 0x2e, 0xb7, 0xcf, 0x61, 0xa7, - 0x8f, 0xe3, 0xe3, 0xd9, 0x8c, 0xcb, 0x28, 0x5a, 0x0b, 0x36, 0x83, 0x04, 0x81, 0xc1, 0x11, 0x04, - 0x12, 0x82, 0x40, 0x42, 0xc0, 0x0d, 0x27, 0x8b, 0xec, 0x09, 0xb4, 0xd5, 0x05, 0x4b, 0x41, 0xb8, - 0x0f, 0x90, 0x53, 0x5e, 0x92, 0xd8, 0xaf, 0x61, 0xe7, 0x78, 0x3c, 0x0e, 0x16, 0x7e, 0xdc, 0xbb, - 0xc2, 0xe3, 0x6b, 0xaa, 0xf6, 0x01, 0xec, 0xb0, 0xdf, 0xd2, 0x3c, 0x83, 0xcd, 0xd3, 0xc5, 0x8a, - 0x8b, 0x2a, 0x37, 0xbb, 0xa8, 0x9a, 0x77, 0xd1, 0x7f, 0x0d, 0x68, 0xab, 0xdf, 0xe6, 0x08, 0xc7, - 0x6b, 0x20, 0xcc, 0xc6, 0xa0, 0x3e, 0x80, 0x83, 0xc9, 0x62, 0x16, 0xa7, 0x08, 0x1b, 0x0f, 0xbf, - 0xc5, 0x67, 0xe8, 0xab, 0x1f, 0x8e, 0x3c, 0x7f, 0x3a, 0x63, 0x94, 0x18, 0xc5, 0x6e, 0xbc, 0x20, - 0x8e, 0x34, 0xd5, 0x1a, 0x42, 0x5b, 0xef, 0xa7, 0xd4, 0x5e, 0xc8, 0x0e, 0x14, 0x2d, 0xf4, 0x11, - 0x34, 0x5d, 0xbe, 0x38, 0x1f, 0x28, 0xe0, 0xab, 0x42, 0xdb, 0x87, 0x56, 0x1f, 0xc7, 0xcc, 0x20, - 0xfe, 0x65, 0x40, 0x6d, 0x7b, 0x1f, 0x60, 0xa1, 0x9b, 0x55, 0x92, 0xdc, 0xd2, 0xa2, 0xbf, 0x33, - 0x18, 0x09, 0xb3, 0x0f, 0x96, 0x32, 0xe8, 0xa7, 0xb0, 0x9d, 0xac, 0xc0, 0xb4, 0xac, 0x32, 0x93, - 0x7e, 0x70, 0x48, 0x70, 0xf4, 0x02, 0x47, 0x17, 0x6e, 0xe8, 0x5d, 0x84, 0x6e, 0xe4, 0xce, 0xc9, - 0x61, 0xfa, 0x21, 0x65, 0x82, 0xfd, 0x07, 0x03, 0x76, 0x9f, 0x85, 0x13, 0x57, 0x84, 0xb3, 0x80, - 0xfe, 0x08, 0x36, 0x93, 0xa6, 0x50, 0xe3, 0xc6, 0x25, 0xd3, 0xc1, 0xab, 0x6c, 0x12, 0xe4, 0x6d, - 0x22, 0x87, 0xd1, 0x63, 0x40, 0xba, 0x2e, 0x65, 0xac, 0x62, 0x7f, 0x69, 0x80, 0x35, 0xc2, 0x71, - 0x7f, 0x16, 0x3c, 0x77, 0x67, 0x0e, 0x1e, 0xbf, 0x78, 0x82, 0x09, 0x71, 0xa7, 0xf8, 0x3c, 0x8c, - 0x29, 0xba, 0x65, 0x44, 0x59, 0x19, 0xe7, 0x34, 0xc9, 0x4c, 0xb3, 0x45, 0xc9, 0xf4, 0x3c, 0x8c, - 0x19, 0x8e, 0xba, 0x93, 0x93, 0xdb, 0xe7, 0xf0, 0xc1, 0x52, 0x1d, 0x4a, 0xa1, 0xfa, 0x4f, 0x15, - 0xb6, 0x7b, 0x81, 0xff, 0x02, 0x47, 0x84, 0xe9, 0xc3, 0x48, 0xf6, 0xd2, 0xc7, 0x91, 0x92, 0xb6, - 0x64, 0x11, 0xfa, 0x18, 0x5a, 0xf2, 0x8c, 0x14, 0x94, 0x26, 0xa5, 0x54, 0xcf, 0x21, 0x92, 0x24, - 0x14, 0xb7, 0x3c, 0xe3, 0xe9, 0xeb, 0x10, 0xb3, 0x44, 0x5e, 0x77, 0x72, 0x72, 0x6a, 0x5d, 0xa1, - 0x50, 0x9d, 0x5b, 0x57, 0xe8, 0x62, 0xc2, 0x46, 0x3f, 0x0a, 0x16, 0xe1, 0xe0, 0xc4, 0xbc, 0xc3, - 0x3a, 0x92, 0x26, 0xc5, 0xf1, 0xcc, 0x8f, 0xb0, 0x3b, 0xe9, 0xd1, 0x78, 0x34, 0x37, 0xd8, 0xc2, - 0xb2, 0x88, 0x86, 0xf0, 0x49, 0xe4, 0x5e, 0xc6, 0x4f, 0xf1, 0xab, 0xf8, 0xa9, 0x37, 0xc7, 0xe6, - 0x66, 0xc7, 0x38, 0xa8, 0x3a, 0xaa, 0x90, 0x92, 0x6f, 0x40, 0x86, 0x9e, 0xef, 0xe3, 0x89, 0xb9, - 0xd5, 0x31, 0x0e, 0x36, 0x9d, 0xb4, 0x8d, 0x6c, 0xd8, 0x3e, 0x8e, 0x63, 0x77, 0x7c, 0x85, 0x27, - 0x8c, 0xd5, 0xc0, 0x54, 0x50, 0x64, 0xf4, 0x2b, 0x03, 0x32, 0x8c, 0xbc, 0x17, 0x6e, 0x8c, 0x7b, - 0x57, 0x6e, 0x6c, 0x36, 0xd8, 0x22, 0xaa, 0x90, 0x6a, 0xcb, 0x14, 0x3f, 0x8e, 0x99, 0x19, 0xb6, - 0xb9, 0xb6, 0x92, 0x88, 0x7e, 0x6b, 0x40, 0xce, 0x82, 0x78, 0xe0, 0x33, 0xa9, 0xd9, 0x64, 0xcb, - 0x28, 0x32, 0xd4, 0x82, 0xca, 0xe9, 0x2b, 0xb3, 0xc5, 0xb4, 0xa8, 0x9c, 0xbe, 0xb2, 0xff, 0x6a, - 0x00, 0x1a, 0xe1, 0x58, 0xb6, 0x26, 0xa5, 0xea, 0x0f, 0x54, 0x97, 0x0b, 0x9e, 0xa0, 0x84, 0x27, - 0xd2, 0x60, 0x95, 0x1a, 0x0f, 0xa0, 0xed, 0x07, 0xb1, 0x77, 0xe9, 0x8d, 0x33, 0x87, 0x55, 0xb8, - 0xc3, 0x74, 0xf9, 0x1a, 0xb9, 0xaa, 0x0f, 0x77, 0x73, 0xba, 0x95, 0xa2, 0xf0, 0xbf, 0x0c, 0x68, - 0x8f, 0x70, 0x9c, 0x31, 0x8b, 0x62, 0x7c, 0xa7, 0x34, 0xce, 0x59, 0xa5, 0xb6, 0x9e, 0x55, 0xea, - 0x79, 0xab, 0x9c, 0xc2, 0xae, 0x86, 0xa5, 0x94, 0x4d, 0x7e, 0x63, 0x00, 0xea, 0xe7, 0x3d, 0x9f, - 0xc7, 0x6c, 0x14, 0x62, 0xd6, 0xac, 0x57, 0xc9, 0x5b, 0x6f, 0xb5, 0x7f, 0xbf, 0x80, 0xbb, 0xfd, - 0xb7, 0xe1, 0xdf, 0x1c, 0x5d, 0x2b, 0xeb, 0xd1, 0xd5, 0xfe, 0xad, 0x91, 0xd3, 0x80, 0xac, 0x47, - 0x0d, 0x5a, 0x00, 0x29, 0x06, 0x21, 0xa2, 0x70, 0xd2, 0xc5, 0x6b, 0x98, 0xe1, 0x4b, 0x03, 0xf6, - 0xf2, 0x5a, 0x94, 0x32, 0xc4, 0x0f, 0xa1, 0xa9, 0x2c, 0x23, 0x6a, 0x9d, 0x22, 0x4b, 0xa8, 0x03, - 0xed, 0x5f, 0xc2, 0x3d, 0x5e, 0x4a, 0x96, 0x30, 0x86, 0x06, 0xb1, 0x92, 0x87, 0xf8, 0x7b, 0x03, - 0xf6, 0x0b, 0x97, 0x7f, 0xc7, 0x28, 0xff, 0x69, 0x80, 0xd9, 0x75, 0xe3, 0xf1, 0xd5, 0xa8, 0xc0, - 0xeb, 0xb9, 0x65, 0x8d, 0x35, 0x97, 0x5d, 0x23, 0x18, 0x8a, 0x52, 0x40, 0x75, 0xbd, 0x14, 0x50, - 0x2b, 0x0a, 0x9c, 0xf7, 0x97, 0xa0, 0x28, 0x65, 0x4f, 0x13, 0x36, 0x46, 0x8b, 0xf1, 0x18, 0x93, - 0x84, 0xc4, 0x49, 0x93, 0x6e, 0xaa, 0xfc, 0x14, 0xc3, 0x2a, 0xbc, 0x2d, 0x47, 0xb4, 0xec, 0x01, - 0x34, 0x1d, 0x4c, 0xbc, 0xa9, 0x4f, 0xe1, 0x89, 0xda, 0x86, 0x21, 0x9d, 0x24, 0xb5, 0x0d, 0x6f, - 0xad, 0x41, 0x8d, 0x2e, 0xb4, 0xe4, 0xa5, 0x4a, 0xe5, 0xb2, 0x9f, 0xa6, 0x45, 0x74, 0xf7, 0xf5, - 0x60, 0x72, 0x3b, 0x7d, 0xde, 0x18, 0x50, 0xa3, 0x83, 0xe9, 0x76, 0x3a, 0x8c, 0x82, 0x4b, 0x6f, - 0x86, 0x87, 0x57, 0x41, 0x1c, 0x88, 0x85, 0x14, 0x19, 0xdd, 0xfa, 0xcf, 0xbc, 0xf1, 0xb5, 0xef, - 0xce, 0x71, 0x52, 0x77, 0x26, 0x6d, 0x49, 0x85, 0xaa, 0xa2, 0xc2, 0x7d, 0x80, 0x5e, 0x84, 0xdd, - 0x18, 0xb3, 0x8a, 0x82, 0x7b, 0x57, 0x92, 0x50, 0x6f, 0x0c, 0x48, 0x77, 0x16, 0x8c, 0xaf, 0x59, - 0xf6, 0xdf, 0x74, 0x92, 0xa6, 0x3d, 0x4e, 0x4b, 0x77, 0x0e, 0xb3, 0xe4, 0x69, 0x8f, 0x1d, 0xee, - 0x45, 0x8e, 0x04, 0x3e, 0x96, 0xd9, 0x9e, 0xc9, 0xed, 0x3f, 0x1b, 0xb0, 0x2b, 0xbe, 0x42, 0xba, - 0xaf, 0xcf, 0xdc, 0x39, 0x16, 0xe7, 0x54, 0x2a, 0xa1, 0xcd, 0xe4, 0x9c, 0x9a, 0xb4, 0xd1, 0x09, - 0xc0, 0xd0, 0x9d, 0x7a, 0xbe, 0x9c, 0x7b, 0x3f, 0x2a, 0xa8, 0xdb, 0x1d, 0xfc, 0xf9, 0x02, 0x93, - 0x38, 0x1b, 0xeb, 0x48, 0xf3, 0xd6, 0xc8, 0x93, 0x7f, 0xe1, 0x3b, 0x96, 0xa2, 0x19, 0x09, 0x51, - 0x07, 0xea, 0x54, 0xf1, 0x24, 0x5c, 0x65, 0x44, 0xbc, 0x03, 0x9d, 0x16, 0x28, 0xf8, 0xcd, 0x42, - 0x05, 0x49, 0x18, 0xf8, 0x04, 0x2f, 0xd1, 0x30, 0xb1, 0xc1, 0x62, 0x4e, 0x44, 0xec, 0xa6, 0x6d, - 0xfb, 0xef, 0x06, 0x6c, 0x1f, 0xcf, 0x62, 0x1e, 0xef, 0xb7, 0x22, 0x20, 0x1d, 0x31, 0xbc, 0x0a, - 0x7c, 0x7c, 0xb6, 0x98, 0x3f, 0xc7, 0x11, 0xfb, 0x52, 0xd5, 0x91, 0x45, 0x0a, 0xeb, 0x6a, 0x1a, - 0xeb, 0xf6, 0xa0, 0x7e, 0x3a, 0x77, 0xbd, 0x99, 0xa8, 0x1c, 0x78, 0x43, 0x3a, 0x1f, 0x4d, 0x44, - 0x15, 0x9c, 0xb6, 0xed, 0x63, 0x68, 0x4a, 0x9a, 0x97, 0xe1, 0x94, 0xfd, 0x27, 0x03, 0x1a, 0x89, - 0x67, 0x92, 0x2d, 0x43, 0x02, 0x69, 0xe4, 0x41, 0xbe, 0x1d, 0xce, 0xc8, 0xac, 0xac, 0xaa, 0xac, - 0xb4, 0xff, 0x61, 0xc0, 0x76, 0xa6, 0xd3, 0x2d, 0x43, 0xa5, 0x5a, 0x14, 0x2a, 0x1a, 0xaf, 0xaa, - 0x6f, 0x83, 0x57, 0x35, 0x8d, 0x57, 0x6f, 0x0c, 0x80, 0xe3, 0xc9, 0x24, 0x61, 0xd5, 0x6a, 0xc3, - 0x6a, 0xec, 0x11, 0xfc, 0x92, 0xd9, 0xb3, 0x2c, 0x2f, 0x21, 0xa8, 0x49, 0x8c, 0x62, 0xbf, 0x15, - 0xde, 0xd4, 0x35, 0xde, 0x7c, 0x0a, 0x8d, 0x54, 0xb3, 0x52, 0xac, 0xf9, 0xa3, 0x01, 0xdb, 0x2c, - 0xb1, 0xad, 0x8a, 0x99, 0x8f, 0xa1, 0x75, 0xea, 0x4f, 0x4e, 0x3c, 0xe2, 0x3e, 0x9f, 0xf1, 0xac, - 0x29, 0xea, 0x70, 0x55, 0xba, 0x3a, 0x85, 0x28, 0x78, 0x6a, 0xf9, 0x38, 0x90, 0xb4, 0x29, 0x85, - 0xe8, 0x12, 0x5a, 0xcf, 0xfc, 0xb5, 0x20, 0xad, 0x4e, 0x03, 0xb2, 0xaa, 0x55, 0x4d, 0xd5, 0x1e, - 0xec, 0x28, 0xdf, 0x29, 0xa5, 0xec, 0xdf, 0x0c, 0x76, 0x7b, 0x98, 0x2e, 0xc3, 0x22, 0x57, 0x8d, - 0x4b, 0xe3, 0xed, 0xe4, 0xf2, 0x02, 0x74, 0xb6, 0xe4, 0xfa, 0xb3, 0xc5, 0x5c, 0xe4, 0x53, 0x45, - 0x66, 0x7f, 0x01, 0x5b, 0x69, 0x9b, 0xc6, 0x22, 0xfd, 0x2f, 0x54, 0x52, 0x62, 0x91, 0xf5, 0x3f, - 0x80, 0x76, 0x17, 0x4f, 0x3d, 0x3f, 0xcf, 0x92, 0x9c, 0xbc, 0x80, 0x4f, 0xd5, 0x22, 0x3e, 0xd9, - 0xff, 0xe6, 0x5b, 0xa1, 0x6c, 0xa1, 0x52, 0x79, 0xe4, 0x08, 0x20, 0x5b, 0x43, 0x64, 0x93, 0x1d, - 0x3e, 0x23, 0x73, 0xa2, 0x34, 0xe4, 0x5d, 0x24, 0x96, 0x21, 0x3b, 0xf9, 0xa4, 0xdf, 0x4c, 0xea, - 0xa6, 0x7d, 0xd8, 0xa0, 0xcd, 0x0b, 0xef, 0xab, 0x17, 0x4e, 0xa7, 0xec, 0x14, 0xa3, 0xad, 0x48, - 0x42, 0xf4, 0x6d, 0xc9, 0x8d, 0x22, 0xd3, 0xe7, 0xc0, 0x67, 0x23, 0xec, 0x4b, 0x68, 0x66, 0xb7, - 0xf2, 0xb7, 0x53, 0xe9, 0xc6, 0x18, 0xea, 0xca, 0x2f, 0x0f, 0xe5, 0x1c, 0xfb, 0xf0, 0x7f, 0x0d, - 0xbe, 0x43, 0xa0, 0x4f, 0xd2, 0xfd, 0x8f, 0xdd, 0xe8, 0xec, 0xf1, 0x59, 0xea, 0xc5, 0xae, 0xf5, - 0x5e, 0x81, 0x94, 0x84, 0xa8, 0x07, 0x2d, 0xf5, 0xf6, 0x11, 0xed, 0x0b, 0x76, 0xeb, 0xf7, 0xa3, - 0x96, 0x59, 0xdc, 0x41, 0x42, 0xf4, 0x2b, 0xd8, 0x5f, 0x72, 0xeb, 0x87, 0x3a, 0x7c, 0xd2, 0xf2, - 0x8b, 0x49, 0xeb, 0xc3, 0x15, 0x23, 0x48, 0x48, 0x01, 0x4a, 0x6f, 0x25, 0x09, 0x40, 0xf5, 0xe9, - 0x26, 0x01, 0xa8, 0x3f, 0xaa, 0xfc, 0x98, 0x6d, 0xc4, 0xe9, 0x2b, 0x05, 0xca, 0xec, 0x20, 0x3f, - 0x85, 0x58, 0xf7, 0x8a, 0xc4, 0x7c, 0xba, 0x7c, 0x49, 0x9f, 0x4c, 0xd7, 0x9e, 0x24, 0x92, 0xe9, - 0xb9, 0xd7, 0x82, 0xc7, 0xac, 0x68, 0x56, 0x6e, 0xa9, 0xcc, 0xf4, 0x4b, 0xda, 0xed, 0x87, 0xf5, - 0xfe, 0x92, 0x1e, 0x12, 0x22, 0x87, 0x05, 0x8c, 0x7e, 0x82, 0x45, 0x5f, 0x93, 0xb5, 0xd6, 0x8f, - 0x94, 0xd6, 0xd7, 0x6f, 0xe8, 0x25, 0x21, 0x1a, 0xb0, 0x0c, 0xac, 0x2e, 0x58, 0xac, 0x02, 0x5b, - 0xcd, 0x5a, 0xd6, 0x45, 0x42, 0xf4, 0x73, 0x78, 0xaf, 0xf0, 0x48, 0x88, 0xee, 0x8b, 0x58, 0x5b, - 0x72, 0xea, 0xb5, 0xbe, 0x71, 0x63, 0x3f, 0x37, 0xe0, 0xa8, 0xd8, 0x80, 0xa3, 0xa5, 0x06, 0x2c, - 0xba, 0xb6, 0xfb, 0x0c, 0x9a, 0xca, 0xbd, 0x15, 0xba, 0x97, 0x8e, 0x55, 0x2e, 0xe6, 0xac, 0xfd, - 0x42, 0x39, 0x27, 0xa1, 0x74, 0xfe, 0xd1, 0xa2, 0x4c, 0x64, 0x30, 0x2d, 0xca, 0xd2, 0x2c, 0xd4, - 0x4b, 0x8f, 0x88, 0xe2, 0xec, 0x90, 0x44, 0x59, 0xee, 0xac, 0x63, 0x99, 0xc5, 0x1d, 0x24, 0x44, - 0x8f, 0xd8, 0x3b, 0x92, 0x38, 0xab, 0xa2, 0xbb, 0x7c, 0x9c, 0x72, 0x10, 0xb6, 0xf6, 0xf2, 0x42, - 0x12, 0xa2, 0xef, 0xc3, 0x56, 0x5a, 0x63, 0x23, 0x71, 0xa1, 0x20, 0x1f, 0x17, 0xac, 0xbb, 0x39, - 0x19, 0x09, 0xd1, 0x77, 0x61, 0x33, 0x51, 0x02, 0xed, 0xaa, 0x4a, 0xd1, 0x39, 0x48, 0x17, 0x91, - 0x10, 0x1d, 0xc2, 0x86, 0x28, 0xca, 0x90, 0x48, 0x5d, 0x59, 0xf5, 0x68, 0xed, 0x6a, 0x12, 0xae, - 0x58, 0xb6, 0xc7, 0x22, 0x3d, 0x2d, 0x67, 0x8a, 0xa9, 0xc5, 0xc6, 0x27, 0xd0, 0x90, 0xea, 0x8f, - 0xc4, 0x11, 0x6a, 0xe9, 0x93, 0x38, 0x42, 0x2f, 0x54, 0x3e, 0x83, 0xa6, 0xb2, 0xa7, 0xa2, 0x2c, - 0xee, 0x95, 0x52, 0xc4, 0xda, 0x2f, 0x94, 0xa7, 0x51, 0xa3, 0x6c, 0x34, 0x52, 0xd4, 0xe8, 0x5b, - 0x9a, 0x14, 0x35, 0xf9, 0xbd, 0xe9, 0x11, 0x40, 0x96, 0xad, 0x12, 0x87, 0x2a, 0xdb, 0x8f, 0xb5, - 0x97, 0x17, 0x92, 0xb0, 0xdb, 0xfc, 0x45, 0xe3, 0x90, 0x3d, 0x98, 0xff, 0x88, 0xfe, 0x79, 0x7e, - 0x87, 0xbd, 0x86, 0x7f, 0xef, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x32, 0x71, 0xc8, 0xa6, 0x49, - 0x1f, 0x00, 0x00, -} diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index fa7025b28..de5367105 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -178,7 +178,16 @@ message User{ string Nickname = 2; string UserId = 3; string CreateTime = 4; - bool IsBlock = 5; + string PhoneNumber = 5; + string Email = 6; + string Birth = 7; + string CreateIp = 8; + string LastLoginTime = 9; + string LastLoginIp = 10; + int32 LoginTimes = 11; + int32 Gender = 12; + int32 LoginLimit = 13; + bool IsBlock = 14; } message GetUserByIdResp{ From 57a21ab8e69be99aaf9baa3c2706973ade25b0e2 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 9 Aug 2022 13:18:02 +0800 Subject: [PATCH 064/230] forceKickOff work --- internal/rpc/auth/auth.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index c405f9acb..ddd18480d 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -82,7 +82,7 @@ func (rpc *rpcAuth) ForceLogout(_ context.Context, req *pbAuth.ForceLogoutReq) ( } func (rpc *rpcAuth) forceKickOff(userID string, platformID int32, operationID string) error { - return nil + log.NewInfo(operationID, utils.GetSelfFuncName(), " args ", userID, platformID) grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName) for _, v := range grpcCons { client := pbRelay.NewRelayClient(v) @@ -91,7 +91,6 @@ func (rpc *rpcAuth) forceKickOff(userID string, platformID int32, operationID st _, err := client.KickUserOffline(context.Background(), kickReq) return utils.Wrap(err, "") } - return errors.New("no rpc node ") } From 5cbea2cab5c2eeaab95951bdf7d96f053d314e99 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 9 Aug 2022 13:52:20 +0800 Subject: [PATCH 065/230] Set token kicked status first in forceKickOff --- internal/api/user/user.go | 10 +++++----- internal/msg_gateway/gate/relay_rpc_server.go | 4 ++-- internal/rpc/auth/auth.go | 10 +++++----- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index 257c2a7cf..b861e19ee 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -324,9 +324,9 @@ func SetGlobalRecvMessageOpt(c *gin.Context) { func GetSelfUserInfo(c *gin.Context) { params := api.GetSelfUserInfoReq{} if err := c.BindJSON(¶ms); err != nil { - errMsg := "BindJSON failed " + err.Error() - log.NewError("0", "BindJSON failed ", errMsg) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) + errMsg := " BindJSON failed " + err.Error() + log.NewError("0", errMsg) + c.JSON(http.StatusOK, gin.H{"errCode": 1001, "errMsg": errMsg}) return } req := &rpc.GetUserInfoReq{} @@ -338,8 +338,8 @@ func GetSelfUserInfo(c *gin.Context) { ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") - log.NewError(req.OperationID, errMsg) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) + log.NewError(params.OperationID, errMsg) + c.JSON(http.StatusOK, gin.H{"errCode": 1001, "errMsg": errMsg}) return } diff --git a/internal/msg_gateway/gate/relay_rpc_server.go b/internal/msg_gateway/gate/relay_rpc_server.go index cc64285e6..5218fd111 100644 --- a/internal/msg_gateway/gate/relay_rpc_server.go +++ b/internal/msg_gateway/gate/relay_rpc_server.go @@ -291,14 +291,14 @@ func (r *RPCServer) encodeWsData(wsData *sdk_ws.MsgData, operationID string) (by func (r *RPCServer) KickUserOffline(_ context.Context, req *pbRelay.KickUserOfflineReq) (*pbRelay.KickUserOfflineResp, error) { log.NewInfo(req.OperationID, "KickUserOffline is arriving", req.String()) for _, v := range req.KickUserIDList { + log.NewWarn(req.OperationID, "SetTokenKicked ", v, req.PlatformID, req.OperationID) + SetTokenKicked(v, int(req.PlatformID), req.OperationID) oldConnMap := ws.getUserAllCons(v) if conn, ok := oldConnMap[int(req.PlatformID)]; ok { // user->map[platform->conn] log.NewWarn(req.OperationID, "send kick msg, close connection ", req.PlatformID, v) ws.sendKickMsg(conn, &UserConn{}) conn.Close() } - log.NewWarn(req.OperationID, "SetTokenKicked ", v, req.PlatformID, req.OperationID) - SetTokenKicked(v, int(req.PlatformID), req.OperationID) } return &pbRelay.KickUserOfflineResp{}, nil } diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index ddd18480d..d6ff26faf 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -67,11 +67,11 @@ func (rpc *rpcAuth) ForceLogout(_ context.Context, req *pbAuth.ForceLogoutReq) ( log.NewError(req.OperationID, errMsg) return &pbAuth.ForceLogoutResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil } - if err := token_verify.DeleteToken(req.FromUserID, int(req.Platform)); err != nil { - errMsg := req.OperationID + " DeleteToken failed " + err.Error() + req.FromUserID + utils.Int32ToString(req.Platform) - log.NewError(req.OperationID, errMsg) - return &pbAuth.ForceLogoutResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}}, nil - } + //if err := token_verify.DeleteToken(req.FromUserID, int(req.Platform)); err != nil { + // errMsg := req.OperationID + " DeleteToken failed " + err.Error() + req.FromUserID + utils.Int32ToString(req.Platform) + // log.NewError(req.OperationID, errMsg) + // return &pbAuth.ForceLogoutResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}}, nil + //} if err := rpc.forceKickOff(req.FromUserID, req.Platform, req.OperationID); err != nil { errMsg := req.OperationID + " forceKickOff failed " + err.Error() + req.FromUserID + utils.Int32ToString(req.Platform) log.NewError(req.OperationID, errMsg) From 569d5d2d8986c5994fefa82af8e2231757c91bd1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 9 Aug 2022 15:12:13 +0800 Subject: [PATCH 066/230] super group add after callback --- internal/rpc/msg/send_msg.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index c9b17544d..d25e17fe2 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -476,6 +476,11 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S log.NewError(msgToMQSingle.OperationID, "kafka send msg err:RecvID", msgToMQSingle.MsgData.RecvID, msgToMQSingle.String()) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) } + // callback + callbackResp = callbackAfterSendGroupMsg(pb) + if callbackResp.ErrCode != 0 { + log.NewError(pb.OperationID, utils.GetSelfFuncName(), "callbackAfterSendSuperGroupMsg resp: ", callbackResp) + } return returnMsg(&replay, pb, 0, "", msgToMQSingle.MsgData.ServerMsgID, msgToMQSingle.MsgData.SendTime) default: From db8c4f369cae282095cfb329fffe4006a8044be8 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 9 Aug 2022 15:41:16 +0800 Subject: [PATCH 067/230] send options bug fix --- internal/rpc/msg/send_msg.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index d25e17fe2..747f401fa 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -974,6 +974,11 @@ func (rpc *rpcChat) sendMsgToGroupOptimization(list []string, groupPB *pbChat.Se msgToMQGroup := pbChat.MsgDataToMQ{Token: groupPB.Token, OperationID: groupPB.OperationID, MsgData: groupPB.MsgData} for _, v := range list { groupPB.MsgData.RecvID = v + options := make(map[string]bool, 1) + for k, v := range groupPB.MsgData.Options { + options[k] = v + } + groupPB.MsgData.Options = options isSend := modifyMessageByUserMessageReceiveOpt(v, groupPB.MsgData.GroupID, constant.GroupChatType, groupPB) if isSend { if v == "" || groupPB.MsgData.SendID == "" { From 7bd7edfec9f98b98060959ac1f1b52da45f5fa9a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 9 Aug 2022 15:54:16 +0800 Subject: [PATCH 068/230] send options bug fix --- internal/rpc/msg/send_msg.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 747f401fa..0b171a5eb 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -972,10 +972,14 @@ func (rpc *rpcChat) sendMsgToGroup(list []string, pb pbChat.SendMsgReq, status s func (rpc *rpcChat) sendMsgToGroupOptimization(list []string, groupPB *pbChat.SendMsgReq, status string, sendTag *bool, wg *sync.WaitGroup) { msgToMQGroup := pbChat.MsgDataToMQ{Token: groupPB.Token, OperationID: groupPB.OperationID, MsgData: groupPB.MsgData} + tempOptions := make(map[string]bool, 1) + for k, v := range groupPB.MsgData.Options { + tempOptions[k] = v + } for _, v := range list { groupPB.MsgData.RecvID = v options := make(map[string]bool, 1) - for k, v := range groupPB.MsgData.Options { + for k, v := range tempOptions { options[k] = v } groupPB.MsgData.Options = options From 2c0a2d7877d738c7c3b0b7f78946740051c019bb Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 9 Aug 2022 16:38:33 +0800 Subject: [PATCH 069/230] getui debug --- cmd/cron_task/main.go | 11 ++++ .../{timed_task => cron_task}/clear_msg.go | 4 +- internal/cron_task/cron_task.go | 50 +++++++++++++++++++ internal/rpc/group/group.go | 6 +-- internal/rpc/msg/send_msg.go | 2 +- internal/timed_task/init.go | 1 - internal/timed_task/timed_task.go | 23 --------- .../mysql_model/im_mysql_model/group_model.go | 8 +++ 8 files changed, 75 insertions(+), 30 deletions(-) create mode 100644 cmd/cron_task/main.go rename internal/{timed_task => cron_task}/clear_msg.go (96%) create mode 100644 internal/cron_task/cron_task.go delete mode 100644 internal/timed_task/init.go delete mode 100644 internal/timed_task/timed_task.go diff --git a/cmd/cron_task/main.go b/cmd/cron_task/main.go new file mode 100644 index 000000000..db62e1172 --- /dev/null +++ b/cmd/cron_task/main.go @@ -0,0 +1,11 @@ +package cron_task + +import ( + "Open_IM/internal/cron_task" + "fmt" +) + +func main() { + fmt.Println("start cronTask") + cronTask.StartCronTask() +} diff --git a/internal/timed_task/clear_msg.go b/internal/cron_task/clear_msg.go similarity index 96% rename from internal/timed_task/clear_msg.go rename to internal/cron_task/clear_msg.go index 6cb3cba79..2b4877d2e 100644 --- a/internal/timed_task/clear_msg.go +++ b/internal/cron_task/clear_msg.go @@ -1,4 +1,4 @@ -package timedTask +package cronTask import ( "Open_IM/pkg/common/config" @@ -67,7 +67,7 @@ func deleteMongoMsg(operationID string, ID string, index int64, IDList *[]string } } *IDList = append(*IDList, msgs.UID) - // 没有找到 代表需要全部删除掉 继续查找下一个比较旧的列表 + // 没有找到 代表需要全部删除掉 继续递归查找下一个比较旧的列表 seq, err := deleteMongoMsg(operationID, utils.GetSelfFuncName(), index-1, IDList) if err != nil { return 0, utils.Wrap(err, "deleteMongoMsg failed") diff --git a/internal/cron_task/cron_task.go b/internal/cron_task/cron_task.go new file mode 100644 index 000000000..ff861885a --- /dev/null +++ b/internal/cron_task/cron_task.go @@ -0,0 +1,50 @@ +package cronTask + +import ( + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" + "github.com/robfig/cron/v3" +) + +const cronTaskOperationID = "cronTaskOperationID-" + +func StartCronTask() { + log.NewInfo(utils.OperationIDGenerator(), "start cron task") + c := cron.New() + _, err := c.AddFunc("30 3-6,20-23 * * *", func() { + operationID := getCronTaskOperationID() + userIDList, err := im_mysql_model.SelectAllUserID() + if err == nil { + log.NewDebug(operationID, utils.GetSelfFuncName(), "userIDList: ", userIDList) + for _, userID := range userIDList { + if err := DeleteMongoMsgAndResetRedisSeq(operationID, userID, constant.WriteDiffusion); err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), userID, constant.WriteDiffusion) + } + } + } else { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error()) + } + + workingGroupIDList, err := im_mysql_model.GetGroupIDListByGroupType(constant.WorkingGroup) + if err == nil { + for _, groupID := range workingGroupIDList { + if err := DeleteMongoMsgAndResetRedisSeq(operationID, groupID, constant.ReadDiffusion); err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), operationID, groupID, constant.ReadDiffusion, err.Error()) + } + } + } else { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error()) + return + } + }) + if err != nil { + panic(err) + } + c.Start() +} + +func getCronTaskOperationID() string { + return cronTaskOperationID + utils.OperationIDGenerator() +} diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 31fa0ff72..894c859c1 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -568,7 +568,7 @@ func (s *groupServer) getGroupUserLevel(groupID, userID string) (int, error) { func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGroupMemberReq) (*pbGroup.KickGroupMemberResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc args ", req.String()) - groupInfo, err := imdb.GetGroupInfoByGroupID(req.GroupID) + groupInfo, err := rocksCache.GetGroupInfoFromCache(req.GroupID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupInfoByGroupID", req.GroupID, err.Error()) return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil @@ -578,7 +578,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou if groupInfo.GroupType != constant.SuperGroup { opFlag := 0 if !token_verify.IsManagerUserID(req.OpUserID) { - opInfo, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupID, req.OpUserID) + opInfo, err := rocksCache.GetGroupMemberInfoFromCache(req.GroupID, req.OpUserID) if err != nil { errMsg := req.OperationID + " GetGroupMemberInfoByGroupIDAndUserID failed " + err.Error() + req.GroupID + req.OpUserID log.Error(req.OperationID, errMsg) @@ -605,7 +605,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou //remove for _, v := range req.KickedUserIDList { - kickedInfo, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupID, v) + kickedInfo, err := rocksCache.GetGroupMemberInfoFromCache(req.GroupID, v) if err != nil { log.NewError(req.OperationID, " GetGroupMemberInfoByGroupIDAndUserID failed ", req.GroupID, v, err.Error()) resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1}) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 0b171a5eb..91d8ca1d3 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -334,7 +334,7 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S } m := make(map[string][]string, 2) m[constant.OnlineStatus] = memberUserIDList - log.Debug(pb.OperationID, "send msg cost time1 ", db.GetCurrentTimestampByMill()-newTime, pb.MsgData.ClientMsgID) + log.Debug(pb.OperationID, "send msg cost time1 ", db.GetCurrentTimestampByMill()-newTime, pb.MsgData.ClientMsgID, pb) newTime = db.GetCurrentTimestampByMill() //split parallel send diff --git a/internal/timed_task/init.go b/internal/timed_task/init.go deleted file mode 100644 index fe4e214b0..000000000 --- a/internal/timed_task/init.go +++ /dev/null @@ -1 +0,0 @@ -package timedTask diff --git a/internal/timed_task/timed_task.go b/internal/timed_task/timed_task.go deleted file mode 100644 index 2498c730b..000000000 --- a/internal/timed_task/timed_task.go +++ /dev/null @@ -1,23 +0,0 @@ -package timedTask - -import ( - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/log" - "Open_IM/pkg/utils" - "github.com/robfig/cron/v3" -) - -func main() { - log.NewInfo(utils.OperationIDGenerator(), "start cron task") - c := cron.New() - _, err := c.AddFunc("30 3-6,20-23 * * *", func() { - operationID := utils.OperationIDGenerator() - if err := DeleteMongoMsgAndResetRedisSeq(operationID, "", constant.ReadDiffusion); err != nil { - log.NewError(operationID) - } - }) - if err != nil { - panic(err) - } - c.Start() -} diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 19c2b1164..34d420b52 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -184,3 +184,11 @@ func GetAllGroupIDList() ([]string, error) { err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Pluck("group_id", &groupIDList).Error return groupIDList, err } + +func GetGroupIDListByGroupType(groupType int) ([]string, error) { + var groupIDList []string + if err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Where("group_type = ? ", groupType).Pluck("group_id", &groupIDList).Error; err != nil { + return nil, err + } + return groupIDList, nil +} From bcc0c7c2df4cc104088238ec95aabfa6a7484fdf Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 9 Aug 2022 17:29:41 +0800 Subject: [PATCH 070/230] delete conversation update --- internal/api/msg/del_msg.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/msg/del_msg.go b/internal/api/msg/del_msg.go index f52bf83ea..3fefd0c11 100644 --- a/internal/api/msg/del_msg.go +++ b/internal/api/msg/del_msg.go @@ -79,11 +79,11 @@ func DelSuperGroupMsg(c *gin.Context) { resp api.DelSuperGroupMsgResp ) rpcReq := &rpc.DelSuperGroupMsgReq{} - utils.CopyStructFields(rpcReq, &req) if err := c.BindJSON(&req); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } + utils.CopyStructFields(rpcReq, &req) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) var ok bool var errInfo string From 706f6c6747af71b48e95199df9a87652ea936ab8 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 9 Aug 2022 18:48:11 +0800 Subject: [PATCH 071/230] getui debug --- internal/cron_task/clear_msg.go | 15 +++++++-------- internal/cron_task/cron_task.go | 17 +++++++++++++---- pkg/common/constant/constant.go | 6 ------ pkg/common/db/RedisModel.go | 2 +- 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/internal/cron_task/clear_msg.go b/internal/cron_task/clear_msg.go index 2b4877d2e..5e0851712 100644 --- a/internal/cron_task/clear_msg.go +++ b/internal/cron_task/clear_msg.go @@ -2,7 +2,6 @@ package cronTask import ( "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/common/log" server_api_params "Open_IM/pkg/proto/sdk_ws" @@ -15,19 +14,19 @@ import ( const oldestList = 0 const newestList = -1 -func DeleteMongoMsgAndResetRedisSeq(operationID, ID string, diffusionType int) error { +func ResetUserGroupMinSeq(operationID, groupID, userID string) error { + return nil +} + +func DeleteMongoMsgAndResetRedisSeq(operationID, userID string) error { // -1 表示从当前最早的一个开始 var delMsgIDList []string - minSeq, err := deleteMongoMsg(operationID, ID, oldestList, &delMsgIDList) + minSeq, err := deleteMongoMsg(operationID, userID, oldestList, &delMsgIDList) if err != nil { return utils.Wrap(err, "") } log.NewDebug(operationID, utils.GetSelfFuncName(), "delMsgIDList: ", delMsgIDList) - if diffusionType == constant.WriteDiffusion { - err = db.DB.SetUserMinSeq(ID, minSeq) - } else if diffusionType == constant.ReadDiffusion { - err = db.DB.SetGroupMinSeq(ID, minSeq) - } + err = db.DB.SetUserMinSeq(userID, minSeq) return err } diff --git a/internal/cron_task/cron_task.go b/internal/cron_task/cron_task.go index ff861885a..d103786e1 100644 --- a/internal/cron_task/cron_task.go +++ b/internal/cron_task/cron_task.go @@ -3,6 +3,7 @@ package cronTask import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + rocksCache "Open_IM/pkg/common/db/rocks_cache" "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "github.com/robfig/cron/v3" @@ -19,8 +20,8 @@ func StartCronTask() { if err == nil { log.NewDebug(operationID, utils.GetSelfFuncName(), "userIDList: ", userIDList) for _, userID := range userIDList { - if err := DeleteMongoMsgAndResetRedisSeq(operationID, userID, constant.WriteDiffusion); err != nil { - log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), userID, constant.WriteDiffusion) + if err := DeleteMongoMsgAndResetRedisSeq(operationID, userID); err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), userID) } } } else { @@ -30,8 +31,16 @@ func StartCronTask() { workingGroupIDList, err := im_mysql_model.GetGroupIDListByGroupType(constant.WorkingGroup) if err == nil { for _, groupID := range workingGroupIDList { - if err := DeleteMongoMsgAndResetRedisSeq(operationID, groupID, constant.ReadDiffusion); err != nil { - log.NewError(operationID, utils.GetSelfFuncName(), operationID, groupID, constant.ReadDiffusion, err.Error()) + userIDList, err = rocksCache.GetGroupMemberIDListFromCache(groupID) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), groupID) + continue + } + log.NewDebug(operationID, utils.GetSelfFuncName(), "groupID:", groupID, "userIDList:", userIDList) + for _, userID := range userIDList { + if err := ResetUserGroupMinSeq(operationID, groupID, userID); err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), operationID, groupID, userID, err.Error()) + } } } } else { diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 2ba3d1774..fecad1d32 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -227,12 +227,6 @@ const ( WorkMomentAtUserNotification = 2 ) -const ( - // diffusionType - WriteDiffusion = 0 - ReadDiffusion = 1 -) - const ( AtAllString = "AtAllTag" AtNormal = 0 diff --git a/pkg/common/db/RedisModel.go b/pkg/common/db/RedisModel.go index 4bbd66039..f21c61bc1 100644 --- a/pkg/common/db/RedisModel.go +++ b/pkg/common/db/RedisModel.go @@ -363,7 +363,7 @@ func (d *DataBases) DelMsgFromCache(uid string, seqList []uint32, operationID st result := d.RDB.Get(context.Background(), key).String() var msg pbCommon.MsgData if err := utils.String2Pb(result, &msg); err != nil { - log2.Error(operationID, utils.GetSelfFuncName(), "String2Pb failed", msg, err.Error()) + log2.Error(operationID, utils.GetSelfFuncName(), "String2Pb failed", msg, result, key, err.Error()) continue } msg.Status = constant.MsgDeleted From 6c0922a6d83ac9eb1676185cded2542735746a3a Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 9 Aug 2022 19:44:27 +0800 Subject: [PATCH 072/230] fix delete --- pkg/common/db/RedisModel.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/common/db/RedisModel.go b/pkg/common/db/RedisModel.go index f21c61bc1..535acd2e8 100644 --- a/pkg/common/db/RedisModel.go +++ b/pkg/common/db/RedisModel.go @@ -360,7 +360,15 @@ func (d *DataBases) DelUserSignalList(userID string) error { func (d *DataBases) DelMsgFromCache(uid string, seqList []uint32, operationID string) { for _, seq := range seqList { key := messageCache + uid + "_" + strconv.Itoa(int(seq)) - result := d.RDB.Get(context.Background(), key).String() + result, err := d.RDB.Get(context.Background(), key).Result() + if err != nil { + if err == go_redis.Nil { + log2.NewDebug(operationID, utils.GetSelfFuncName(), err.Error(), "redis nil") + } else { + log2.NewError(operationID, utils.GetSelfFuncName(), err.Error(), key) + } + continue + } var msg pbCommon.MsgData if err := utils.String2Pb(result, &msg); err != nil { log2.Error(operationID, utils.GetSelfFuncName(), "String2Pb failed", msg, result, key, err.Error()) From a74168d1e150df9253549bdd95170cd9efc3098f Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 12:02:50 +0800 Subject: [PATCH 073/230] fix delete --- config/config.yaml | 1 + internal/cron_task/clear_msg.go | 69 ++++++++++++++++++++++----------- internal/cron_task/cron_task.go | 9 +++-- pkg/common/config/config.go | 21 +++++----- 4 files changed, 64 insertions(+), 36 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 6ffb11f92..91df1a62f 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -32,6 +32,7 @@ mongo: dbPassword: #mongo密码,建议先不设置 dbMaxPoolSize: 100 dbRetainChatRecords: 3650 #mongo保存离线消息时间(天),根据需求修改 + chatRecordsClearTime: "* * * * *" # 每天凌晨3点清除消息,该配置和linux定时任务一样, 清理操作建议设置在用户活跃少的时候 # 0 3 * * * redis: dbAddress: [ 127.0.0.1:16379 ] #redis地址 单机时,填写一个地址即可,使用redis集群时候,填写集群中多个节点地址(主从地址都可以填写,增加容灾能力),默认即可 diff --git a/internal/cron_task/clear_msg.go b/internal/cron_task/clear_msg.go index 5e0851712..d7f530a2c 100644 --- a/internal/cron_task/clear_msg.go +++ b/internal/cron_task/clear_msg.go @@ -7,47 +7,72 @@ import ( server_api_params "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "github.com/golang/protobuf/proto" - "strconv" - "strings" ) const oldestList = 0 const newestList = -1 -func ResetUserGroupMinSeq(operationID, groupID, userID string) error { +func ResetUserGroupMinSeq(operationID, groupID string, userIDList []string) error { + var delMsgIDList [][2]interface{} + minSeq, err := deleteMongoMsg(operationID, groupID, oldestList, &delMsgIDList) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), groupID, "deleteMongoMsg failed") + return utils.Wrap(err, "") + } + for _, userID := range userIDList { + userMinSeq, err := db.DB.GetGroupUserMinSeq(groupID, userID) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), "GetGroupUserMinSeq failed", groupID, userID, err.Error()) + continue + } + if userMinSeq > uint64(minSeq) { + err = db.DB.SetGroupUserMinSeq(groupID, userID, userMinSeq) + } else { + err = db.DB.SetGroupUserMinSeq(groupID, userID, uint64(minSeq)) + } + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), groupID, userID, userMinSeq, minSeq) + } + } return nil } func DeleteMongoMsgAndResetRedisSeq(operationID, userID string) error { - // -1 表示从当前最早的一个开始 - var delMsgIDList []string + var delMsgIDList [][2]interface{} minSeq, err := deleteMongoMsg(operationID, userID, oldestList, &delMsgIDList) if err != nil { return utils.Wrap(err, "") } - log.NewDebug(operationID, utils.GetSelfFuncName(), "delMsgIDList: ", delMsgIDList) + log.NewDebug(operationID, utils.GetSelfFuncName(), "delMsgIDMap: ", userID, delMsgIDList) err = db.DB.SetUserMinSeq(userID, minSeq) return err } // recursion -func deleteMongoMsg(operationID string, ID string, index int64, IDList *[]string) (uint32, error) { +func deleteMongoMsg(operationID string, ID string, index int64, delMsgIDList *[][2]interface{}) (uint32, error) { // 从最旧的列表开始找 msgs, err := db.DB.GetUserMsgListByIndex(ID, index) if err != nil { return 0, utils.Wrap(err, "GetUserMsgListByIndex failed") } + if len(msgs.Msg) > db.GetSingleGocMsgNum() { + log.NewWarn(operationID, utils.GetSelfFuncName(), "msgs too large", len(msgs.Msg), msgs.UID) + } log.NewDebug(operationID, utils.GetSelfFuncName(), "get msgs: ", msgs.UID) for i, msg := range msgs.Msg { // 找到列表中不需要删除的消息了 - if msg.SendTime+int64(config.Config.Mongo.DBRetainChatRecords) > utils.GetCurrentTimestampByMill() { - if len(*IDList) > 0 { - err := db.DB.DelMongoMsgs(*IDList) + if utils.GetCurrentTimestampByMill() < msg.SendTime+int64(config.Config.Mongo.DBRetainChatRecords)*24*60*60*1000 { + if len(*delMsgIDList) > 0 { + var IDList []string + for _, v := range *delMsgIDList { + IDList = append(IDList, v[0].(string)) + } + err := db.DB.DelMongoMsgs(IDList) if err != nil { return 0, utils.Wrap(err, "DelMongoMsgs failed") } } - minSeq := getDelMaxSeqByIDList(*IDList) + minSeq := getDelMaxSeqByIDList(*delMsgIDList) if i > 0 { msgPb := &server_api_params.MsgData{} err = proto.Unmarshal(msg.Msg, msgPb) @@ -65,24 +90,24 @@ func deleteMongoMsg(operationID string, ID string, index int64, IDList *[]string return minSeq, nil } } - *IDList = append(*IDList, msgs.UID) + msgPb := &server_api_params.MsgData{} + err = proto.Unmarshal(msgs.Msg[len(msgs.Msg)-1].Msg, msgPb) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), len(msgs.Msg)-1, msgs.UID) + return 0, utils.Wrap(err, "proto.Unmarshal failed") + } + *delMsgIDList = append(*delMsgIDList, [2]interface{}{msgs.UID, msgPb.Seq}) // 没有找到 代表需要全部删除掉 继续递归查找下一个比较旧的列表 - seq, err := deleteMongoMsg(operationID, utils.GetSelfFuncName(), index-1, IDList) + seq, err := deleteMongoMsg(operationID, utils.GetSelfFuncName(), index+1, delMsgIDList) if err != nil { return 0, utils.Wrap(err, "deleteMongoMsg failed") } return seq, nil } -func getDelMaxSeqByIDList(IDList []string) uint32 { - if len(IDList) == 0 { +func getDelMaxSeqByIDList(delMsgIDList [][2]interface{}) uint32 { + if len(delMsgIDList) == 0 { return 0 } - l := strings.Split(IDList[len(IDList)-1], ":") - index, _ := strconv.Atoi(l[len(l)-1]) - if index == 0 { - // 4999 - return uint32(db.GetSingleGocMsgNum()) - 1 - } // 5000 - return (uint32(db.GetSingleGocMsgNum()) - 1) + uint32(index*db.GetSingleGocMsgNum()) + return delMsgIDList[len(delMsgIDList)-1][1].(uint32) } diff --git a/internal/cron_task/cron_task.go b/internal/cron_task/cron_task.go index d103786e1..03ee96603 100644 --- a/internal/cron_task/cron_task.go +++ b/internal/cron_task/cron_task.go @@ -6,6 +6,7 @@ import ( rocksCache "Open_IM/pkg/common/db/rocks_cache" "Open_IM/pkg/common/log" "Open_IM/pkg/utils" + "fmt" "github.com/robfig/cron/v3" ) @@ -37,11 +38,10 @@ func StartCronTask() { continue } log.NewDebug(operationID, utils.GetSelfFuncName(), "groupID:", groupID, "userIDList:", userIDList) - for _, userID := range userIDList { - if err := ResetUserGroupMinSeq(operationID, groupID, userID); err != nil { - log.NewError(operationID, utils.GetSelfFuncName(), operationID, groupID, userID, err.Error()) - } + if err := ResetUserGroupMinSeq(operationID, groupID, userIDList); err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), groupID, userIDList) } + } } else { log.NewError(operationID, utils.GetSelfFuncName(), err.Error()) @@ -49,6 +49,7 @@ func StartCronTask() { } }) if err != nil { + fmt.Println("start cron failed", err.Error()) panic(err) } c.Start() diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 74c03ca4a..29779116e 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -92,16 +92,17 @@ type config struct { DBMaxLifeTime int `yaml:"dbMaxLifeTime"` } Mongo struct { - DBUri string `yaml:"dbUri"` - DBAddress string `yaml:"dbAddress"` - DBDirect bool `yaml:"dbDirect"` - DBTimeout int `yaml:"dbTimeout"` - DBDatabase string `yaml:"dbDatabase"` - DBSource string `yaml:"dbSource"` - DBUserName string `yaml:"dbUserName"` - DBPassword string `yaml:"dbPassword"` - DBMaxPoolSize int `yaml:"dbMaxPoolSize"` - DBRetainChatRecords int `yaml:"dbRetainChatRecords"` + DBUri string `yaml:"dbUri"` + DBAddress string `yaml:"dbAddress"` + DBDirect bool `yaml:"dbDirect"` + DBTimeout int `yaml:"dbTimeout"` + DBDatabase string `yaml:"dbDatabase"` + DBSource string `yaml:"dbSource"` + DBUserName string `yaml:"dbUserName"` + DBPassword string `yaml:"dbPassword"` + DBMaxPoolSize int `yaml:"dbMaxPoolSize"` + DBRetainChatRecords int `yaml:"dbRetainChatRecords"` + ChatRecordsClearTime string `yaml:"chatRecordsClearTime"` } Redis struct { DBAddress []string `yaml:"dbAddress"` From 4c101649701ade5b0413d5278af7c3fbea9d140a Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 12:07:32 +0800 Subject: [PATCH 074/230] fix delete --- cmd/cron_task/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/cron_task/main.go b/cmd/cron_task/main.go index db62e1172..1e7396d61 100644 --- a/cmd/cron_task/main.go +++ b/cmd/cron_task/main.go @@ -1,4 +1,4 @@ -package cron_task +package main import ( "Open_IM/internal/cron_task" From cfe218b8a440c041a44a4c752cbb4bc883ca0405 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 12:08:28 +0800 Subject: [PATCH 075/230] fix delete --- internal/cron_task/cron_task.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/cron_task/cron_task.go b/internal/cron_task/cron_task.go index 03ee96603..7617f81a0 100644 --- a/internal/cron_task/cron_task.go +++ b/internal/cron_task/cron_task.go @@ -53,6 +53,7 @@ func StartCronTask() { panic(err) } c.Start() + fmt.Println("start cron task success") } func getCronTaskOperationID() string { From 2ee094311566f92e9ccbb073209a7202b3a2e0a4 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 12:09:28 +0800 Subject: [PATCH 076/230] fix delete --- internal/cron_task/cron_task.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/cron_task/cron_task.go b/internal/cron_task/cron_task.go index 7617f81a0..22a7a3901 100644 --- a/internal/cron_task/cron_task.go +++ b/internal/cron_task/cron_task.go @@ -8,6 +8,7 @@ import ( "Open_IM/pkg/utils" "fmt" "github.com/robfig/cron/v3" + "time" ) const cronTaskOperationID = "cronTaskOperationID-" @@ -54,6 +55,9 @@ func StartCronTask() { } c.Start() fmt.Println("start cron task success") + for { + time.Sleep(time.Second) + } } func getCronTaskOperationID() string { From a2a56980d9defd89d245aa6a3558fa74701616d5 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Wed, 10 Aug 2022 13:29:12 +0800 Subject: [PATCH 077/230] add log --- internal/msg_transfer/logic/online_msg_to_mongo_handler.go | 1 + pkg/common/db/batch_insert_chat.go | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/msg_transfer/logic/online_msg_to_mongo_handler.go b/internal/msg_transfer/logic/online_msg_to_mongo_handler.go index 58575f849..f08b59965 100644 --- a/internal/msg_transfer/logic/online_msg_to_mongo_handler.go +++ b/internal/msg_transfer/logic/online_msg_to_mongo_handler.go @@ -34,6 +34,7 @@ func (mc *OnlineHistoryMongoConsumerHandler) handleChatWs2Mongo(cMsg *sarama.Con log.Error("msg_transfer Unmarshal msg err", "", "msg", string(msg), "err", err.Error()) return } + log.Info(msgFromMQ.TriggerID, "BatchInsertChat2DB userID: ", msgFromMQ.AggregationID, "msgFromMQ.LastSeq: ", msgFromMQ.LastSeq) err = db.DB.BatchInsertChat2DB(msgFromMQ.AggregationID, msgFromMQ.MessageList, msgFromMQ.TriggerID, msgFromMQ.LastSeq) if err != nil { log.NewError(msgFromMQ.TriggerID, "single data insert to mongo err", err.Error(), msgFromMQ.MessageList, msgFromMQ.AggregationID, msgFromMQ.TriggerID) diff --git a/pkg/common/db/batch_insert_chat.go b/pkg/common/db/batch_insert_chat.go index f2920813d..cfcbb029d 100644 --- a/pkg/common/db/batch_insert_chat.go +++ b/pkg/common/db/batch_insert_chat.go @@ -45,6 +45,7 @@ func (d *DataBases) BatchInsertChat2DB(userID string, msgList []*pbMsg.MsgDataTo sMsg := MsgInfo{} sMsg.SendTime = m.MsgData.SendTime m.MsgData.Seq = uint32(currentMaxSeq) + log.Debug(operationID, "mongo msg node ", m.String(), m.MsgData.ClientMsgID, "userID: ", userID, "seq: ", currentMaxSeq) if sMsg.Msg, err = proto.Marshal(m.MsgData); err != nil { return utils.Wrap(err, "") } @@ -128,11 +129,12 @@ func (d *DataBases) BatchInsertChat2Cache(insertID string, msgList []*pbMsg.MsgD lastMaxSeq := currentMaxSeq for _, m := range msgList { - log.Debug(operationID, "msg node ", m.String(), m.MsgData.ClientMsgID) + currentMaxSeq++ sMsg := MsgInfo{} sMsg.SendTime = m.MsgData.SendTime m.MsgData.Seq = uint32(currentMaxSeq) + log.Debug(operationID, "cache msg node ", m.String(), m.MsgData.ClientMsgID, "userID: ", insertID, "seq: ", currentMaxSeq) } log.Debug(operationID, "SetMessageToCache ", insertID, len(msgList)) err = d.SetMessageToCache(msgList, insertID, operationID) From 7b590e4bd68a80224415b6fdeef411d98a4a940b Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Wed, 10 Aug 2022 14:01:26 +0800 Subject: [PATCH 078/230] add log --- pkg/common/db/batch_insert_chat.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/batch_insert_chat.go b/pkg/common/db/batch_insert_chat.go index cfcbb029d..588a647dc 100644 --- a/pkg/common/db/batch_insert_chat.go +++ b/pkg/common/db/batch_insert_chat.go @@ -26,12 +26,15 @@ func (d *DataBases) BatchInsertChat2DB(userID string, msgList []*pbMsg.MsgDataTo isInit := false var remain uint64 blk0 := uint64(GetSingleGocMsgNum() - 1) + //currentMaxSeq 4998 if currentMaxSeq < uint64(GetSingleGocMsgNum()) { - remain = blk0 - currentMaxSeq + remain = blk0 - currentMaxSeq //1 } else { - excludeBlk0 := currentMaxSeq - blk0 + excludeBlk0 := currentMaxSeq - blk0 //=1 + //(5000-1)%5000 == 4999 remain = (uint64(GetSingleGocMsgNum()) - (excludeBlk0 % uint64(GetSingleGocMsgNum()))) % uint64(GetSingleGocMsgNum()) } + //remain=1 insertCounter := uint64(0) msgListToMongo := make([]MsgInfo, 0) msgListToMongoNext := make([]MsgInfo, 0) @@ -120,8 +123,10 @@ func (d *DataBases) BatchInsertChat2Cache(insertID string, msgList []*pbMsg.MsgD var err error if msgList[0].MsgData.SessionType == constant.SuperGroupChatType { currentMaxSeq, err = d.GetGroupMaxSeq(insertID) + log.Debug(operationID, "constant.SuperGroupChatType lastMaxSeq before add ", currentMaxSeq, "userID ", insertID, err) } else { currentMaxSeq, err = d.GetUserMaxSeq(insertID) + log.Debug(operationID, "constant.SingleChatType lastMaxSeq before add ", currentMaxSeq, "userID ", insertID, err) } if err != nil && err != go_redis.Nil { return utils.Wrap(err, ""), 0 From 281f4b38d2e39d6c42c47da7eb54b27a9c56dd34 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Wed, 10 Aug 2022 14:15:45 +0800 Subject: [PATCH 079/230] add log --- pkg/common/db/batch_insert_chat.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/common/db/batch_insert_chat.go b/pkg/common/db/batch_insert_chat.go index 588a647dc..16096f9bb 100644 --- a/pkg/common/db/batch_insert_chat.go +++ b/pkg/common/db/batch_insert_chat.go @@ -62,11 +62,11 @@ func (d *DataBases) BatchInsertChat2DB(userID string, msgList []*pbMsg.MsgDataTo msgListToMongo = append(msgListToMongo, sMsg) insertCounter++ seqUid = getSeqUid(userID, uint32(currentMaxSeq)) - log.Debug(operationID, "msgListToMongo ", seqUid, m.MsgData.Seq, m.MsgData.ClientMsgID, insertCounter, remain) + log.Debug(operationID, "msgListToMongo ", seqUid, m.MsgData.Seq, m.MsgData.ClientMsgID, insertCounter, remain, "userID: ", userID) } else { msgListToMongoNext = append(msgListToMongoNext, sMsg) seqUidNext = getSeqUid(userID, uint32(currentMaxSeq)) - log.Debug(operationID, "msgListToMongoNext ", seqUidNext, m.MsgData.Seq, m.MsgData.ClientMsgID, insertCounter, remain) + log.Debug(operationID, "msgListToMongoNext ", seqUidNext, m.MsgData.Seq, m.MsgData.ClientMsgID, insertCounter, remain, "userID: ", userID) } } @@ -75,7 +75,7 @@ func (d *DataBases) BatchInsertChat2DB(userID string, msgList []*pbMsg.MsgDataTo if seqUid != "" { filter := bson.M{"uid": seqUid} - log.NewDebug(operationID, "filter ", seqUid, "list ", msgListToMongo) + log.NewDebug(operationID, "filter ", seqUid, "list ", msgListToMongo, "userID: ", userID) err := c.FindOneAndUpdate(ctx, filter, bson.M{"$push": bson.M{"msg": bson.M{"$each": msgListToMongo}}}).Err() if err != nil { if err == mongo.ErrNoDocuments { @@ -99,7 +99,7 @@ func (d *DataBases) BatchInsertChat2DB(userID string, msgList []*pbMsg.MsgDataTo sChat := UserChat{} sChat.UID = seqUidNext sChat.Msg = msgListToMongoNext - log.NewDebug(operationID, "filter ", seqUidNext, "list ", msgListToMongoNext) + log.NewDebug(operationID, "filter ", seqUidNext, "list ", msgListToMongoNext, "userID: ", userID) if _, err = c.InsertOne(ctx, &sChat); err != nil { log.NewError(operationID, "InsertOne failed", filter, err.Error(), sChat) return utils.Wrap(err, "") From 2892add766ae974fbdb4e27a0dc6477588cad3c6 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 15:14:51 +0800 Subject: [PATCH 080/230] fix delete --- internal/cron_task/clear_msg.go | 48 ++++++++++++++++++++------------- internal/cron_task/cron_task.go | 3 ++- 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/internal/cron_task/clear_msg.go b/internal/cron_task/clear_msg.go index d7f530a2c..41c1b18e0 100644 --- a/internal/cron_task/clear_msg.go +++ b/internal/cron_task/clear_msg.go @@ -48,12 +48,29 @@ func DeleteMongoMsgAndResetRedisSeq(operationID, userID string) error { return err } +func delMongoMsgs(operationID string, delMsgIDList *[][2]interface{}) error { + if len(*delMsgIDList) > 0 { + var IDList []string + for _, v := range *delMsgIDList { + IDList = append(IDList, v[0].(string)) + } + err := db.DB.DelMongoMsgs(IDList) + if err != nil { + return utils.Wrap(err, "DelMongoMsgs failed") + } + } + return nil +} + // recursion func deleteMongoMsg(operationID string, ID string, index int64, delMsgIDList *[][2]interface{}) (uint32, error) { // 从最旧的列表开始找 msgs, err := db.DB.GetUserMsgListByIndex(ID, index) - if err != nil { - return 0, utils.Wrap(err, "GetUserMsgListByIndex failed") + if err != nil || msgs.UID == "" { + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), "GetUserMsgListByIndex failed", err.Error(), index, ID) + } + return getDelMaxSeqByIDList(*delMsgIDList), delMongoMsgs(operationID, delMsgIDList) } if len(msgs.Msg) > db.GetSingleGocMsgNum() { log.NewWarn(operationID, utils.GetSelfFuncName(), "msgs too large", len(msgs.Msg), msgs.UID) @@ -62,15 +79,8 @@ func deleteMongoMsg(operationID string, ID string, index int64, delMsgIDList *[] for i, msg := range msgs.Msg { // 找到列表中不需要删除的消息了 if utils.GetCurrentTimestampByMill() < msg.SendTime+int64(config.Config.Mongo.DBRetainChatRecords)*24*60*60*1000 { - if len(*delMsgIDList) > 0 { - var IDList []string - for _, v := range *delMsgIDList { - IDList = append(IDList, v[0].(string)) - } - err := db.DB.DelMongoMsgs(IDList) - if err != nil { - return 0, utils.Wrap(err, "DelMongoMsgs failed") - } + if err := delMongoMsgs(operationID, delMsgIDList); err != nil { + return 0, err } minSeq := getDelMaxSeqByIDList(*delMsgIDList) if i > 0 { @@ -84,19 +94,21 @@ func deleteMongoMsg(operationID string, ID string, index int64, delMsgIDList *[] log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), msgs.UID, i) return minSeq, nil } - minSeq = msgPb.Seq - 1 + minSeq = msgPb.Seq } } return minSeq, nil } } - msgPb := &server_api_params.MsgData{} - err = proto.Unmarshal(msgs.Msg[len(msgs.Msg)-1].Msg, msgPb) - if err != nil { - log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), len(msgs.Msg)-1, msgs.UID) - return 0, utils.Wrap(err, "proto.Unmarshal failed") + if len(msgs.Msg) > 0 { + msgPb := &server_api_params.MsgData{} + err = proto.Unmarshal(msgs.Msg[len(msgs.Msg)-1].Msg, msgPb) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), len(msgs.Msg)-1, msgs.UID) + return 0, utils.Wrap(err, "proto.Unmarshal failed") + } + *delMsgIDList = append(*delMsgIDList, [2]interface{}{msgs.UID, msgPb.Seq}) } - *delMsgIDList = append(*delMsgIDList, [2]interface{}{msgs.UID, msgPb.Seq}) // 没有找到 代表需要全部删除掉 继续递归查找下一个比较旧的列表 seq, err := deleteMongoMsg(operationID, utils.GetSelfFuncName(), index+1, delMsgIDList) if err != nil { diff --git a/internal/cron_task/cron_task.go b/internal/cron_task/cron_task.go index 22a7a3901..3aabea599 100644 --- a/internal/cron_task/cron_task.go +++ b/internal/cron_task/cron_task.go @@ -1,6 +1,7 @@ package cronTask import ( + "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" rocksCache "Open_IM/pkg/common/db/rocks_cache" @@ -16,7 +17,7 @@ const cronTaskOperationID = "cronTaskOperationID-" func StartCronTask() { log.NewInfo(utils.OperationIDGenerator(), "start cron task") c := cron.New() - _, err := c.AddFunc("30 3-6,20-23 * * *", func() { + _, err := c.AddFunc(config.Config.Mongo.ChatRecordsClearTime, func() { operationID := getCronTaskOperationID() userIDList, err := im_mysql_model.SelectAllUserID() if err == nil { From b1d0ca76c9791f2b51de71a324cae5e5186d8d77 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 15:19:24 +0800 Subject: [PATCH 081/230] fix delete --- internal/cron_task/cron_task.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/cron_task/cron_task.go b/internal/cron_task/cron_task.go index 3aabea599..03f1145b0 100644 --- a/internal/cron_task/cron_task.go +++ b/internal/cron_task/cron_task.go @@ -17,6 +17,7 @@ const cronTaskOperationID = "cronTaskOperationID-" func StartCronTask() { log.NewInfo(utils.OperationIDGenerator(), "start cron task") c := cron.New() + fmt.Println("config", config.Config.Mongo.ChatRecordsClearTime) _, err := c.AddFunc(config.Config.Mongo.ChatRecordsClearTime, func() { operationID := getCronTaskOperationID() userIDList, err := im_mysql_model.SelectAllUserID() From f6c6d5804566e245aa954548d260dd204a335f38 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 15:21:59 +0800 Subject: [PATCH 082/230] fix delete --- internal/cron_task/cron_task.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/cron_task/cron_task.go b/internal/cron_task/cron_task.go index 03f1145b0..625ab539c 100644 --- a/internal/cron_task/cron_task.go +++ b/internal/cron_task/cron_task.go @@ -20,6 +20,7 @@ func StartCronTask() { fmt.Println("config", config.Config.Mongo.ChatRecordsClearTime) _, err := c.AddFunc(config.Config.Mongo.ChatRecordsClearTime, func() { operationID := getCronTaskOperationID() + log.NewInfo(operationID, "start", utils.GetSelfFuncName()) userIDList, err := im_mysql_model.SelectAllUserID() if err == nil { log.NewDebug(operationID, utils.GetSelfFuncName(), "userIDList: ", userIDList) From edeb2283157b101f8c033c6e2c26c5dcb0212653 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 15:23:44 +0800 Subject: [PATCH 083/230] fix delete --- internal/cron_task/cron_task.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/cron_task/cron_task.go b/internal/cron_task/cron_task.go index 625ab539c..742a8ec53 100644 --- a/internal/cron_task/cron_task.go +++ b/internal/cron_task/cron_task.go @@ -20,6 +20,7 @@ func StartCronTask() { fmt.Println("config", config.Config.Mongo.ChatRecordsClearTime) _, err := c.AddFunc(config.Config.Mongo.ChatRecordsClearTime, func() { operationID := getCronTaskOperationID() + fmt.Println("start del msgs") log.NewInfo(operationID, "start", utils.GetSelfFuncName()) userIDList, err := im_mysql_model.SelectAllUserID() if err == nil { From cdc60ef5f0726a2584b4e8636ab8b84c7d9906d8 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 15:35:28 +0800 Subject: [PATCH 084/230] fix delete --- cmd/cron_task/Makefile | 23 +++++++++++++++++++++++ internal/cron_task/cron_task.go | 1 - script/path_info.cfg | 2 ++ script/start_rpc_service.sh | 1 + 4 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 cmd/cron_task/Makefile diff --git a/cmd/cron_task/Makefile b/cmd/cron_task/Makefile new file mode 100644 index 000000000..ecbd6e128 --- /dev/null +++ b/cmd/cron_task/Makefile @@ -0,0 +1,23 @@ +.PHONY: all build run gotool install clean help + +BINARY_NAME=cron_task +BIN_DIR=../../../bin/ + +all: gotool build + +build: + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" + +run: + @go run ./ + +gotool: + go fmt ./ + go vet ./ + +install: + make build + mv ${BINARY_NAME} ${BIN_DIR} + +clean: + @if [ -f ${BINARY_NAME} ] ; then rm ${BINARY_NAME} ; fi diff --git a/internal/cron_task/cron_task.go b/internal/cron_task/cron_task.go index 742a8ec53..625ab539c 100644 --- a/internal/cron_task/cron_task.go +++ b/internal/cron_task/cron_task.go @@ -20,7 +20,6 @@ func StartCronTask() { fmt.Println("config", config.Config.Mongo.ChatRecordsClearTime) _, err := c.AddFunc(config.Config.Mongo.ChatRecordsClearTime, func() { operationID := getCronTaskOperationID() - fmt.Println("start del msgs") log.NewInfo(operationID, "start", utils.GetSelfFuncName()) userIDList, err := im_mysql_model.SelectAllUserID() if err == nil { diff --git a/script/path_info.cfg b/script/path_info.cfg index 17382cbfd..fd5c11319 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -48,6 +48,7 @@ service_source_root=( ../cmd/rpc/open_im_organization/ ../cmd/rpc/open_im_conversation/ ../cmd/rpc/open_im_cache/ + ../cmd/cron_task ${msg_gateway_source_root} ${msg_transfer_source_root} ${msg_source_root} @@ -72,6 +73,7 @@ service_names=( open_im_organization open_im_conversation open_im_cache + cron_task ${msg_gateway_name} ${msg_transfer_name} ${msg_name} diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index 351bd2797..4b26b24a4 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -22,6 +22,7 @@ service_filename=( open_im_organization open_im_conversation open_im_cache + cron_task ) #service config port name From 25de6b58c3ea39fb1cb415650484225d7af11485 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 10 Aug 2022 18:29:49 +0800 Subject: [PATCH 085/230] conversation update --- config/config.yaml | 2 +- internal/rpc/conversation/conversaion.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 91df1a62f..fc76e3615 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -252,7 +252,7 @@ singleMessageHasReadReceiptEnable: true tokenpolicy: accessSecret: "open_im_server" #token生成相关,默认即可 # Token effective time day as a unit - accessExpire: 3650 #token过期时间(天) 默认即可 + accessExpire: 90 #token过期时间(天) 默认即可 messageverify: friendVerify: false diff --git a/internal/rpc/conversation/conversaion.go b/internal/rpc/conversation/conversaion.go index 2828a9df5..fc9702ebc 100644 --- a/internal/rpc/conversation/conversaion.go +++ b/internal/rpc/conversation/conversaion.go @@ -38,7 +38,7 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo resp.CommonResp = &pbConversation.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} return resp, nil } - if groupInfo.Status == constant.GroupStatusDismissed && !req.Conversation.IsNotInGroup { + if groupInfo.Status == constant.GroupStatusDismissed && !req.Conversation.IsNotInGroup && req.FieldType != constant.FieldUnread { errMsg := "group status is dismissed" resp.CommonResp = &pbConversation.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg} return resp, nil From 6bfa8643d688c8356471d06fb216b74f4ba2939d Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 19:31:57 +0800 Subject: [PATCH 086/230] fix delete --- .../api/third/minio_storage_credential.go | 17 +++++++++- internal/cron_task/clear_msg.go | 31 ++++++++++++++++- internal/cron_task/cron_task.go | 8 ++++- internal/cron_task/test/main.go | 3 ++ internal/push/getui/push.go | 24 +++++++++++++ pkg/common/constant/constant.go | 5 +++ pkg/common/db/mongoModel.go | 34 ++++++++++++++++--- 7 files changed, 114 insertions(+), 8 deletions(-) create mode 100644 internal/cron_task/test/main.go diff --git a/internal/api/third/minio_storage_credential.go b/internal/api/third/minio_storage_credential.go index 4c6fad1f2..07b256e0f 100644 --- a/internal/api/third/minio_storage_credential.go +++ b/internal/api/third/minio_storage_credential.go @@ -15,6 +15,8 @@ import ( _ "github.com/minio/minio-go/v7" cr "github.com/minio/minio-go/v7/pkg/credentials" "net/http" + "strconv" + "strings" ) // @Summary minio上传文件(web api) @@ -218,6 +220,13 @@ func UploadUpdateApp(c *gin.Context) { c.JSON(http.StatusOK, resp) } +func version2Int(version string) (int, error) { + versions := strings.Split(version, ".") + s := strings.Join(versions, "") + versionInt, err := strconv.Atoi(s) + return versionInt, err +} + func GetDownloadURL(c *gin.Context) { var ( req api.GetDownloadURLReq @@ -238,7 +247,13 @@ func GetDownloadURL(c *gin.Context) { } log.Debug(req.OperationID, utils.GetSelfFuncName(), "app: ", app) if app != nil { - if app.Version != req.Version && app.Version != "" { + appVersion, err := version2Int(app.Version) + reqVersion, err := version2Int(req.Version) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), "req version", req.Version, "app version", app.Version) + } + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "req version:", reqVersion, "app version:", appVersion) + if appVersion > reqVersion && app.Version != "" { resp.Data.HasNewVersion = true if app.ForceUpdate == true { resp.Data.ForceUpdate = true diff --git a/internal/cron_task/clear_msg.go b/internal/cron_task/clear_msg.go index 41c1b18e0..3c43e3e20 100644 --- a/internal/cron_task/clear_msg.go +++ b/internal/cron_task/clear_msg.go @@ -2,11 +2,13 @@ package cronTask import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/common/log" server_api_params "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "github.com/golang/protobuf/proto" + "math" ) const oldestList = 0 @@ -19,6 +21,7 @@ func ResetUserGroupMinSeq(operationID, groupID string, userIDList []string) erro log.NewError(operationID, utils.GetSelfFuncName(), groupID, "deleteMongoMsg failed") return utils.Wrap(err, "") } + log.NewDebug(operationID, utils.GetSelfFuncName(), "delMsgIDList:", delMsgIDList, "minSeq", minSeq) for _, userID := range userIDList { userMinSeq, err := db.DB.GetGroupUserMinSeq(groupID, userID) if err != nil { @@ -43,7 +46,7 @@ func DeleteMongoMsgAndResetRedisSeq(operationID, userID string) error { if err != nil { return utils.Wrap(err, "") } - log.NewDebug(operationID, utils.GetSelfFuncName(), "delMsgIDMap: ", userID, delMsgIDList) + log.NewDebug(operationID, utils.GetSelfFuncName(), "delMsgIDMap: ", delMsgIDList, "minSeq", minSeq) err = db.DB.SetUserMinSeq(userID, minSeq) return err } @@ -123,3 +126,29 @@ func getDelMaxSeqByIDList(delMsgIDList [][2]interface{}) uint32 { } return delMsgIDList[len(delMsgIDList)-1][1].(uint32) } + +func checkMaxSeqWithMongo(operationID, ID string, diffusionType int) error { + var maxSeq uint64 + var err error + if diffusionType == constant.WriteDiffusion { + maxSeq, err = db.DB.GetUserMaxSeq(ID) + } else { + maxSeq, err = db.DB.GetGroupMaxSeq(ID) + } + if err != nil { + return utils.Wrap(err, "GetUserMaxSeq failed") + } + msg, err := db.DB.GetNewestMsg(ID) + if err != nil { + return utils.Wrap(err, "GetNewestMsg failed") + } + msgPb := &server_api_params.MsgData{} + err = proto.Unmarshal(msg.Msg, msgPb) + if err != nil { + return utils.Wrap(err, "") + } + if math.Abs(float64(msgPb.Seq-uint32(maxSeq))) > 10 { + log.NewWarn(operationID, utils.GetSelfFuncName(), maxSeq, msgPb.Seq, "redis maxSeq is different with msg.Seq") + } + return nil +} diff --git a/internal/cron_task/cron_task.go b/internal/cron_task/cron_task.go index 625ab539c..0b1784b20 100644 --- a/internal/cron_task/cron_task.go +++ b/internal/cron_task/cron_task.go @@ -28,6 +28,9 @@ func StartCronTask() { if err := DeleteMongoMsgAndResetRedisSeq(operationID, userID); err != nil { log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), userID) } + if err := checkMaxSeqWithMongo(operationID, userID, constant.WriteDiffusion); err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), userID, err) + } } } else { log.NewError(operationID, utils.GetSelfFuncName(), err.Error()) @@ -45,7 +48,9 @@ func StartCronTask() { if err := ResetUserGroupMinSeq(operationID, groupID, userIDList); err != nil { log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), groupID, userIDList) } - + if err := checkMaxSeqWithMongo(operationID, groupID, constant.ReadDiffusion); err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), groupID, err) + } } } else { log.NewError(operationID, utils.GetSelfFuncName(), err.Error()) @@ -56,6 +61,7 @@ func StartCronTask() { fmt.Println("start cron failed", err.Error()) panic(err) } + c.Start() fmt.Println("start cron task success") for { diff --git a/internal/cron_task/test/main.go b/internal/cron_task/test/main.go new file mode 100644 index 000000000..38dd16da6 --- /dev/null +++ b/internal/cron_task/test/main.go @@ -0,0 +1,3 @@ +package main + +func main() {} diff --git a/internal/push/getui/push.go b/internal/push/getui/push.go index a02a57ea8..69b4584f9 100644 --- a/internal/push/getui/push.go +++ b/internal/push/getui/push.go @@ -83,6 +83,7 @@ type Alert struct { type Android struct { Ups struct { Notification Notification `json:"notification"` + Options Options `json:"options"` } `json:"ups"` } @@ -92,6 +93,18 @@ type Notification struct { ClickType string `json:"click_type"` } +type Options struct { + HW struct { + DefaultSound bool `json:"/message/android/notification/default_sound"` + ChannelID string `json:"/message/android/notification/channel_id"` + Sound string `json:"/message/android/notification/sound"` + Importance string `json:"/message/android/notification/importance"` + } `json:"HW"` + XM struct { + ChannelID string `json:"/extra.channel_id"` + } `json:""` +} + type PushResp struct { } @@ -133,6 +146,17 @@ func (g *Getui) Push(userIDList []string, alert, detailContent, operationID stri Body: alert, ClickType: "startapp", } + pushReq.PushChannel.Android.Ups.Options = Options{ + HW: struct { + DefaultSound bool `json:"/message/android/notification/default_sound"` + ChannelID string `json:"/message/android/notification/channel_id"` + Sound string `json:"/message/android/notification/sound"` + Importance string `json:"/message/android/notification/importance"` + }{ChannelID: "RingRing4", Sound: "/raw/ring001", Importance: "importance"}, + XM: struct { + ChannelID string `json:"/extra.channel_id"` + }{ChannelID: "Default"}, + } pushResp := PushResp{} err = g.request(PushURL, pushReq, token, &pushResp, operationID) switch err { diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index fecad1d32..0eab7c022 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -227,6 +227,11 @@ const ( WorkMomentAtUserNotification = 2 ) +const ( + WriteDiffusion = 0 + ReadDiffusion = 1 +) + const ( AtAllString = "AtAllTag" AtNormal = 0 diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 083d89b2a..47b556b36 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -259,18 +259,22 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []uint32, operationID st return seqMsg, nil } -func (d *DataBases) GetUserMsgListByIndex(ID string, index int64) (msg *UserChat, err error) { +func (d *DataBases) GetUserMsgListByIndex(ID string, index int64) (*UserChat, error) { ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cChat) regex := fmt.Sprintf("^%s", ID) - findOpts := options.Find().SetLimit(1).SetSkip(index).SetSort(bson.M{"$regex": regex}) - msg = &UserChat{} + findOpts := options.Find().SetLimit(1).SetSkip(index).SetSort(bson.M{"$regex": regex}).SetSort(bson.M{"uid": 1}) + var msgs []UserChat cursor, err := c.Find(ctx, bson.M{"uid": bson.M{"$regex": regex}}, findOpts) if err != nil { return nil, err } - err = cursor.Decode(&msg) - return msg, err + err = cursor.Decode(&msgs) + if len(msgs) > 0 { + return &msgs[0], err + } else { + return nil, errors.New("get msg list failed") + } } func (d *DataBases) DelMongoMsgs(IDList []string) error { @@ -298,6 +302,26 @@ func (d *DataBases) ReplaceMsgToBlankByIndex(suffixID string, index int) error { return err } +func (d *DataBases) GetNewestMsg(ID string) (msg *MsgInfo, err error) { + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cChat) + regex := fmt.Sprintf("^%s", ID) + findOpts := options.Find().SetLimit(1).SetSort(bson.M{"$regex": regex}).SetSort(bson.M{"uid": -1}) + var userChats []UserChat + cursor, err := c.Find(ctx, bson.M{"uid": bson.M{"$regex": regex}}, findOpts) + if err != nil { + return nil, err + } + err = cursor.Decode(&userChats) + if len(userChats) > 0 { + if len(userChats[0].Msg) > 0 { + return &userChats[0].Msg[len(userChats[0].Msg)], nil + } + return nil, errors.New("len(userChats[0].Msg) < 0") + } + return nil, errors.New("len(userChats) < 0") +} + func (d *DataBases) GetMsgBySeqListMongo2(uid string, seqList []uint32, operationID string) (seqMsg []*open_im_sdk.MsgData, err error) { var hasSeqList []uint32 singleCount := 0 From e80d3e7dac46d0ed74a6bdc6b4cab50dbb80b4e5 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 19:40:10 +0800 Subject: [PATCH 087/230] fix delete --- internal/api/third/minio_storage_credential.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/internal/api/third/minio_storage_credential.go b/internal/api/third/minio_storage_credential.go index 07b256e0f..66ef6fb68 100644 --- a/internal/api/third/minio_storage_credential.go +++ b/internal/api/third/minio_storage_credential.go @@ -178,6 +178,17 @@ func UploadUpdateApp(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) + + var ok bool + var errInfo string + ok, _, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") + log.NewError(req.OperationID, errMsg) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + var yamlName string if req.Yaml == nil { yamlName = "" From 911614673b82582cd0497f982f16d4e51f56c8fc Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 19:42:38 +0800 Subject: [PATCH 088/230] fix delete --- internal/api/third/minio_storage_credential.go | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/internal/api/third/minio_storage_credential.go b/internal/api/third/minio_storage_credential.go index 66ef6fb68..ac4be4273 100644 --- a/internal/api/third/minio_storage_credential.go +++ b/internal/api/third/minio_storage_credential.go @@ -179,16 +179,6 @@ func UploadUpdateApp(c *gin.Context) { } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) - var ok bool - var errInfo string - ok, _, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) - if !ok { - errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") - log.NewError(req.OperationID, errMsg) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - var yamlName string if req.Yaml == nil { yamlName = "" From 327ae4ac79da57fbbfb64f8d48b6b06319e21691 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 19:50:45 +0800 Subject: [PATCH 089/230] fix delete --- script/path_info.cfg | 4 ++-- script/start_rpc_service.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/script/path_info.cfg b/script/path_info.cfg index fd5c11319..9adfa0238 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -48,7 +48,7 @@ service_source_root=( ../cmd/rpc/open_im_organization/ ../cmd/rpc/open_im_conversation/ ../cmd/rpc/open_im_cache/ - ../cmd/cron_task + #../cmd/cron_task ${msg_gateway_source_root} ${msg_transfer_source_root} ${msg_source_root} @@ -73,7 +73,7 @@ service_names=( open_im_organization open_im_conversation open_im_cache - cron_task + # cron_task ${msg_gateway_name} ${msg_transfer_name} ${msg_name} diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index 4b26b24a4..8ea221990 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -22,7 +22,7 @@ service_filename=( open_im_organization open_im_conversation open_im_cache - cron_task +# cron_task ) #service config port name From 75805e3c69c3eb00cb1f5142016b90f00baefc92 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 20:04:32 +0800 Subject: [PATCH 090/230] fix delete --- script/path_info.cfg | 4 ++-- script/start_rpc_service.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/script/path_info.cfg b/script/path_info.cfg index 9adfa0238..fd5c11319 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -48,7 +48,7 @@ service_source_root=( ../cmd/rpc/open_im_organization/ ../cmd/rpc/open_im_conversation/ ../cmd/rpc/open_im_cache/ - #../cmd/cron_task + ../cmd/cron_task ${msg_gateway_source_root} ${msg_transfer_source_root} ${msg_source_root} @@ -73,7 +73,7 @@ service_names=( open_im_organization open_im_conversation open_im_cache - # cron_task + cron_task ${msg_gateway_name} ${msg_transfer_name} ${msg_name} diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index 8ea221990..4b26b24a4 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -22,7 +22,7 @@ service_filename=( open_im_organization open_im_conversation open_im_cache -# cron_task + cron_task ) #service config port name From 5d57e93ee1a0fdc700774fbb176b58b69bd8dacc Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 20:11:04 +0800 Subject: [PATCH 091/230] fix delete --- cmd/{cron_task => open_im_cron_task}/Makefile | 2 +- cmd/{cron_task => open_im_cron_task}/main.go | 0 script/check_all.sh | 16 ++++++++-------- script/path_info.cfg | 8 ++++++-- script/start_rpc_service.sh | 2 +- 5 files changed, 16 insertions(+), 12 deletions(-) rename cmd/{cron_task => open_im_cron_task}/Makefile (91%) rename cmd/{cron_task => open_im_cron_task}/main.go (100%) diff --git a/cmd/cron_task/Makefile b/cmd/open_im_cron_task/Makefile similarity index 91% rename from cmd/cron_task/Makefile rename to cmd/open_im_cron_task/Makefile index ecbd6e128..0a0ff2967 100644 --- a/cmd/cron_task/Makefile +++ b/cmd/open_im_cron_task/Makefile @@ -1,6 +1,6 @@ .PHONY: all build run gotool install clean help -BINARY_NAME=cron_task +BINARY_NAME=open_im_cron_task BIN_DIR=../../../bin/ all: gotool build diff --git a/cmd/cron_task/main.go b/cmd/open_im_cron_task/main.go similarity index 100% rename from cmd/cron_task/main.go rename to cmd/open_im_cron_task/main.go diff --git a/script/check_all.sh b/script/check_all.sh index c036142f9..6dbe2c9d1 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -56,13 +56,13 @@ else fi -#check=$(ps aux | grep -w ./${timer_task_name} | grep -v grep | wc -l) -#if [ $check -ge 1 ]; then -# echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is openImMsgTimer"${COLOR_SUFFIX} -#else -# echo -e ${RED_PREFIX}"openImMsgTimer service does not start normally"${COLOR_SUFFIX} -# echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} -# exit -1 -#fi +check=$(ps aux | grep -w ./${cron_task_name} | grep -v grep | wc -l) +if [ $check -ge 1 ]; then + echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is cron_task_name"${COLOR_SUFFIX} +else + echo -e ${RED_PREFIX}"cron_task_name service does not start normally"${COLOR_SUFFIX} + echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} + exit -1 +fi echo -e ${YELLOW_PREFIX}"all services launch success"${COLOR_SUFFIX} diff --git a/script/path_info.cfg b/script/path_info.cfg index fd5c11319..6562f1d7f 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -27,6 +27,10 @@ demo_server_name="open_im_demo" demo_server_binary_root="../bin/" demo_server_source_root="../cmd/open_im_demo/" +cron_task_name="open_im_cron_task" +cron_task_binary_root="../bin/" +cron_task_source_root="../cmd/open_im_cron_task/" + #Global configuration file default dir config_path="../config/config.yaml" @@ -48,7 +52,7 @@ service_source_root=( ../cmd/rpc/open_im_organization/ ../cmd/rpc/open_im_conversation/ ../cmd/rpc/open_im_cache/ - ../cmd/cron_task + ../cmd/open_im_cron_task ${msg_gateway_source_root} ${msg_transfer_source_root} ${msg_source_root} @@ -73,7 +77,7 @@ service_names=( open_im_organization open_im_conversation open_im_cache - cron_task + open_im_cron_task ${msg_gateway_name} ${msg_transfer_name} ${msg_name} diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index 4b26b24a4..433e3bbe5 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -22,7 +22,7 @@ service_filename=( open_im_organization open_im_conversation open_im_cache - cron_task + open_im_cron_task ) #service config port name From 9e190cb5aac5efee3bcea354110ff0892c8c565f Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 20:16:18 +0800 Subject: [PATCH 092/230] fix delete --- cmd/open_im_cron_task/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/open_im_cron_task/Makefile b/cmd/open_im_cron_task/Makefile index 0a0ff2967..e14b3da77 100644 --- a/cmd/open_im_cron_task/Makefile +++ b/cmd/open_im_cron_task/Makefile @@ -1,7 +1,7 @@ .PHONY: all build run gotool install clean help BINARY_NAME=open_im_cron_task -BIN_DIR=../../../bin/ +BIN_DIR=../../bin/ all: gotool build From 10223c944c048947bd6d921eb2801a2e03311c30 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 20:23:40 +0800 Subject: [PATCH 093/230] fix delete --- script/start_rpc_service.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index 433e3bbe5..b7b78b84f 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -18,11 +18,11 @@ service_filename=( open_im_message_cms open_im_statistics ${msg_name} + ${cron_task_name} open_im_office open_im_organization open_im_conversation open_im_cache - open_im_cron_task ) #service config port name From ace424e78ab3bf8930c5d854728e98a9f5a6adba Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 20:34:18 +0800 Subject: [PATCH 094/230] fix delete --- script/start_all.sh | 1 + script/start_cron.sh | 36 ++++++++++++++++++++++++++++++++++++ script/start_rpc_service.sh | 1 - 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 script/start_cron.sh diff --git a/script/start_all.sh b/script/start_all.sh index 9fcbd1c6a..4a5f7d65e 100644 --- a/script/start_all.sh +++ b/script/start_all.sh @@ -10,6 +10,7 @@ need_to_start_server_shell=( sdk_svr_start.sh msg_gateway_start.sh demo_svr_start.sh + start_cron.sh ) time=`date +"%Y-%m-%d %H:%M:%S"` echo "==========================================================">>../logs/openIM.log 2>&1 & diff --git a/script/start_cron.sh b/script/start_cron.sh new file mode 100644 index 000000000..fa885d958 --- /dev/null +++ b/script/start_cron.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +#Include shell font styles and some basic information +source ./style_info.cfg +source ./path_info.cfg + + + +#Check if the service exists +#If it is exists,kill this process +check=`ps aux | grep -w ./${cron_task_name} | grep -v grep| wc -l` +if [ $check -ge 1 ] +then +oldPid=`ps aux | grep -w ./${cron_task_name} | grep -v grep|awk '{print $2}'` + kill -9 $oldPid +fi +#Waiting port recycling +sleep 1 + +cd ${cron_task_binary_root} +for ((i = 0; i < ${cron_task_service_num}; i++)); do + nohup ./${cron_task_name} >>../logs/openIM.log 2>&1 & +done + +#Check launched service process +check=`ps aux | grep -w ./${cron_task_name} | grep -v grep| wc -l` +if [ $check -ge 1 ] +then +newPid=`ps aux | grep -w ./${cron_task_name} | grep -v grep|awk '{print $2}'` +allPorts="" + echo -e ${SKY_BLUE_PREFIX}"SERVICE START SUCCESS "${COLOR_SUFFIX} + echo -e ${SKY_BLUE_PREFIX}"SERVICE_NAME: "${COLOR_SUFFIX}${YELLOW_PREFIX}${cron_task_name}${COLOR_SUFFIX} + echo -e ${SKY_BLUE_PREFIX}"PID: "${COLOR_SUFFIX}${YELLOW_PREFIX}${newPid}${COLOR_SUFFIX} + echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allPorts}${COLOR_SUFFIX} +else + echo -e ${YELLOW_PREFIX}${cron_task_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX} +fi diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index b7b78b84f..351bd2797 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -18,7 +18,6 @@ service_filename=( open_im_message_cms open_im_statistics ${msg_name} - ${cron_task_name} open_im_office open_im_organization open_im_conversation From ce591227aef377b9d02df21f2412e5386d06a112 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 20:39:54 +0800 Subject: [PATCH 095/230] fix delete --- script/msg_transfer_start.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/script/msg_transfer_start.sh b/script/msg_transfer_start.sh index 4d7fb96cd..6e59b2583 100644 --- a/script/msg_transfer_start.sh +++ b/script/msg_transfer_start.sh @@ -17,9 +17,9 @@ fi sleep 1 cd ${msg_transfer_binary_root} -for ((i = 0; i < ${msg_transfer_service_num}; i++)); do - nohup ./${msg_transfer_name} >>../logs/openIM.log 2>&1 & -done +#for ((i = 0; i < ${msg_transfer_service_num}; i++)); do +# nohup ./${msg_transfer_name} >>../logs/openIM.log 2>&1 & +#done #Check launched service process check=`ps aux | grep -w ./${msg_transfer_name} | grep -v grep| wc -l` From e2c75f68365d2cf69175f79b7ae64f6158239d0d Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 10 Aug 2022 20:42:26 +0800 Subject: [PATCH 096/230] fix delete --- script/msg_transfer_start.sh | 6 +++--- script/start_cron.sh | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/script/msg_transfer_start.sh b/script/msg_transfer_start.sh index 6e59b2583..4d7fb96cd 100644 --- a/script/msg_transfer_start.sh +++ b/script/msg_transfer_start.sh @@ -17,9 +17,9 @@ fi sleep 1 cd ${msg_transfer_binary_root} -#for ((i = 0; i < ${msg_transfer_service_num}; i++)); do -# nohup ./${msg_transfer_name} >>../logs/openIM.log 2>&1 & -#done +for ((i = 0; i < ${msg_transfer_service_num}; i++)); do + nohup ./${msg_transfer_name} >>../logs/openIM.log 2>&1 & +done #Check launched service process check=`ps aux | grep -w ./${msg_transfer_name} | grep -v grep| wc -l` diff --git a/script/start_cron.sh b/script/start_cron.sh index fa885d958..9c33478de 100644 --- a/script/start_cron.sh +++ b/script/start_cron.sh @@ -17,9 +17,9 @@ fi sleep 1 cd ${cron_task_binary_root} -for ((i = 0; i < ${cron_task_service_num}; i++)); do +#for ((i = 0; i < ${cron_task_service_num}; i++)); do nohup ./${cron_task_name} >>../logs/openIM.log 2>&1 & -done +#done #Check launched service process check=`ps aux | grep -w ./${cron_task_name} | grep -v grep| wc -l` From 56e2df75b9ae8db31e4ed4c64fb252a6d5a36923 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 11 Aug 2022 11:06:10 +0800 Subject: [PATCH 097/230] fix delete --- script/check_all.sh | 16 ++++++++-------- script/start_all.sh | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/script/check_all.sh b/script/check_all.sh index 6dbe2c9d1..8caa33861 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -56,13 +56,13 @@ else fi -check=$(ps aux | grep -w ./${cron_task_name} | grep -v grep | wc -l) -if [ $check -ge 1 ]; then - echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is cron_task_name"${COLOR_SUFFIX} -else - echo -e ${RED_PREFIX}"cron_task_name service does not start normally"${COLOR_SUFFIX} - echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} - exit -1 -fi +#check=$(ps aux | grep -w ./${cron_task_name} | grep -v grep | wc -l) +#if [ $check -ge 1 ]; then +# echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is cron_task_name"${COLOR_SUFFIX} +#else +# echo -e ${RED_PREFIX}"cron_task_name service does not start normally"${COLOR_SUFFIX} +# echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} +# exit -1 +#fi echo -e ${YELLOW_PREFIX}"all services launch success"${COLOR_SUFFIX} diff --git a/script/start_all.sh b/script/start_all.sh index 4a5f7d65e..223187973 100644 --- a/script/start_all.sh +++ b/script/start_all.sh @@ -10,7 +10,7 @@ need_to_start_server_shell=( sdk_svr_start.sh msg_gateway_start.sh demo_svr_start.sh - start_cron.sh +# start_cron.sh ) time=`date +"%Y-%m-%d %H:%M:%S"` echo "==========================================================">>../logs/openIM.log 2>&1 & From c1184fd7d28869355c9ebdc8b6e089c0f8688770 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Thu, 11 Aug 2022 11:14:30 +0800 Subject: [PATCH 098/230] Multiple gateways --- internal/msg_gateway/gate/relay_rpc_server.go | 1 + internal/msg_gateway/gate/ws_server.go | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/msg_gateway/gate/relay_rpc_server.go b/internal/msg_gateway/gate/relay_rpc_server.go index 5218fd111..b00129d64 100644 --- a/internal/msg_gateway/gate/relay_rpc_server.go +++ b/internal/msg_gateway/gate/relay_rpc_server.go @@ -304,6 +304,7 @@ func (r *RPCServer) KickUserOffline(_ context.Context, req *pbRelay.KickUserOffl } func (r *RPCServer) MultiTerminalLoginCheck(ctx context.Context, req *pbRelay.MultiTerminalLoginCheckReq) (*pbRelay.MultiTerminalLoginCheckResp, error) { + ws.MultiTerminalLoginCheckerWithLock(req.UserID, int(req.PlatformID), req.Token, req.OperationID) return &pbRelay.MultiTerminalLoginCheckResp{}, nil } diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index b97e552e8..0f00351fc 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -125,6 +125,7 @@ func (ws *WServer) MultiTerminalLoginRemoteChecker(userID string, platformID int log.Debug(operationID, "Filter out this node ", rpcSvr.target) continue } + log.Debug(operationID, "call this node ", v.Target(), rpcSvr.target) client := pbRelay.NewRelayClient(v) req := &pbRelay.MultiTerminalLoginCheckReq{OperationID: operationID, PlatformID: platformID, UserID: userID, Token: token} log.NewInfo(operationID, "MultiTerminalLoginCheckReq ", client, req.String()) @@ -141,6 +142,8 @@ func (ws *WServer) MultiTerminalLoginRemoteChecker(userID string, platformID int func (ws *WServer) MultiTerminalLoginCheckerWithLock(uid string, platformID int, token string, operationID string) { rwLock.Lock() defer rwLock.Unlock() + log.NewInfo(operationID, utils.GetSelfFuncName(), " rpc args: ", uid, platformID, token) + return switch config.Config.MultiLoginPolicy { case constant.AllLoginButSameTermKick: if oldConnMap, ok := ws.wsUserToConn[uid]; ok { // user->map[platform->conn] @@ -268,7 +271,7 @@ func (ws *WServer) addUserConn(uid string, platformID int, conn *UserConn, token if callbackResp.ErrCode != 0 { log.NewError(operationID, utils.GetSelfFuncName(), "callbackUserOnline resp:", callbackResp) } - //go ws.MultiTerminalLoginRemoteChecker(uid, int32(platformID), token, operationID) + go ws.MultiTerminalLoginRemoteChecker(uid, int32(platformID), token, operationID) ws.MultiTerminalLoginChecker(uid, platformID, conn, token, operationID) if oldConnMap, ok := ws.wsUserToConn[uid]; ok { oldConnMap[platformID] = conn From 5f83acf3ade386bfdb8729c469be7090b72eeba8 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Thu, 11 Aug 2022 11:25:01 +0800 Subject: [PATCH 099/230] Multiple gateways --- internal/msg_gateway/gate/ws_server.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 0f00351fc..71866963f 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -120,6 +120,7 @@ func (ws *WServer) SetWriteTimeoutWriteMsg(conn *UserConn, a int, msg []byte, ti func (ws *WServer) MultiTerminalLoginRemoteChecker(userID string, platformID int32, token string, operationID string) { grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName) + log.NewInfo(operationID, utils.GetSelfFuncName(), " grpcCons: ", grpcCons) for _, v := range grpcCons { if v.Target() == rpcSvr.target { log.Debug(operationID, "Filter out this node ", rpcSvr.target) From 079fe089de148a3babe0e87cfcef21d207a229bf Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Thu, 11 Aug 2022 11:28:51 +0800 Subject: [PATCH 100/230] Multiple gateways --- internal/msg_gateway/gate/ws_server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 71866963f..c92aa6a28 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -120,7 +120,7 @@ func (ws *WServer) SetWriteTimeoutWriteMsg(conn *UserConn, a int, msg []byte, ti func (ws *WServer) MultiTerminalLoginRemoteChecker(userID string, platformID int32, token string, operationID string) { grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName) - log.NewInfo(operationID, utils.GetSelfFuncName(), " grpcCons: ", grpcCons) + log.NewInfo(operationID, utils.GetSelfFuncName(), "args grpcCons: ", userID, platformID, grpcCons) for _, v := range grpcCons { if v.Target() == rpcSvr.target { log.Debug(operationID, "Filter out this node ", rpcSvr.target) From eb7e6a566b1c01c33a061e86cfac6db055ec4e19 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Thu, 11 Aug 2022 11:44:14 +0800 Subject: [PATCH 101/230] Multiple gateways --- pkg/grpc-etcdv3/getcdv3/register.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/grpc-etcdv3/getcdv3/register.go b/pkg/grpc-etcdv3/getcdv3/register.go index d30d3a3a7..c9f1b44a9 100644 --- a/pkg/grpc-etcdv3/getcdv3/register.go +++ b/pkg/grpc-etcdv3/getcdv3/register.go @@ -38,8 +38,7 @@ func RegisterEtcd4Unique(schema, etcdAddr, myHost string, myPort int, serviceNam } func GetTarget(schema, myHost string, myPort int, serviceName string) string { - serviceName = serviceName + ":" + net.JoinHostPort(myHost, strconv.Itoa(myPort)) - return serviceName + return GetPrefix(schema, serviceName) + ":" + net.JoinHostPort(myHost, strconv.Itoa(myPort)) + "/" } //etcdAddr separated by commas From 5a0340e927da9de4603f6e2965dae4f9a742ef56 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Thu, 11 Aug 2022 11:48:22 +0800 Subject: [PATCH 102/230] Multiple gateways --- pkg/grpc-etcdv3/getcdv3/register.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/grpc-etcdv3/getcdv3/register.go b/pkg/grpc-etcdv3/getcdv3/register.go index c9f1b44a9..aa3ba3072 100644 --- a/pkg/grpc-etcdv3/getcdv3/register.go +++ b/pkg/grpc-etcdv3/getcdv3/register.go @@ -38,7 +38,7 @@ func RegisterEtcd4Unique(schema, etcdAddr, myHost string, myPort int, serviceNam } func GetTarget(schema, myHost string, myPort int, serviceName string) string { - return GetPrefix(schema, serviceName) + ":" + net.JoinHostPort(myHost, strconv.Itoa(myPort)) + "/" + return GetPrefix4Unique(schema, serviceName) + ":" + net.JoinHostPort(myHost, strconv.Itoa(myPort)) + "/" } //etcdAddr separated by commas From 5c5f80691a480cc52070ee8affb5cddaf5f7ae11 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 11 Aug 2022 12:09:44 +0800 Subject: [PATCH 103/230] fix delete --- internal/cron_task/clear_msg.go | 12 +++++++++++- internal/cron_task/cron_task.go | 4 +++- pkg/common/db/mongoModel.go | 10 ++++++++-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/internal/cron_task/clear_msg.go b/internal/cron_task/clear_msg.go index 3c43e3e20..078eee136 100644 --- a/internal/cron_task/clear_msg.go +++ b/internal/cron_task/clear_msg.go @@ -7,6 +7,7 @@ import ( "Open_IM/pkg/common/log" server_api_params "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" + goRedis "github.com/go-redis/redis/v8" "github.com/golang/protobuf/proto" "math" ) @@ -21,10 +22,13 @@ func ResetUserGroupMinSeq(operationID, groupID string, userIDList []string) erro log.NewError(operationID, utils.GetSelfFuncName(), groupID, "deleteMongoMsg failed") return utils.Wrap(err, "") } + if minSeq == 0 { + return nil + } log.NewDebug(operationID, utils.GetSelfFuncName(), "delMsgIDList:", delMsgIDList, "minSeq", minSeq) for _, userID := range userIDList { userMinSeq, err := db.DB.GetGroupUserMinSeq(groupID, userID) - if err != nil { + if err != nil && err != goRedis.Nil { log.NewError(operationID, utils.GetSelfFuncName(), "GetGroupUserMinSeq failed", groupID, userID, err.Error()) continue } @@ -46,6 +50,9 @@ func DeleteMongoMsgAndResetRedisSeq(operationID, userID string) error { if err != nil { return utils.Wrap(err, "") } + if minSeq == 0 { + return nil + } log.NewDebug(operationID, utils.GetSelfFuncName(), "delMsgIDMap: ", delMsgIDList, "minSeq", minSeq) err = db.DB.SetUserMinSeq(userID, minSeq) return err @@ -136,6 +143,9 @@ func checkMaxSeqWithMongo(operationID, ID string, diffusionType int) error { maxSeq, err = db.DB.GetGroupMaxSeq(ID) } if err != nil { + if err == goRedis.Nil { + return nil + } return utils.Wrap(err, "GetUserMaxSeq failed") } msg, err := db.DB.GetNewestMsg(ID) diff --git a/internal/cron_task/cron_task.go b/internal/cron_task/cron_task.go index 0b1784b20..a7f90cf91 100644 --- a/internal/cron_task/cron_task.go +++ b/internal/cron_task/cron_task.go @@ -20,7 +20,7 @@ func StartCronTask() { fmt.Println("config", config.Config.Mongo.ChatRecordsClearTime) _, err := c.AddFunc(config.Config.Mongo.ChatRecordsClearTime, func() { operationID := getCronTaskOperationID() - log.NewInfo(operationID, "start", utils.GetSelfFuncName()) + log.NewInfo(operationID, "====================== start del cron task ======================") userIDList, err := im_mysql_model.SelectAllUserID() if err == nil { log.NewDebug(operationID, utils.GetSelfFuncName(), "userIDList: ", userIDList) @@ -56,6 +56,8 @@ func StartCronTask() { log.NewError(operationID, utils.GetSelfFuncName(), err.Error()) return } + + log.NewInfo(operationID, "====================== start del cron finished ======================") }) if err != nil { fmt.Println("start cron failed", err.Error()) diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 47b556b36..4953aaabc 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -263,13 +263,16 @@ func (d *DataBases) GetUserMsgListByIndex(ID string, index int64) (*UserChat, er ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cChat) regex := fmt.Sprintf("^%s", ID) - findOpts := options.Find().SetLimit(1).SetSkip(index).SetSort(bson.M{"$regex": regex}).SetSort(bson.M{"uid": 1}) + findOpts := options.Find().SetLimit(1).SetSkip(index).SetSort(bson.M{"uid": 1}) var msgs []UserChat cursor, err := c.Find(ctx, bson.M{"uid": bson.M{"$regex": regex}}, findOpts) if err != nil { return nil, err } err = cursor.Decode(&msgs) + if err != nil { + return nil, utils.Wrap(err, "") + } if len(msgs) > 0 { return &msgs[0], err } else { @@ -306,13 +309,16 @@ func (d *DataBases) GetNewestMsg(ID string) (msg *MsgInfo, err error) { ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cChat) regex := fmt.Sprintf("^%s", ID) - findOpts := options.Find().SetLimit(1).SetSort(bson.M{"$regex": regex}).SetSort(bson.M{"uid": -1}) + findOpts := options.Find().SetLimit(1).SetSort(bson.M{"uid": -1}) var userChats []UserChat cursor, err := c.Find(ctx, bson.M{"uid": bson.M{"$regex": regex}}, findOpts) if err != nil { return nil, err } err = cursor.Decode(&userChats) + if err != nil { + return nil, utils.Wrap(err, "") + } if len(userChats) > 0 { if len(userChats[0].Msg) > 0 { return &userChats[0].Msg[len(userChats[0].Msg)], nil From c9d7b63ef715f0240f16f4f83c502be80f9b3fd4 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Thu, 11 Aug 2022 12:19:03 +0800 Subject: [PATCH 104/230] Multiple gateways --- internal/msg_gateway/gate/ws_server.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index c92aa6a28..12844eab4 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -144,7 +144,6 @@ func (ws *WServer) MultiTerminalLoginCheckerWithLock(uid string, platformID int, rwLock.Lock() defer rwLock.Unlock() log.NewInfo(operationID, utils.GetSelfFuncName(), " rpc args: ", uid, platformID, token) - return switch config.Config.MultiLoginPolicy { case constant.AllLoginButSameTermKick: if oldConnMap, ok := ws.wsUserToConn[uid]; ok { // user->map[platform->conn] From c4084cbcec7c9d1b856de3156029d6f5c0f305e3 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 11 Aug 2022 15:55:33 +0800 Subject: [PATCH 105/230] callback kickoff --- config/config.yaml | 3 +++ internal/msg_gateway/gate/callback.go | 25 +++++++++++++++++++++++++ internal/msg_gateway/gate/ws_server.go | 4 ++++ pkg/call_back_struct/msg_gateway.go | 9 +++++++++ pkg/common/config/config.go | 1 + pkg/common/constant/constant.go | 1 + 6 files changed, 43 insertions(+) diff --git a/config/config.yaml b/config/config.yaml index fc76e3615..400f6e6aa 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -299,6 +299,9 @@ callback: callbackUserOffline: enable: false callbackTimeOut: 2 + callbackUserKickOff: + enable: false + callbackTimeOut: 2 callbackOfflinePush: enable: false callbackTimeOut: 2 diff --git a/internal/msg_gateway/gate/callback.go b/internal/msg_gateway/gate/callback.go index 9df9c6373..e0498f615 100644 --- a/internal/msg_gateway/gate/callback.go +++ b/internal/msg_gateway/gate/callback.go @@ -59,3 +59,28 @@ func callbackUserOffline(operationID, userID string, platformID int) cbApi.Commo } return callbackResp } + +func callbackUserKickOff(operationID string, userID string, platformID int) cbApi.CommonCallbackResp { + callbackResp := cbApi.CommonCallbackResp{OperationID: operationID} + if !config.Config.Callback.CallbackUserKickOff.Enable { + return callbackResp + } + callbackUserKickOffReq := cbApi.CallbackUserKickOffReq{ + UserStatusCallbackReq: cbApi.UserStatusCallbackReq{ + UserStatusBaseCallback: cbApi.UserStatusBaseCallback{ + CallbackCommand: constant.CallbackUserKickOffCommand, + OperationID: operationID, + PlatformID: int32(platformID), + Platform: constant.PlatformIDToName(platformID), + }, + UserID: userID, + }, + Seq: int(time.Now().UnixNano() / 1e6), + } + callbackUserKickOffResp := &cbApi.CallbackUserKickOffResp{CommonCallbackResp: callbackResp} + if err := http.PostReturn(config.Config.Callback.CallbackUrl, callbackUserKickOffReq, callbackUserKickOffResp, config.Config.Callback.CallbackUserOffline.CallbackTimeOut); err != nil { + callbackResp.ErrCode = http2.StatusInternalServerError + callbackResp.ErrMsg = err.Error() + } + return callbackResp +} diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index c92aa6a28..aa165e572 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -233,6 +233,10 @@ func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int, newConn if err != nil { log.NewError(operationID, "conn close err", err.Error(), uid, platformID) } + callbackResp := callbackUserKickOff(operationID, uid, platformID) + if callbackResp.ErrCode != 0 { + log.NewError(operationID, utils.GetSelfFuncName(), "callbackUserOffline failed", callbackResp) + } } else { log.NewWarn(operationID, "normal uid-conn ", uid, platformID, oldConnMap[platformID]) } diff --git a/pkg/call_back_struct/msg_gateway.go b/pkg/call_back_struct/msg_gateway.go index 2fba45114..5dbf9809b 100644 --- a/pkg/call_back_struct/msg_gateway.go +++ b/pkg/call_back_struct/msg_gateway.go @@ -18,3 +18,12 @@ type CallbackUserOfflineReq struct { type CallbackUserOfflineResp struct { CommonCallbackResp } + +type CallbackUserKickOffReq struct { + UserStatusCallbackReq + Seq int `json:"seq"` +} + +type CallbackUserKickOffResp struct { + CommonCallbackResp +} diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 29779116e..53082d375 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -264,6 +264,7 @@ type config struct { CallbackWordFilter callBackConfig `yaml:"callbackWordFilter"` CallbackUserOnline callBackConfig `yaml:"callbackUserOnline"` CallbackUserOffline callBackConfig `yaml:"callbackUserOffline"` + CallbackUserKickOff callBackConfig `yaml:"callbackUserKickOff"` CallbackOfflinePush callBackConfig `yaml:"callbackOfflinePush"` CallbackOnlinePush callBackConfig `yaml:"callbackOnlinePush"` CallbackBeforeSuperGroupOnlinePush callBackConfig `yaml:"callbackSuperGroupOnlinePush"` diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 0eab7c022..b81cb07d6 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -200,6 +200,7 @@ const ( CallbackWordFilterCommand = "callbackWordFilterCommand" CallbackUserOnlineCommand = "callbackUserOnlineCommand" CallbackUserOfflineCommand = "callbackUserOfflineCommand" + CallbackUserKickOffCommand = "callbackUserKickOffCommand" CallbackOfflinePushCommand = "callbackOfflinePushCommand" CallbackOnlinePushCommand = "callbackOnlinePushCommand" CallbackSuperGroupOnlinePushCommand = "callbackSuperGroupOnlinePushCommand" From 78c807a514201fa596b501631e10cd131f74fb30 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Thu, 11 Aug 2022 16:06:35 +0800 Subject: [PATCH 106/230] add Invitation Code --- internal/demo/register/send_code.go | 11 ++++++----- internal/demo/register/set_password.go | 1 + pkg/common/db/model_struct.go | 16 +++++++++++----- pkg/common/db/mysql.go | 2 +- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/internal/demo/register/send_code.go b/internal/demo/register/send_code.go index cd67c0c04..c7fca46e6 100644 --- a/internal/demo/register/send_code.go +++ b/internal/demo/register/send_code.go @@ -34,11 +34,12 @@ func init() { } type paramsVerificationCode struct { - Email string `json:"email"` - PhoneNumber string `json:"phoneNumber"` - OperationID string `json:"operationID" binding:"required"` - UsedFor int `json:"usedFor"` - AreaCode string `json:"areaCode"` + Email string `json:"email"` + PhoneNumber string `json:"phoneNumber"` + OperationID string `json:"operationID" binding:"required"` + UsedFor int `json:"usedFor"` + AreaCode string `json:"areaCode"` + InvitationCode string `json:"invitationCode"` } func SendVerificationCode(c *gin.Context) { diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index f88b9b42c..a553a10cd 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -30,6 +30,7 @@ type ParamsSetPassword struct { FaceURL string `json:"faceURL"` OperationID string `json:"operationID" binding:"required"` AreaCode string `json:"areaCode"` + InvitationCode string `json:"invitationCode"` } func SetPassword(c *gin.Context) { diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index cd08ec8ae..ea2c0734d 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -3,11 +3,17 @@ package db import "time" type Register struct { - Account string `gorm:"column:account;primary_key;type:char(255)" json:"account"` - Password string `gorm:"column:password;type:varchar(255)" json:"password"` - Ex string `gorm:"column:ex;size:1024" json:"ex"` - UserID string `gorm:"column:user_id;type:varchar(255)" json:"userID"` - AreaCode string `gorm:"column:area_code;type:varchar(255)"` + Account string `gorm:"column:account;primary_key;type:char(255)" json:"account"` + Password string `gorm:"column:password;type:varchar(255)" json:"password"` + Ex string `gorm:"column:ex;size:1024" json:"ex"` + UserID string `gorm:"column:user_id;type:varchar(255)" json:"userID"` + AreaCode string `gorm:"column:area_code;type:varchar(255)"` + InvitationCode string `gorm:"column:invitation_code;type:varchar(255)"` +} + +type Invitation struct { + InvitationCode string `gorm:"column:invitation_code;primary_key;type:varchar(255)"` + CreateTime time.Time `gorm:"column:create_time"` } // diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index e794b4884..58f651d94 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -78,7 +78,7 @@ func initMysqlDB() { &GroupMember{}, &GroupRequest{}, &User{}, - &Black{}, &ChatLog{}, &Register{}, &Conversation{}, &AppVersion{}, &Department{}, &BlackList{}, &IpLimit{}, &UserIpLimit{}) + &Black{}, &ChatLog{}, &Register{}, &Conversation{}, &AppVersion{}, &Department{}, &BlackList{}, &IpLimit{}, &UserIpLimit{}, &Invitation{}) db.Set("gorm:table_options", "CHARSET=utf8") db.Set("gorm:table_options", "collation=utf8_unicode_ci") From aa7ba6d6595e98830705b98b40ff11fc1b507f48 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 11 Aug 2022 16:48:03 +0800 Subject: [PATCH 107/230] callback kickoff --- internal/cms_api/group/group.go | 18 +- internal/cms_api/router.go | 2 +- pkg/cms_api_struct/group.go | 19 +- pkg/proto/group/group.pb.go | 561 ++++++++++++++++---------------- pkg/proto/group/group.proto | 38 +-- 5 files changed, 314 insertions(+), 324 deletions(-) diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index 54b6f64fe..9cdc94790 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -18,10 +18,10 @@ import ( "github.com/gin-gonic/gin" ) -func GetGroupById(c *gin.Context) { +func GetGroupByID(c *gin.Context) { var ( - req cms_api_struct.GetGroupByIdRequest - resp cms_api_struct.GetGroupByIdResponse + req cms_api_struct.GetGroupByIDRequest + resp cms_api_struct.GetGroupByIDResponse reqPb pbGroup.GetGroupByIdReq ) if err := c.ShouldBindQuery(&req); err != nil { @@ -31,7 +31,7 @@ func GetGroupById(c *gin.Context) { } reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupId = req.GroupId + reqPb.GroupID = req.GroupID etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" @@ -40,19 +40,13 @@ func GetGroupById(c *gin.Context) { return } client := pbGroup.NewGroupClient(etcdConn) - respPb, err := client.GetGroupById(context.Background(), &reqPb) + respPb, err := client.GetGroupByID(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetGroupById failed ", err.Error()) openIMHttp.RespHttp200(c, err, nil) return } - resp.GroupName = respPb.CMSGroup.GroupInfo.GroupName - resp.GroupID = respPb.CMSGroup.GroupInfo.GroupID - resp.CreateTime = (utils.UnixSecondToTime(int64(respPb.CMSGroup.GroupInfo.CreateTime))).String() - resp.ProfilePhoto = respPb.CMSGroup.GroupInfo.FaceURL - resp.GroupMasterName = respPb.CMSGroup.GroupMasterName - resp.GroupMasterId = respPb.CMSGroup.GroupMasterId - resp.IsBanChat = constant.GroupIsBanChat(respPb.CMSGroup.GroupInfo.Status) + utils.CopyStructFields(&resp, respPb) log.NewInfo("", utils.GetSelfFuncName(), "req: ", resp) openIMHttp.RespHttp200(c, constant.OK, resp) } diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index a0221d536..93a689ec9 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -47,7 +47,7 @@ func NewGinRouter() *gin.Engine { } groupRouterGroup := r2.Group("/group") { - groupRouterGroup.GET("/get_group_by_id", group.GetGroupById) + groupRouterGroup.GET("/get_group_by_id", group.GetGroupByID) groupRouterGroup.GET("/get_groups", group.GetGroups) groupRouterGroup.GET("/get_group_by_name", group.GetGroupByName) groupRouterGroup.GET("/get_group_members", group.GetGroupMembers) diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index 7d3333127..fdd81118f 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -1,21 +1,18 @@ package cms_api_struct +import server_api_params "Open_IM/pkg/proto/sdk_ws" + type GroupResponse struct { - GroupName string `json:"group_name"` - GroupID string `json:"group_id"` - GroupMasterName string `json:"group_master_name"` - GroupMasterId string `json:"group_master_id"` - CreateTime string `json:"create_time"` - IsBanChat bool `json:"is_ban_chat"` - IsBanPrivateChat bool `json:"is_ban_private_chat"` - ProfilePhoto string `json:"profile_photo"` + GroupOwnerName string `json:"GroupOwnerName"` + GroupOwnerID string `json:"GroupOwnerID"` + *server_api_params.GroupInfo } -type GetGroupByIdRequest struct { - GroupId string `form:"group_id" binding:"required"` +type GetGroupByIDRequest struct { + GroupID string `form:"groupID" binding:"required"` } -type GetGroupByIdResponse struct { +type GetGroupByIDResponse struct { GroupResponse } diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index 4d31018c5..c6801ec0a 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -37,7 +37,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{0} + return fileDescriptor_group_264c9a69dcb70bac, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{1} + return fileDescriptor_group_264c9a69dcb70bac, []int{1} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -132,7 +132,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{2} + return fileDescriptor_group_264c9a69dcb70bac, []int{2} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -200,7 +200,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{3} + return fileDescriptor_group_264c9a69dcb70bac, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -254,7 +254,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{4} + return fileDescriptor_group_264c9a69dcb70bac, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -308,7 +308,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{5} + return fileDescriptor_group_264c9a69dcb70bac, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -362,7 +362,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{6} + return fileDescriptor_group_264c9a69dcb70bac, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -414,7 +414,7 @@ func (m *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} } func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoResp) ProtoMessage() {} func (*SetGroupInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{7} + return fileDescriptor_group_264c9a69dcb70bac, []int{7} } func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b) @@ -454,7 +454,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{8} + return fileDescriptor_group_264c9a69dcb70bac, []int{8} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -508,7 +508,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{9} + return fileDescriptor_group_264c9a69dcb70bac, []int{9} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -562,7 +562,7 @@ func (m *GetUserReqApplicationListReq) Reset() { *m = GetUserReqApplicat func (m *GetUserReqApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListReq) ProtoMessage() {} func (*GetUserReqApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{10} + return fileDescriptor_group_264c9a69dcb70bac, []int{10} } func (m *GetUserReqApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListReq.Unmarshal(m, b) @@ -615,7 +615,7 @@ func (m *GetUserReqApplicationListResp) Reset() { *m = GetUserReqApplica func (m *GetUserReqApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListResp) ProtoMessage() {} func (*GetUserReqApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{11} + return fileDescriptor_group_264c9a69dcb70bac, []int{11} } func (m *GetUserReqApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListResp.Unmarshal(m, b) @@ -664,7 +664,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{12} + return fileDescriptor_group_264c9a69dcb70bac, []int{12} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -730,7 +730,7 @@ func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerResp) ProtoMessage() {} func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{13} + return fileDescriptor_group_264c9a69dcb70bac, []int{13} } func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) @@ -773,7 +773,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{14} + return fileDescriptor_group_264c9a69dcb70bac, []int{14} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -846,7 +846,7 @@ func (m *JoinGroupResp) Reset() { *m = JoinGroupResp{} } func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) } func (*JoinGroupResp) ProtoMessage() {} func (*JoinGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{15} + return fileDescriptor_group_264c9a69dcb70bac, []int{15} } func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b) @@ -889,7 +889,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{16} + return fileDescriptor_group_264c9a69dcb70bac, []int{16} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -962,7 +962,7 @@ func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationRe func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseResp) ProtoMessage() {} func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{17} + return fileDescriptor_group_264c9a69dcb70bac, []int{17} } func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) @@ -1002,7 +1002,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{18} + return fileDescriptor_group_264c9a69dcb70bac, []int{18} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1054,7 +1054,7 @@ func (m *QuitGroupResp) Reset() { *m = QuitGroupResp{} } func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) } func (*QuitGroupResp) ProtoMessage() {} func (*QuitGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{19} + return fileDescriptor_group_264c9a69dcb70bac, []int{19} } func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b) @@ -1096,7 +1096,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{20} + return fileDescriptor_group_264c9a69dcb70bac, []int{20} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1165,7 +1165,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{21} + return fileDescriptor_group_264c9a69dcb70bac, []int{21} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1227,7 +1227,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{22} + return fileDescriptor_group_264c9a69dcb70bac, []int{22} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1288,7 +1288,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{23} + return fileDescriptor_group_264c9a69dcb70bac, []int{23} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1344,7 +1344,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{24} + return fileDescriptor_group_264c9a69dcb70bac, []int{24} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1411,7 +1411,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{25} + return fileDescriptor_group_264c9a69dcb70bac, []int{25} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1458,7 +1458,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{26} + return fileDescriptor_group_264c9a69dcb70bac, []int{26} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1512,7 +1512,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{27} + return fileDescriptor_group_264c9a69dcb70bac, []int{27} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1566,7 +1566,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{28} + return fileDescriptor_group_264c9a69dcb70bac, []int{28} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -1622,7 +1622,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{29} + return fileDescriptor_group_264c9a69dcb70bac, []int{29} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -1690,7 +1690,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{30} + return fileDescriptor_group_264c9a69dcb70bac, []int{30} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -1746,7 +1746,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{31} + return fileDescriptor_group_264c9a69dcb70bac, []int{31} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -1814,7 +1814,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{32} + return fileDescriptor_group_264c9a69dcb70bac, []int{32} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -1857,8 +1857,8 @@ func (m *GetGroupAllMemberResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { type CMSGroup struct { GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo" json:"GroupInfo,omitempty"` - GroupMasterName string `protobuf:"bytes,2,opt,name=GroupMasterName" json:"GroupMasterName,omitempty"` - GroupMasterId string `protobuf:"bytes,3,opt,name=GroupMasterId" json:"GroupMasterId,omitempty"` + GroupOwnerUserName string `protobuf:"bytes,2,opt,name=GroupOwnerUserName" json:"GroupOwnerUserName,omitempty"` + GroupOwnerUserID string `protobuf:"bytes,3,opt,name=GroupOwnerUserID" json:"GroupOwnerUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1868,7 +1868,7 @@ func (m *CMSGroup) Reset() { *m = CMSGroup{} } func (m *CMSGroup) String() string { return proto.CompactTextString(m) } func (*CMSGroup) ProtoMessage() {} func (*CMSGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{33} + return fileDescriptor_group_264c9a69dcb70bac, []int{33} } func (m *CMSGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CMSGroup.Unmarshal(m, b) @@ -1895,16 +1895,16 @@ func (m *CMSGroup) GetGroupInfo() *sdk_ws.GroupInfo { return nil } -func (m *CMSGroup) GetGroupMasterName() string { +func (m *CMSGroup) GetGroupOwnerUserName() string { if m != nil { - return m.GroupMasterName + return m.GroupOwnerUserName } return "" } -func (m *CMSGroup) GetGroupMasterId() string { +func (m *CMSGroup) GetGroupOwnerUserID() string { if m != nil { - return m.GroupMasterId + return m.GroupOwnerUserID } return "" } @@ -1922,7 +1922,7 @@ func (m *GetGroupReq) Reset() { *m = GetGroupReq{} } func (m *GetGroupReq) String() string { return proto.CompactTextString(m) } func (*GetGroupReq) ProtoMessage() {} func (*GetGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{34} + return fileDescriptor_group_264c9a69dcb70bac, []int{34} } func (m *GetGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupReq.Unmarshal(m, b) @@ -1976,7 +1976,7 @@ func (m *GetGroupResp) Reset() { *m = GetGroupResp{} } func (m *GetGroupResp) String() string { return proto.CompactTextString(m) } func (*GetGroupResp) ProtoMessage() {} func (*GetGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{35} + return fileDescriptor_group_264c9a69dcb70bac, []int{35} } func (m *GetGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupResp.Unmarshal(m, b) @@ -2029,7 +2029,7 @@ func (m *GetGroupsReq) Reset() { *m = GetGroupsReq{} } func (m *GetGroupsReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsReq) ProtoMessage() {} func (*GetGroupsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{36} + return fileDescriptor_group_264c9a69dcb70bac, []int{36} } func (m *GetGroupsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsReq.Unmarshal(m, b) @@ -2076,7 +2076,7 @@ func (m *GetGroupsResp) Reset() { *m = GetGroupsResp{} } func (m *GetGroupsResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsResp) ProtoMessage() {} func (*GetGroupsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{37} + return fileDescriptor_group_264c9a69dcb70bac, []int{37} } func (m *GetGroupsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsResp.Unmarshal(m, b) @@ -2118,7 +2118,7 @@ func (m *GetGroupsResp) GetGroupNum() int32 { } type GetGroupMemberReq struct { - GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -2129,7 +2129,7 @@ func (m *GetGroupMemberReq) Reset() { *m = GetGroupMemberReq{} } func (m *GetGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberReq) ProtoMessage() {} func (*GetGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{38} + return fileDescriptor_group_264c9a69dcb70bac, []int{38} } func (m *GetGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberReq.Unmarshal(m, b) @@ -2149,9 +2149,9 @@ func (m *GetGroupMemberReq) XXX_DiscardUnknown() { var xxx_messageInfo_GetGroupMemberReq proto.InternalMessageInfo -func (m *GetGroupMemberReq) GetGroupId() string { +func (m *GetGroupMemberReq) GetGroupID() string { if m != nil { - return m.GroupId + return m.GroupID } return "" } @@ -2164,7 +2164,7 @@ func (m *GetGroupMemberReq) GetOperationID() string { } type OperateGroupStatusReq struct { - GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` Status int32 `protobuf:"varint,2,opt,name=Status" json:"Status,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -2176,7 +2176,7 @@ func (m *OperateGroupStatusReq) Reset() { *m = OperateGroupStatusReq{} } func (m *OperateGroupStatusReq) String() string { return proto.CompactTextString(m) } func (*OperateGroupStatusReq) ProtoMessage() {} func (*OperateGroupStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{39} + return fileDescriptor_group_264c9a69dcb70bac, []int{39} } func (m *OperateGroupStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateGroupStatusReq.Unmarshal(m, b) @@ -2196,9 +2196,9 @@ func (m *OperateGroupStatusReq) XXX_DiscardUnknown() { var xxx_messageInfo_OperateGroupStatusReq proto.InternalMessageInfo -func (m *OperateGroupStatusReq) GetGroupId() string { +func (m *OperateGroupStatusReq) GetGroupID() string { if m != nil { - return m.GroupId + return m.GroupID } return "" } @@ -2227,7 +2227,7 @@ func (m *OperateGroupStatusResp) Reset() { *m = OperateGroupStatusResp{} func (m *OperateGroupStatusResp) String() string { return proto.CompactTextString(m) } func (*OperateGroupStatusResp) ProtoMessage() {} func (*OperateGroupStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{40} + return fileDescriptor_group_264c9a69dcb70bac, []int{40} } func (m *OperateGroupStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateGroupStatusResp.Unmarshal(m, b) @@ -2248,8 +2248,8 @@ func (m *OperateGroupStatusResp) XXX_DiscardUnknown() { var xxx_messageInfo_OperateGroupStatusResp proto.InternalMessageInfo type OperateUserRoleReq struct { - GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` - UserId string `protobuf:"bytes,2,opt,name=UserId" json:"UserId,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=UserID" json:"UserID,omitempty"` RoleLevel int32 `protobuf:"varint,3,opt,name=RoleLevel" json:"RoleLevel,omitempty"` OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -2261,7 +2261,7 @@ func (m *OperateUserRoleReq) Reset() { *m = OperateUserRoleReq{} } func (m *OperateUserRoleReq) String() string { return proto.CompactTextString(m) } func (*OperateUserRoleReq) ProtoMessage() {} func (*OperateUserRoleReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{41} + return fileDescriptor_group_264c9a69dcb70bac, []int{41} } func (m *OperateUserRoleReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleReq.Unmarshal(m, b) @@ -2281,16 +2281,16 @@ func (m *OperateUserRoleReq) XXX_DiscardUnknown() { var xxx_messageInfo_OperateUserRoleReq proto.InternalMessageInfo -func (m *OperateUserRoleReq) GetGroupId() string { +func (m *OperateUserRoleReq) GetGroupID() string { if m != nil { - return m.GroupId + return m.GroupID } return "" } -func (m *OperateUserRoleReq) GetUserId() string { +func (m *OperateUserRoleReq) GetUserID() string { if m != nil { - return m.UserId + return m.UserID } return "" } @@ -2319,7 +2319,7 @@ func (m *OperateUserRoleResp) Reset() { *m = OperateUserRoleResp{} } func (m *OperateUserRoleResp) String() string { return proto.CompactTextString(m) } func (*OperateUserRoleResp) ProtoMessage() {} func (*OperateUserRoleResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{42} + return fileDescriptor_group_264c9a69dcb70bac, []int{42} } func (m *OperateUserRoleResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleResp.Unmarshal(m, b) @@ -2340,7 +2340,7 @@ func (m *OperateUserRoleResp) XXX_DiscardUnknown() { var xxx_messageInfo_OperateUserRoleResp proto.InternalMessageInfo type DeleteGroupReq struct { - GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -2351,7 +2351,7 @@ func (m *DeleteGroupReq) Reset() { *m = DeleteGroupReq{} } func (m *DeleteGroupReq) String() string { return proto.CompactTextString(m) } func (*DeleteGroupReq) ProtoMessage() {} func (*DeleteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{43} + return fileDescriptor_group_264c9a69dcb70bac, []int{43} } func (m *DeleteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteGroupReq.Unmarshal(m, b) @@ -2371,9 +2371,9 @@ func (m *DeleteGroupReq) XXX_DiscardUnknown() { var xxx_messageInfo_DeleteGroupReq proto.InternalMessageInfo -func (m *DeleteGroupReq) GetGroupId() string { +func (m *DeleteGroupReq) GetGroupID() string { if m != nil { - return m.GroupId + return m.GroupID } return "" } @@ -2395,7 +2395,7 @@ func (m *DeleteGroupResp) Reset() { *m = DeleteGroupResp{} } func (m *DeleteGroupResp) String() string { return proto.CompactTextString(m) } func (*DeleteGroupResp) ProtoMessage() {} func (*DeleteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{44} + return fileDescriptor_group_264c9a69dcb70bac, []int{44} } func (m *DeleteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteGroupResp.Unmarshal(m, b) @@ -2416,7 +2416,7 @@ func (m *DeleteGroupResp) XXX_DiscardUnknown() { var xxx_messageInfo_DeleteGroupResp proto.InternalMessageInfo type GetGroupByIdReq struct { - GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -2427,7 +2427,7 @@ func (m *GetGroupByIdReq) Reset() { *m = GetGroupByIdReq{} } func (m *GetGroupByIdReq) String() string { return proto.CompactTextString(m) } func (*GetGroupByIdReq) ProtoMessage() {} func (*GetGroupByIdReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{45} + return fileDescriptor_group_264c9a69dcb70bac, []int{45} } func (m *GetGroupByIdReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupByIdReq.Unmarshal(m, b) @@ -2447,9 +2447,9 @@ func (m *GetGroupByIdReq) XXX_DiscardUnknown() { var xxx_messageInfo_GetGroupByIdReq proto.InternalMessageInfo -func (m *GetGroupByIdReq) GetGroupId() string { +func (m *GetGroupByIdReq) GetGroupID() string { if m != nil { - return m.GroupId + return m.GroupID } return "" } @@ -2472,7 +2472,7 @@ func (m *GetGroupByIdResp) Reset() { *m = GetGroupByIdResp{} } func (m *GetGroupByIdResp) String() string { return proto.CompactTextString(m) } func (*GetGroupByIdResp) ProtoMessage() {} func (*GetGroupByIdResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{46} + return fileDescriptor_group_264c9a69dcb70bac, []int{46} } func (m *GetGroupByIdResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupByIdResp.Unmarshal(m, b) @@ -2500,7 +2500,7 @@ func (m *GetGroupByIdResp) GetCMSGroup() *CMSGroup { } type GetGroupMembersCMSReq struct { - GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` UserName string `protobuf:"bytes,2,opt,name=UserName" json:"UserName,omitempty"` Pagination *sdk_ws.RequestPagination `protobuf:"bytes,3,opt,name=Pagination" json:"Pagination,omitempty"` OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` @@ -2513,7 +2513,7 @@ func (m *GetGroupMembersCMSReq) Reset() { *m = GetGroupMembersCMSReq{} } func (m *GetGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSReq) ProtoMessage() {} func (*GetGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{47} + return fileDescriptor_group_264c9a69dcb70bac, []int{47} } func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b) @@ -2533,9 +2533,9 @@ func (m *GetGroupMembersCMSReq) XXX_DiscardUnknown() { var xxx_messageInfo_GetGroupMembersCMSReq proto.InternalMessageInfo -func (m *GetGroupMembersCMSReq) GetGroupId() string { +func (m *GetGroupMembersCMSReq) GetGroupID() string { if m != nil { - return m.GroupId + return m.GroupID } return "" } @@ -2574,7 +2574,7 @@ func (m *GetGroupMembersCMSResp) Reset() { *m = GetGroupMembersCMSResp{} func (m *GetGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSResp) ProtoMessage() {} func (*GetGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{48} + return fileDescriptor_group_264c9a69dcb70bac, []int{48} } func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b) @@ -2616,10 +2616,10 @@ func (m *GetGroupMembersCMSResp) GetMemberNums() int32 { } type RemoveGroupMembersCMSReq struct { - GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` - UserIds []string `protobuf:"bytes,2,rep,name=UserIds" json:"UserIds,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + UserIDList []string `protobuf:"bytes,2,rep,name=UserIDList" json:"UserIDList,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserId string `protobuf:"bytes,4,opt,name=OpUserId" json:"OpUserId,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2629,7 +2629,7 @@ func (m *RemoveGroupMembersCMSReq) Reset() { *m = RemoveGroupMembersCMSR func (m *RemoveGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*RemoveGroupMembersCMSReq) ProtoMessage() {} func (*RemoveGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{49} + return fileDescriptor_group_264c9a69dcb70bac, []int{49} } func (m *RemoveGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSReq.Unmarshal(m, b) @@ -2649,16 +2649,16 @@ func (m *RemoveGroupMembersCMSReq) XXX_DiscardUnknown() { var xxx_messageInfo_RemoveGroupMembersCMSReq proto.InternalMessageInfo -func (m *RemoveGroupMembersCMSReq) GetGroupId() string { +func (m *RemoveGroupMembersCMSReq) GetGroupID() string { if m != nil { - return m.GroupId + return m.GroupID } return "" } -func (m *RemoveGroupMembersCMSReq) GetUserIds() []string { +func (m *RemoveGroupMembersCMSReq) GetUserIDList() []string { if m != nil { - return m.UserIds + return m.UserIDList } return nil } @@ -2670,9 +2670,9 @@ func (m *RemoveGroupMembersCMSReq) GetOperationID() string { return "" } -func (m *RemoveGroupMembersCMSReq) GetOpUserId() string { +func (m *RemoveGroupMembersCMSReq) GetOpUserID() string { if m != nil { - return m.OpUserId + return m.OpUserID } return "" } @@ -2689,7 +2689,7 @@ func (m *RemoveGroupMembersCMSResp) Reset() { *m = RemoveGroupMembersCMS func (m *RemoveGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*RemoveGroupMembersCMSResp) ProtoMessage() {} func (*RemoveGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{50} + return fileDescriptor_group_264c9a69dcb70bac, []int{50} } func (m *RemoveGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSResp.Unmarshal(m, b) @@ -2724,10 +2724,10 @@ func (m *RemoveGroupMembersCMSResp) GetFailed() []string { } type AddGroupMembersCMSReq struct { - GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` - UserIds []string `protobuf:"bytes,2,rep,name=UserIds" json:"UserIds,omitempty"` - OperationId string `protobuf:"bytes,3,opt,name=OperationId" json:"OperationId,omitempty"` - OpUserId string `protobuf:"bytes,4,opt,name=OpUserId" json:"OpUserId,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + UserIDList []string `protobuf:"bytes,2,rep,name=UserIDList" json:"UserIDList,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2737,7 +2737,7 @@ func (m *AddGroupMembersCMSReq) Reset() { *m = AddGroupMembersCMSReq{} } func (m *AddGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*AddGroupMembersCMSReq) ProtoMessage() {} func (*AddGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{51} + return fileDescriptor_group_264c9a69dcb70bac, []int{51} } func (m *AddGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSReq.Unmarshal(m, b) @@ -2757,30 +2757,30 @@ func (m *AddGroupMembersCMSReq) XXX_DiscardUnknown() { var xxx_messageInfo_AddGroupMembersCMSReq proto.InternalMessageInfo -func (m *AddGroupMembersCMSReq) GetGroupId() string { +func (m *AddGroupMembersCMSReq) GetGroupID() string { if m != nil { - return m.GroupId + return m.GroupID } return "" } -func (m *AddGroupMembersCMSReq) GetUserIds() []string { +func (m *AddGroupMembersCMSReq) GetUserIDList() []string { if m != nil { - return m.UserIds + return m.UserIDList } return nil } -func (m *AddGroupMembersCMSReq) GetOperationId() string { +func (m *AddGroupMembersCMSReq) GetOperationID() string { if m != nil { - return m.OperationId + return m.OperationID } return "" } -func (m *AddGroupMembersCMSReq) GetOpUserId() string { +func (m *AddGroupMembersCMSReq) GetOpUserID() string { if m != nil { - return m.OpUserId + return m.OpUserID } return "" } @@ -2797,7 +2797,7 @@ func (m *AddGroupMembersCMSResp) Reset() { *m = AddGroupMembersCMSResp{} func (m *AddGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*AddGroupMembersCMSResp) ProtoMessage() {} func (*AddGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{52} + return fileDescriptor_group_264c9a69dcb70bac, []int{52} } func (m *AddGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSResp.Unmarshal(m, b) @@ -2844,7 +2844,7 @@ func (m *DismissGroupReq) Reset() { *m = DismissGroupReq{} } func (m *DismissGroupReq) String() string { return proto.CompactTextString(m) } func (*DismissGroupReq) ProtoMessage() {} func (*DismissGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{53} + return fileDescriptor_group_264c9a69dcb70bac, []int{53} } func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b) @@ -2896,7 +2896,7 @@ func (m *DismissGroupResp) Reset() { *m = DismissGroupResp{} } func (m *DismissGroupResp) String() string { return proto.CompactTextString(m) } func (*DismissGroupResp) ProtoMessage() {} func (*DismissGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{54} + return fileDescriptor_group_264c9a69dcb70bac, []int{54} } func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b) @@ -2938,7 +2938,7 @@ func (m *MuteGroupMemberReq) Reset() { *m = MuteGroupMemberReq{} } func (m *MuteGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*MuteGroupMemberReq) ProtoMessage() {} func (*MuteGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{55} + return fileDescriptor_group_264c9a69dcb70bac, []int{55} } func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b) @@ -3004,7 +3004,7 @@ func (m *MuteGroupMemberResp) Reset() { *m = MuteGroupMemberResp{} } func (m *MuteGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*MuteGroupMemberResp) ProtoMessage() {} func (*MuteGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{56} + return fileDescriptor_group_264c9a69dcb70bac, []int{56} } func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b) @@ -3045,7 +3045,7 @@ func (m *CancelMuteGroupMemberReq) Reset() { *m = CancelMuteGroupMemberR func (m *CancelMuteGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupMemberReq) ProtoMessage() {} func (*CancelMuteGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{57} + return fileDescriptor_group_264c9a69dcb70bac, []int{57} } func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b) @@ -3104,7 +3104,7 @@ func (m *CancelMuteGroupMemberResp) Reset() { *m = CancelMuteGroupMember func (m *CancelMuteGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupMemberResp) ProtoMessage() {} func (*CancelMuteGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{58} + return fileDescriptor_group_264c9a69dcb70bac, []int{58} } func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b) @@ -3144,7 +3144,7 @@ func (m *MuteGroupReq) Reset() { *m = MuteGroupReq{} } func (m *MuteGroupReq) String() string { return proto.CompactTextString(m) } func (*MuteGroupReq) ProtoMessage() {} func (*MuteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{59} + return fileDescriptor_group_264c9a69dcb70bac, []int{59} } func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b) @@ -3196,7 +3196,7 @@ func (m *MuteGroupResp) Reset() { *m = MuteGroupResp{} } func (m *MuteGroupResp) String() string { return proto.CompactTextString(m) } func (*MuteGroupResp) ProtoMessage() {} func (*MuteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{60} + return fileDescriptor_group_264c9a69dcb70bac, []int{60} } func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b) @@ -3236,7 +3236,7 @@ func (m *CancelMuteGroupReq) Reset() { *m = CancelMuteGroupReq{} } func (m *CancelMuteGroupReq) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupReq) ProtoMessage() {} func (*CancelMuteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{61} + return fileDescriptor_group_264c9a69dcb70bac, []int{61} } func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b) @@ -3288,7 +3288,7 @@ func (m *CancelMuteGroupResp) Reset() { *m = CancelMuteGroupResp{} } func (m *CancelMuteGroupResp) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupResp) ProtoMessage() {} func (*CancelMuteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{62} + return fileDescriptor_group_264c9a69dcb70bac, []int{62} } func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b) @@ -3330,7 +3330,7 @@ func (m *SetGroupMemberNicknameReq) Reset() { *m = SetGroupMemberNicknam func (m *SetGroupMemberNicknameReq) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberNicknameReq) ProtoMessage() {} func (*SetGroupMemberNicknameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{63} + return fileDescriptor_group_264c9a69dcb70bac, []int{63} } func (m *SetGroupMemberNicknameReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberNicknameReq.Unmarshal(m, b) @@ -3396,7 +3396,7 @@ func (m *SetGroupMemberNicknameResp) Reset() { *m = SetGroupMemberNickna func (m *SetGroupMemberNicknameResp) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberNicknameResp) ProtoMessage() {} func (*SetGroupMemberNicknameResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{64} + return fileDescriptor_group_264c9a69dcb70bac, []int{64} } func (m *SetGroupMemberNicknameResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberNicknameResp.Unmarshal(m, b) @@ -3436,7 +3436,7 @@ func (m *GetJoinedSuperGroupListReq) Reset() { *m = GetJoinedSuperGroupL func (m *GetJoinedSuperGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedSuperGroupListReq) ProtoMessage() {} func (*GetJoinedSuperGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{65} + return fileDescriptor_group_264c9a69dcb70bac, []int{65} } func (m *GetJoinedSuperGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedSuperGroupListReq.Unmarshal(m, b) @@ -3489,7 +3489,7 @@ func (m *GetJoinedSuperGroupListResp) Reset() { *m = GetJoinedSuperGroup func (m *GetJoinedSuperGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedSuperGroupListResp) ProtoMessage() {} func (*GetJoinedSuperGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{66} + return fileDescriptor_group_264c9a69dcb70bac, []int{66} } func (m *GetJoinedSuperGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedSuperGroupListResp.Unmarshal(m, b) @@ -3536,7 +3536,7 @@ func (m *GetSuperGroupsInfoReq) Reset() { *m = GetSuperGroupsInfoReq{} } func (m *GetSuperGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupsInfoReq) ProtoMessage() {} func (*GetSuperGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{67} + return fileDescriptor_group_264c9a69dcb70bac, []int{67} } func (m *GetSuperGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupsInfoReq.Unmarshal(m, b) @@ -3589,7 +3589,7 @@ func (m *GetSuperGroupsInfoResp) Reset() { *m = GetSuperGroupsInfoResp{} func (m *GetSuperGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupsInfoResp) ProtoMessage() {} func (*GetSuperGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{68} + return fileDescriptor_group_264c9a69dcb70bac, []int{68} } func (m *GetSuperGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupsInfoResp.Unmarshal(m, b) @@ -3641,7 +3641,7 @@ func (m *SetGroupMemberInfoReq) Reset() { *m = SetGroupMemberInfoReq{} } func (m *SetGroupMemberInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberInfoReq) ProtoMessage() {} func (*SetGroupMemberInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{69} + return fileDescriptor_group_264c9a69dcb70bac, []int{69} } func (m *SetGroupMemberInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberInfoReq.Unmarshal(m, b) @@ -3728,7 +3728,7 @@ func (m *SetGroupMemberInfoResp) Reset() { *m = SetGroupMemberInfoResp{} func (m *SetGroupMemberInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberInfoResp) ProtoMessage() {} func (*SetGroupMemberInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{70} + return fileDescriptor_group_264c9a69dcb70bac, []int{70} } func (m *SetGroupMemberInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberInfoResp.Unmarshal(m, b) @@ -3768,7 +3768,7 @@ func (m *GetGroupAbstractInfoReq) Reset() { *m = GetGroupAbstractInfoReq func (m *GetGroupAbstractInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAbstractInfoReq) ProtoMessage() {} func (*GetGroupAbstractInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{71} + return fileDescriptor_group_264c9a69dcb70bac, []int{71} } func (m *GetGroupAbstractInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAbstractInfoReq.Unmarshal(m, b) @@ -3822,7 +3822,7 @@ func (m *GetGroupAbstractInfoResp) Reset() { *m = GetGroupAbstractInfoRe func (m *GetGroupAbstractInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAbstractInfoResp) ProtoMessage() {} func (*GetGroupAbstractInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5328f8e912d7cdbf, []int{72} + return fileDescriptor_group_264c9a69dcb70bac, []int{72} } func (m *GetGroupAbstractInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAbstractInfoResp.Unmarshal(m, b) @@ -5100,165 +5100,164 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_5328f8e912d7cdbf) } +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_264c9a69dcb70bac) } -var fileDescriptor_group_5328f8e912d7cdbf = []byte{ - // 2512 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x41, 0x6f, 0x1c, 0x49, - 0xf5, 0x57, 0xdb, 0x9e, 0xd8, 0x7e, 0xb6, 0x33, 0x76, 0x39, 0x76, 0x26, 0x1d, 0x6f, 0xe2, 0xd4, - 0xe6, 0xbf, 0xff, 0x08, 0x82, 0x03, 0x8e, 0x14, 0x01, 0x8b, 0x08, 0xb1, 0x9d, 0xc4, 0x4e, 0x62, - 0x9b, 0xf4, 0x64, 0x41, 0x8a, 0x84, 0x42, 0x67, 0xba, 0x66, 0x18, 0x3c, 0xd3, 0xdd, 0xee, 0xea, - 0x49, 0x02, 0x97, 0x15, 0x17, 0xa4, 0x45, 0x48, 0x80, 0x90, 0x38, 0x2d, 0x82, 0x3d, 0xc1, 0x01, - 0x24, 0x0e, 0x70, 0x46, 0xdc, 0x39, 0x23, 0x71, 0xe5, 0x0b, 0xf0, 0x15, 0x50, 0x57, 0x55, 0x57, - 0x57, 0x77, 0x55, 0xb7, 0x27, 0xed, 0x64, 0x73, 0x69, 0xa9, 0xaa, 0x5e, 0x55, 0xfd, 0xde, 0xab, - 0x7a, 0xef, 0xd5, 0x7b, 0xaf, 0x61, 0xa9, 0x17, 0x05, 0xa3, 0xf0, 0x06, 0xfb, 0x6e, 0x84, 0x51, - 0x10, 0x07, 0xa8, 0xc1, 0x1a, 0xf6, 0x95, 0xc3, 0x90, 0xf8, 0xcf, 0xf6, 0xf6, 0x6f, 0x84, 0x47, - 0xbd, 0x1b, 0x6c, 0xe4, 0x06, 0xf5, 0x8e, 0x9e, 0xbd, 0xa4, 0x37, 0x5e, 0x52, 0x4e, 0x69, 0xff, - 0x7f, 0x39, 0x49, 0xe4, 0x86, 0x21, 0x89, 0x04, 0x21, 0xfe, 0x26, 0xc0, 0x76, 0x30, 0x1c, 0x06, - 0xbe, 0x43, 0x68, 0x88, 0x5a, 0x30, 0x7d, 0x37, 0x8a, 0xb6, 0x03, 0x8f, 0xb4, 0xac, 0x75, 0xeb, - 0x5a, 0xc3, 0x49, 0x9b, 0x68, 0x15, 0xce, 0xdc, 0x8d, 0xa2, 0x7d, 0xda, 0x6b, 0x4d, 0xac, 0x5b, - 0xd7, 0x66, 0x1d, 0xd1, 0xc2, 0x0f, 0x00, 0xdd, 0x4f, 0x40, 0xdd, 0xf1, 0xbc, 0x7d, 0x32, 0x7c, - 0x4e, 0xa2, 0x3d, 0xbf, 0x1b, 0x24, 0xd4, 0x1f, 0x51, 0x12, 0xed, 0xed, 0xb0, 0x65, 0x66, 0x1d, - 0xd1, 0x42, 0x6b, 0x30, 0xeb, 0x04, 0x03, 0xf2, 0x88, 0xbc, 0x20, 0x03, 0xb6, 0x50, 0xc3, 0xc9, - 0x3a, 0xf0, 0x7f, 0x2d, 0x38, 0xbb, 0x1d, 0x11, 0x37, 0x26, 0x6c, 0x49, 0x87, 0x1c, 0xa3, 0x3b, - 0x70, 0x76, 0xcf, 0xef, 0xc7, 0x7c, 0xe9, 0x47, 0x7d, 0x1a, 0xb7, 0xac, 0xf5, 0xc9, 0x6b, 0x73, - 0x9b, 0x17, 0x36, 0xb8, 0x5c, 0xf4, 0xbd, 0x9d, 0xc2, 0x04, 0xf4, 0x75, 0x98, 0x65, 0x54, 0xc9, - 0x20, 0xdb, 0x73, 0x6e, 0x73, 0x6d, 0x83, 0x92, 0xe8, 0x05, 0x89, 0x9e, 0xb9, 0x61, 0xff, 0x59, - 0xe8, 0x46, 0xee, 0x90, 0x6e, 0x48, 0x1a, 0x27, 0x23, 0x47, 0xeb, 0x30, 0x77, 0x18, 0x92, 0xc8, - 0x8d, 0xfb, 0x81, 0xbf, 0xb7, 0xd3, 0x9a, 0x64, 0xcc, 0xa8, 0x5d, 0xc8, 0x86, 0x99, 0xc3, 0x50, - 0xf0, 0x3a, 0xc5, 0x86, 0x65, 0x9b, 0xcd, 0x7e, 0xe9, 0x93, 0x48, 0x0c, 0x37, 0xc4, 0xec, 0xac, - 0x0b, 0x7f, 0x0c, 0xcd, 0x1c, 0xc3, 0x75, 0x8e, 0x20, 0xcf, 0xe0, 0xe4, 0x6b, 0x31, 0x88, 0x23, - 0x58, 0xbc, 0x4f, 0x62, 0xd6, 0xa6, 0x6c, 0x8c, 0x1c, 0x27, 0xb0, 0x39, 0xc1, 0x8e, 0x14, 0xf8, - 0xac, 0xa3, 0x76, 0x15, 0xc5, 0x32, 0x51, 0x2d, 0x96, 0xc9, 0xbc, 0x58, 0xf0, 0x27, 0x16, 0x2c, - 0x15, 0x36, 0xad, 0xc5, 0xf7, 0x16, 0x2c, 0x48, 0x46, 0x18, 0xd2, 0x49, 0x76, 0x35, 0xaa, 0x79, - 0xcf, 0x4f, 0xc1, 0xbf, 0xb5, 0xa0, 0xd9, 0x16, 0x58, 0x52, 0xfe, 0x1f, 0x41, 0xb3, 0x97, 0xb6, - 0xef, 0x05, 0x51, 0x9b, 0xc4, 0x0c, 0xd1, 0xdc, 0x26, 0xae, 0x5a, 0x99, 0x53, 0x3a, 0xc5, 0xa9, - 0x39, 0x49, 0x4c, 0x18, 0x2e, 0x48, 0xe5, 0xf5, 0xc2, 0x77, 0x61, 0x31, 0x0f, 0x8f, 0x86, 0xe8, - 0x2b, 0xaa, 0xca, 0x0a, 0x68, 0x4b, 0x42, 0x1f, 0xb2, 0x01, 0x47, 0x21, 0xc2, 0x3f, 0x06, 0x3b, - 0x95, 0xf8, 0x9d, 0x30, 0x1c, 0xf4, 0x3b, 0x6c, 0xfd, 0x44, 0x02, 0x09, 0xc3, 0x2a, 0x44, 0xab, - 0x1a, 0xa2, 0xe1, 0xa8, 0x2f, 0x01, 0xdc, 0x8b, 0x82, 0x61, 0xee, 0xb0, 0x95, 0x1e, 0xfc, 0xa9, - 0x05, 0x17, 0x4b, 0x37, 0xaf, 0x75, 0xf0, 0x0f, 0x61, 0x31, 0x35, 0x10, 0x23, 0x42, 0x63, 0xe5, - 0xec, 0x2f, 0x97, 0x9d, 0x90, 0x20, 0x75, 0xb4, 0x89, 0x38, 0x86, 0xb5, 0xfb, 0x24, 0x4e, 0xb0, - 0x3a, 0xe4, 0xd8, 0x20, 0x9c, 0x32, 0x53, 0x76, 0xba, 0x73, 0xfd, 0x9d, 0x05, 0xef, 0x55, 0x6c, - 0x5b, 0xeb, 0x94, 0x8d, 0x72, 0x99, 0xa8, 0x2b, 0x97, 0xbf, 0x5b, 0xb0, 0xf2, 0x24, 0x72, 0x7d, - 0xda, 0x25, 0x11, 0x1b, 0x64, 0x76, 0x2b, 0x91, 0x48, 0x0b, 0xa6, 0x85, 0x31, 0x10, 0x22, 0x49, - 0x9b, 0xe8, 0x03, 0x38, 0x7b, 0x38, 0xf0, 0x54, 0x9b, 0xc7, 0x25, 0x53, 0xe8, 0x4d, 0xe8, 0x0e, - 0xc8, 0x4b, 0x95, 0x8e, 0x8b, 0xa8, 0xd0, 0x5b, 0x94, 0xe3, 0x54, 0xb5, 0x9d, 0x69, 0x14, 0xec, - 0xcc, 0x43, 0x58, 0x35, 0x31, 0x50, 0x4f, 0x83, 0xfe, 0x69, 0xc1, 0xfc, 0x83, 0xa0, 0xef, 0x4b, - 0xcf, 0x54, 0x2e, 0x85, 0x4b, 0x00, 0x0e, 0x39, 0xde, 0x27, 0x94, 0xba, 0x3d, 0x22, 0x24, 0xa0, - 0xf4, 0x54, 0xd9, 0xc6, 0x31, 0x38, 0xbe, 0x04, 0x90, 0xe0, 0x68, 0x07, 0xa3, 0xa8, 0x43, 0x18, - 0xcf, 0x0d, 0x47, 0xe9, 0x41, 0x57, 0x61, 0x61, 0xcf, 0x7f, 0xd1, 0x8f, 0xa5, 0x68, 0xcf, 0xb0, - 0x35, 0xf2, 0x9d, 0x78, 0x0b, 0x16, 0x14, 0x6e, 0xea, 0x89, 0xe4, 0xdf, 0x89, 0x62, 0x17, 0xb4, - 0x3a, 0x19, 0x08, 0x7c, 0x4a, 0x84, 0x1f, 0x51, 0x79, 0xb1, 0xaa, 0x4f, 0xaf, 0xa8, 0x43, 0x8a, - 0x7c, 0x27, 0x35, 0xf9, 0x2a, 0x06, 0x67, 0xaa, 0x68, 0x70, 0x92, 0xf1, 0x5d, 0xd7, 0xf7, 0x06, - 0xc4, 0x4b, 0x4c, 0x07, 0xbf, 0x15, 0x4a, 0x0f, 0xc2, 0x30, 0xcf, 0x5b, 0x0e, 0xa1, 0xa3, 0x41, - 0xcc, 0x04, 0xd4, 0x70, 0x72, 0x7d, 0xf8, 0x31, 0xac, 0x95, 0xb3, 0x56, 0x4f, 0x5c, 0x5d, 0x98, - 0x7f, 0x3c, 0xea, 0xc7, 0x63, 0x5c, 0xa0, 0xd3, 0xb9, 0xd7, 0x2d, 0x58, 0x50, 0xf6, 0xa9, 0x87, - 0xf5, 0x33, 0x0b, 0x56, 0x52, 0x9b, 0x9d, 0x3d, 0xa5, 0xaa, 0x51, 0x9f, 0xca, 0x20, 0x26, 0x66, - 0xf6, 0x5e, 0x7f, 0x10, 0x93, 0x88, 0x1d, 0x68, 0xc3, 0x11, 0xad, 0x64, 0xbf, 0x03, 0xf2, 0x2a, - 0x6e, 0x93, 0x63, 0x71, 0xd7, 0xd3, 0x26, 0xfe, 0x93, 0x05, 0xab, 0x26, 0x8c, 0xb5, 0x5c, 0xca, - 0x3d, 0x80, 0x61, 0xf6, 0xc6, 0xe4, 0xce, 0xe4, 0x83, 0x32, 0xa3, 0xc9, 0x77, 0xbb, 0x37, 0x1a, - 0x0c, 0x98, 0x4f, 0x56, 0x66, 0x26, 0x3b, 0xfb, 0x02, 0x2e, 0xe7, 0x23, 0x6d, 0xe2, 0x5f, 0x6a, - 0x70, 0xe5, 0x83, 0xab, 0xd2, 0x94, 0x28, 0xb0, 0x26, 0xd8, 0x4b, 0x4c, 0xdd, 0xee, 0x54, 0xa6, - 0x04, 0xff, 0xda, 0x82, 0xf3, 0x46, 0x48, 0xef, 0x52, 0x84, 0xf8, 0x2f, 0x16, 0xa0, 0x87, 0xfd, - 0xce, 0x91, 0x42, 0x57, 0x2d, 0xa4, 0x2f, 0xc0, 0x62, 0x42, 0x4f, 0x3c, 0xce, 0xb8, 0x22, 0x2a, - 0xad, 0x3f, 0x01, 0xef, 0x10, 0x97, 0x06, 0xbe, 0x10, 0x97, 0x68, 0x15, 0x85, 0xd5, 0xa8, 0x56, - 0xb9, 0x33, 0x05, 0x95, 0xfb, 0x10, 0x66, 0xf7, 0xbc, 0x4d, 0x6e, 0x3a, 0x4a, 0x1f, 0x0c, 0x6c, - 0x6b, 0x66, 0x70, 0x78, 0xe0, 0x23, 0x5a, 0xf8, 0x63, 0x58, 0xd6, 0xd8, 0xad, 0x75, 0x00, 0xb7, - 0x60, 0x41, 0xa2, 0x50, 0xce, 0x60, 0x51, 0xa8, 0xba, 0x1c, 0x73, 0xf2, 0x64, 0x78, 0xc4, 0x74, - 0x3d, 0x71, 0x07, 0xc4, 0x63, 0x28, 0x52, 0x5d, 0xcf, 0x1b, 0x5a, 0x4b, 0x33, 0xb4, 0xeb, 0x30, - 0x17, 0xe8, 0x76, 0x2a, 0x18, 0xd3, 0x4e, 0xfd, 0x94, 0x2b, 0x84, 0xb6, 0xef, 0xa9, 0x62, 0xa0, - 0xb1, 0xe3, 0x80, 0x8c, 0x1c, 0xff, 0xd5, 0x82, 0x73, 0xdc, 0x3b, 0x26, 0xc8, 0x9e, 0x04, 0xd2, - 0x42, 0x9f, 0x6c, 0x87, 0xcb, 0x9d, 0x54, 0x76, 0xd1, 0xa6, 0x72, 0x17, 0xed, 0x3a, 0x2c, 0xf1, - 0xbd, 0xd4, 0xdb, 0xda, 0x60, 0xb7, 0x55, 0x1f, 0xa8, 0xbc, 0x74, 0x3f, 0xb1, 0x60, 0xc5, 0x00, - 0xfb, 0x73, 0xbd, 0x3a, 0x9f, 0x5a, 0x70, 0x4e, 0xbe, 0xed, 0x07, 0x83, 0x71, 0xb4, 0xf5, 0xd4, - 0x6e, 0xe2, 0xb0, 0xdb, 0xa5, 0x24, 0x4e, 0xdd, 0x04, 0x6f, 0xa1, 0x73, 0xd0, 0xd8, 0x0e, 0x46, - 0x7e, 0x2c, 0x9c, 0x04, 0x6f, 0xe0, 0x5f, 0x29, 0x6e, 0x4c, 0x81, 0xf7, 0x4e, 0xcd, 0xdb, 0x6f, - 0x2c, 0x98, 0xd9, 0xde, 0x6f, 0x33, 0xb2, 0x7c, 0xe8, 0x6e, 0xbd, 0x5e, 0x6e, 0xe2, 0x1a, 0x34, - 0xf9, 0x5e, 0x2e, 0x8d, 0x49, 0x74, 0xe0, 0x0e, 0xd3, 0xb7, 0x66, 0xb1, 0x3b, 0x79, 0x12, 0x2a, - 0x5d, 0x7b, 0x9e, 0x10, 0x6c, 0xbe, 0x33, 0xf1, 0x06, 0x73, 0xa9, 0xb0, 0x92, 0x23, 0x5c, 0x13, - 0xd8, 0xd8, 0xca, 0xfc, 0x10, 0xb3, 0x0e, 0xb4, 0x03, 0xf0, 0x6d, 0xb7, 0xd7, 0xf7, 0xd9, 0xc1, - 0x88, 0xb4, 0xca, 0x55, 0x03, 0x74, 0x11, 0x52, 0x64, 0xb4, 0x8e, 0x32, 0x6f, 0x8c, 0x40, 0xe9, - 0x33, 0x0b, 0xe6, 0x33, 0x54, 0x34, 0x44, 0x5f, 0x82, 0xd9, 0x54, 0x7c, 0x54, 0x24, 0x83, 0x9a, - 0xe9, 0x63, 0x46, 0xf4, 0x3b, 0x19, 0xc5, 0x1b, 0xc2, 0x29, 0x65, 0x31, 0x1a, 0x52, 0x86, 0xb2, - 0xe1, 0x64, 0x1d, 0xf8, 0x45, 0x06, 0x91, 0x26, 0x92, 0xcb, 0xef, 0x69, 0xbd, 0x19, 0xd9, 0xe8, - 0xd6, 0x07, 0xff, 0xde, 0x82, 0x05, 0x65, 0xe3, 0x77, 0x25, 0x1c, 0x1b, 0x66, 0x52, 0x59, 0x08, - 0xd9, 0xc8, 0x36, 0x3e, 0xcc, 0x52, 0x3d, 0x06, 0xe3, 0xe0, 0xe5, 0x8d, 0x83, 0x37, 0x06, 0xcf, - 0x47, 0xb0, 0xc2, 0x9b, 0x3c, 0x65, 0xd6, 0x8e, 0xdd, 0x78, 0x44, 0xab, 0x17, 0x5d, 0x85, 0x33, - 0x9c, 0x2c, 0x75, 0xbc, 0xbc, 0x35, 0xc6, 0xe5, 0x6b, 0xc1, 0xaa, 0x69, 0x33, 0x1a, 0x26, 0xce, - 0x0b, 0x89, 0x21, 0x16, 0xc3, 0x07, 0x03, 0x72, 0x22, 0x08, 0x66, 0xe4, 0xbc, 0xd4, 0xac, 0xf0, - 0x56, 0x3e, 0x23, 0x3a, 0x59, 0xc8, 0x88, 0x8e, 0xf1, 0x86, 0x5b, 0x81, 0x65, 0x0d, 0x07, 0x0d, - 0xf1, 0x23, 0x38, 0xbb, 0x43, 0x06, 0x44, 0xc9, 0xa4, 0x9e, 0x46, 0xe8, 0x4b, 0xd0, 0xcc, 0xad, - 0x46, 0x43, 0xbc, 0x0f, 0xcd, 0xf4, 0x60, 0xb7, 0x7e, 0xb4, 0xe7, 0x9d, 0x76, 0x87, 0xdb, 0x59, - 0x1e, 0x92, 0x2f, 0x47, 0x43, 0xf4, 0xc5, 0xcc, 0x50, 0x0a, 0x25, 0xd2, 0xee, 0xb2, 0x24, 0xc0, - 0x7f, 0xd3, 0x22, 0x16, 0xba, 0xbd, 0xdf, 0xae, 0x86, 0x65, 0xc3, 0x4c, 0x22, 0x34, 0xc5, 0x74, - 0xca, 0x76, 0x41, 0x35, 0x26, 0xdf, 0x8c, 0x0e, 0x1b, 0xce, 0xef, 0x1f, 0x7a, 0x58, 0xc0, 0x70, - 0xd3, 0x10, 0x7d, 0x0b, 0xa6, 0xb9, 0xdf, 0x48, 0x55, 0x79, 0x5c, 0x77, 0x93, 0x4e, 0x43, 0x77, - 0x0d, 0xfa, 0xfd, 0x7f, 0x46, 0x26, 0x78, 0x68, 0x5b, 0xc2, 0xc5, 0x25, 0x00, 0xbe, 0x83, 0x62, - 0xfe, 0x94, 0x1e, 0xfc, 0x73, 0x0b, 0x5a, 0x0e, 0x19, 0x06, 0x2f, 0xc8, 0x6b, 0x89, 0xbf, 0x05, - 0xd3, 0x5c, 0x09, 0xa8, 0x78, 0xae, 0xa7, 0xcd, 0xd7, 0x4a, 0xbb, 0x7b, 0x85, 0xb4, 0xbb, 0x87, - 0xf7, 0xe1, 0x42, 0x09, 0x1a, 0xee, 0xf8, 0xe9, 0xa8, 0xd3, 0x21, 0x94, 0x8a, 0xc4, 0x76, 0xda, - 0x4c, 0x34, 0xb4, 0xeb, 0xf6, 0x07, 0xc4, 0x13, 0x68, 0x44, 0x0b, 0x7f, 0x62, 0xc1, 0xca, 0x1d, - 0xcf, 0x7b, 0x1b, 0xac, 0x79, 0x3a, 0x6b, 0x5e, 0x25, 0x6b, 0x0f, 0x60, 0xd5, 0x04, 0xa5, 0x16, - 0x5f, 0x7d, 0x68, 0xee, 0xf4, 0xe9, 0xb0, 0x4f, 0xa9, 0xb4, 0x11, 0x36, 0xcc, 0x04, 0x85, 0x44, - 0x70, 0x10, 0x8e, 0xfd, 0xd8, 0x6f, 0xc1, 0x74, 0x2f, 0xff, 0x18, 0x16, 0x4d, 0x7c, 0x17, 0x16, - 0xf3, 0x5b, 0xf1, 0xac, 0x44, 0x67, 0x9c, 0xac, 0x44, 0x46, 0x84, 0xff, 0x68, 0x01, 0xda, 0x1f, - 0xc5, 0xa4, 0xe0, 0x4e, 0xde, 0x12, 0xea, 0x44, 0x70, 0x23, 0x35, 0xc7, 0x24, 0x5a, 0x08, 0xc3, - 0xfc, 0x70, 0x14, 0x13, 0xaf, 0x4d, 0x3a, 0x81, 0xef, 0x51, 0xf6, 0xe4, 0x5c, 0x70, 0x72, 0x7d, - 0x78, 0x17, 0x96, 0x35, 0xa4, 0xf5, 0x98, 0xfe, 0x99, 0x05, 0xad, 0x6d, 0xd7, 0xef, 0x90, 0xc1, - 0xbb, 0x67, 0x1d, 0x1f, 0xc0, 0x85, 0x12, 0x2c, 0xf5, 0x98, 0xeb, 0xc2, 0xbc, 0x5c, 0xe9, 0x6d, - 0x5e, 0xc0, 0x2d, 0x58, 0x50, 0xf6, 0xa9, 0x87, 0x75, 0x00, 0xa8, 0xc0, 0xfb, 0xdb, 0x44, 0xbc, - 0x0b, 0xcb, 0xda, 0x6e, 0xf5, 0x70, 0xff, 0xc1, 0x82, 0x0b, 0xed, 0x9c, 0x87, 0x39, 0xe8, 0x77, - 0x8e, 0x7c, 0x77, 0x98, 0xbe, 0x58, 0x7a, 0xf9, 0x40, 0xad, 0x97, 0x05, 0x6a, 0xbe, 0x20, 0x4c, - 0xbd, 0x63, 0xda, 0xce, 0x71, 0x3d, 0x59, 0xcd, 0xf5, 0x94, 0xce, 0x75, 0x76, 0xbb, 0x1a, 0xb9, - 0xdb, 0x75, 0x08, 0x76, 0x19, 0xd0, 0x7a, 0x69, 0xcc, 0x88, 0x95, 0xbd, 0x78, 0x86, 0xa1, 0x3d, - 0x0a, 0x45, 0x1d, 0x20, 0x4d, 0x6f, 0x14, 0x80, 0x5a, 0x55, 0x40, 0x27, 0x72, 0x16, 0xa0, 0x82, - 0xfd, 0xc4, 0x19, 0x5e, 0x2c, 0xdd, 0xb4, 0xd6, 0x09, 0x9e, 0x2a, 0xb9, 0xf1, 0x92, 0x3d, 0x8b, - 0x32, 0x1c, 0x9f, 0x5b, 0x95, 0xf7, 0x17, 0xfc, 0x61, 0xa3, 0xed, 0x5c, 0x4f, 0x04, 0x6f, 0xa2, - 0xd6, 0xfb, 0x9f, 0x09, 0x58, 0xc9, 0xdf, 0x2f, 0x25, 0x01, 0x5b, 0xa2, 0x04, 0x35, 0x6e, 0xc0, - 0x18, 0x0a, 0xf0, 0x55, 0x45, 0xb5, 0x1a, 0x22, 0xea, 0xef, 0x05, 0x41, 0x6f, 0x40, 0xf8, 0x5f, - 0x19, 0xcf, 0x47, 0xdd, 0x8d, 0x76, 0x1c, 0xf5, 0xfd, 0xde, 0x77, 0xdc, 0xc1, 0x88, 0x28, 0x8a, - 0x77, 0x0b, 0xa6, 0xbb, 0x6e, 0x87, 0x7c, 0xe4, 0x3c, 0x62, 0xf9, 0xa0, 0x93, 0x26, 0xa6, 0xc4, - 0xe8, 0x6b, 0x30, 0x1b, 0xc9, 0x30, 0x63, 0x9a, 0xcd, 0xbc, 0xa8, 0xcd, 0xdc, 0xf3, 0xe3, 0x9b, - 0x9b, 0x7c, 0x62, 0x46, 0x8d, 0xae, 0xc3, 0x04, 0x79, 0xd5, 0x9a, 0x19, 0x63, 0xb7, 0x09, 0xf2, - 0x0a, 0x3f, 0x84, 0x55, 0x93, 0x8c, 0xeb, 0xe9, 0xef, 0x71, 0x96, 0x9f, 0xbe, 0xf3, 0x9c, 0xc6, - 0x91, 0xdb, 0x89, 0x4f, 0x3e, 0x32, 0xf5, 0x68, 0x26, 0xaa, 0x8f, 0x66, 0x52, 0x3b, 0x1a, 0xfc, - 0x67, 0x0b, 0x5a, 0xe6, 0x3d, 0xeb, 0xd5, 0x64, 0xaf, 0x8b, 0xff, 0x78, 0xe4, 0x73, 0xf9, 0x39, - 0x89, 0x44, 0x1c, 0xaa, 0x0f, 0xa0, 0x2f, 0xc3, 0x72, 0x2f, 0x5f, 0xcf, 0xd8, 0x75, 0xe9, 0x0f, - 0x18, 0xce, 0x29, 0xc7, 0x34, 0xb4, 0xf9, 0xaf, 0x73, 0xc0, 0xff, 0x0a, 0x42, 0xdf, 0x80, 0xb9, - 0x4e, 0xf6, 0x2f, 0x09, 0x5a, 0x49, 0x71, 0xe5, 0x7e, 0xa8, 0xb1, 0x57, 0x4d, 0xdd, 0x34, 0x44, - 0xb7, 0x60, 0xf6, 0x87, 0x69, 0x41, 0x10, 0x2d, 0x0b, 0x22, 0xb5, 0xe0, 0x69, 0x9f, 0xd3, 0x3b, - 0xf9, 0xbc, 0xe3, 0xb4, 0xda, 0x24, 0xe7, 0xa9, 0x75, 0x2e, 0x39, 0x2f, 0x5f, 0x94, 0xda, 0x82, - 0x85, 0x9e, 0xfa, 0x0f, 0x08, 0x3a, 0x9f, 0xfe, 0xd1, 0x53, 0xf8, 0x1d, 0xc5, 0x6e, 0x99, 0x07, - 0x68, 0x88, 0x6e, 0xc3, 0x3c, 0x55, 0x7e, 0x8e, 0x40, 0x29, 0x6f, 0x85, 0x1f, 0x3a, 0xec, 0xf3, - 0xc6, 0x7e, 0x1a, 0xa2, 0xef, 0xc3, 0xf9, 0x9e, 0xf9, 0xcf, 0x04, 0x74, 0xa5, 0xb0, 0xab, 0xfe, - 0x67, 0x80, 0x8d, 0x4f, 0x22, 0xa1, 0x21, 0xea, 0xc2, 0x85, 0x5e, 0x59, 0x99, 0x1f, 0xbd, 0x9f, - 0x2d, 0x50, 0xfa, 0xff, 0x81, 0x7d, 0xf5, 0x64, 0x22, 0x1a, 0xa2, 0xc7, 0x80, 0x62, 0xad, 0xd6, - 0x8d, 0xd6, 0xc4, 0x5c, 0x63, 0x1d, 0xdf, 0x7e, 0xaf, 0x62, 0x94, 0x86, 0xa8, 0x03, 0xad, 0x5e, - 0x49, 0x09, 0x14, 0xe1, 0xdc, 0xef, 0x57, 0xc6, 0xf2, 0xaf, 0xfd, 0xfe, 0x89, 0x34, 0x1c, 0x77, - 0x4f, 0xab, 0xe1, 0x49, 0xdc, 0xc6, 0x12, 0xa4, 0xc4, 0x5d, 0x52, 0xfc, 0x7b, 0x02, 0xcb, 0x3d, - 0xbd, 0xa8, 0x85, 0xcc, 0xb3, 0xe4, 0x2d, 0xbb, 0x54, 0x35, 0x4c, 0x43, 0xb4, 0x0b, 0xcd, 0xa3, - 0x7c, 0x95, 0x06, 0xa5, 0xff, 0xa0, 0xe9, 0xc5, 0x2a, 0xdb, 0x2e, 0x1b, 0x92, 0x2c, 0x17, 0xca, - 0x1e, 0x2a, 0xcb, 0x7a, 0x25, 0x46, 0x65, 0xd9, 0x54, 0x2f, 0x39, 0x80, 0xa5, 0x7e, 0xb1, 0x12, - 0x80, 0x2e, 0xa6, 0xc9, 0x7b, 0x43, 0x69, 0xc3, 0x5e, 0x2b, 0x1f, 0xe4, 0xeb, 0xf5, 0x8a, 0x69, - 0x73, 0xb9, 0x9e, 0x29, 0xdf, 0x6f, 0xaf, 0x95, 0x0f, 0x72, 0x45, 0x55, 0xb3, 0x3b, 0x52, 0x51, - 0x0b, 0x19, 0x24, 0xfb, 0xbc, 0xb1, 0x9f, 0x86, 0xe8, 0x26, 0xcc, 0xa4, 0x7d, 0x08, 0x15, 0x88, - 0x92, 0x89, 0xcb, 0x5a, 0x1f, 0x37, 0x4d, 0xd2, 0x66, 0xa0, 0x22, 0x05, 0x55, 0x4d, 0x53, 0x3e, - 0x89, 0xfa, 0x58, 0xa6, 0xf6, 0x94, 0xac, 0x9f, 0x3c, 0x20, 0x63, 0xf6, 0x51, 0x1e, 0x90, 0x39, - 0x5d, 0x98, 0xdc, 0x9e, 0x42, 0x96, 0x4e, 0xde, 0x1e, 0x3d, 0x8b, 0x28, 0x6f, 0x8f, 0x21, 0xb1, - 0x97, 0x58, 0x79, 0x25, 0x15, 0x27, 0xad, 0x7c, 0x3e, 0xd9, 0x27, 0xad, 0x7c, 0x21, 0x6b, 0x97, - 0xb0, 0xa6, 0x27, 0x9b, 0x4a, 0xd4, 0x4d, 0x64, 0x39, 0x4a, 0xd4, 0x4d, 0x26, 0x1e, 0x9e, 0xc2, - 0x8a, 0x31, 0xdb, 0x82, 0x2e, 0x8b, 0x79, 0x65, 0x99, 0x21, 0x7b, 0xbd, 0x9a, 0x80, 0xc3, 0xd5, - 0xd3, 0x1d, 0x12, 0xae, 0x31, 0x29, 0x23, 0xe1, 0x96, 0xe4, 0x49, 0x6e, 0xc3, 0xbc, 0x9a, 0x8a, - 0x90, 0x57, 0xb1, 0x90, 0x0a, 0x91, 0x57, 0x51, 0xcb, 0x5b, 0xec, 0x42, 0xb3, 0x10, 0xfc, 0xca, - 0xa3, 0xd4, 0x03, 0x74, 0x79, 0x94, 0xa6, 0x78, 0xf9, 0x29, 0xac, 0x18, 0x83, 0x69, 0x29, 0xb9, - 0xb2, 0xb0, 0x5f, 0x4a, 0xae, 0x3c, 0x16, 0xbf, 0x05, 0xb3, 0xb2, 0x5b, 0xde, 0x7d, 0x35, 0x70, - 0x95, 0x77, 0x3f, 0x1f, 0x5f, 0xee, 0x42, 0xb3, 0xb0, 0xa8, 0xe4, 0x4e, 0x0f, 0x7e, 0x25, 0x77, - 0xa6, 0x48, 0xf5, 0x7b, 0xc5, 0x87, 0x60, 0x1a, 0xcc, 0xa1, 0xf5, 0x82, 0x3b, 0xd6, 0x82, 0x52, - 0xfb, 0xca, 0x09, 0x14, 0xdc, 0x75, 0x97, 0x44, 0x59, 0xaa, 0xeb, 0x2e, 0x09, 0xfd, 0x54, 0xd7, - 0x5d, 0x1a, 0xa8, 0x71, 0x5d, 0x29, 0xc4, 0x2f, 0xaa, 0xae, 0xe8, 0x41, 0x95, 0xaa, 0x2b, 0xa6, - 0xc0, 0xe7, 0x31, 0x20, 0xfd, 0x71, 0x2c, 0x97, 0x34, 0xc6, 0x26, 0x72, 0xc9, 0x92, 0x57, 0xf5, - 0x77, 0x95, 0x02, 0xac, 0xf2, 0x5c, 0x45, 0x45, 0x7f, 0x56, 0x78, 0x3f, 0xdb, 0x97, 0x2b, 0xc7, - 0x69, 0xb8, 0xd5, 0x7c, 0xba, 0xb0, 0xc1, 0x7f, 0x3e, 0xff, 0x90, 0x7d, 0x9f, 0x9f, 0x61, 0x6f, - 0xfe, 0x9b, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x8f, 0xec, 0x97, 0xb5, 0x98, 0x2e, 0x00, 0x00, +var fileDescriptor_group_264c9a69dcb70bac = []byte{ + // 2481 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x1a, 0x4d, 0x6f, 0x1c, 0x49, + 0x55, 0x6d, 0x7b, 0x62, 0xfb, 0xd9, 0xce, 0xd8, 0xe5, 0xd8, 0x99, 0x74, 0xbc, 0x8e, 0x53, 0x1b, + 0x96, 0x08, 0x82, 0x03, 0x8e, 0x14, 0x01, 0x8b, 0x08, 0xb1, 0x9d, 0xc4, 0x4e, 0x62, 0x9b, 0xf4, + 0x64, 0x41, 0x8a, 0x84, 0x42, 0x67, 0xa6, 0xdc, 0x0c, 0x9e, 0xe9, 0x6e, 0x77, 0xf5, 0x24, 0x81, + 0xcb, 0x8a, 0x0b, 0x12, 0x08, 0x69, 0xf9, 0xb8, 0x2e, 0x82, 0xe5, 0x02, 0x07, 0x90, 0x38, 0xc0, + 0x19, 0x71, 0xe7, 0x8c, 0xc4, 0x95, 0x3f, 0xc0, 0x5f, 0x40, 0x5d, 0x55, 0x5d, 0x5d, 0xdd, 0x55, + 0xdd, 0x9e, 0xb4, 0x93, 0xcd, 0x5e, 0x5a, 0xaa, 0x57, 0xaf, 0xaa, 0xde, 0x7b, 0xf5, 0x3e, 0xea, + 0xbd, 0xd7, 0xb0, 0xe0, 0x45, 0xc1, 0x30, 0xbc, 0xce, 0xbe, 0xeb, 0x61, 0x14, 0xc4, 0x01, 0x6a, + 0xb0, 0x81, 0x7d, 0xf9, 0x20, 0x24, 0xfe, 0xd3, 0xdd, 0xbd, 0xeb, 0xe1, 0x91, 0x77, 0x9d, 0xcd, + 0x5c, 0xa7, 0xdd, 0xa3, 0xa7, 0x2f, 0xe8, 0xf5, 0x17, 0x94, 0x63, 0xda, 0x9f, 0x2f, 0x47, 0x89, + 0xdc, 0x30, 0x24, 0x91, 0x40, 0xc4, 0xdf, 0x04, 0xd8, 0x0a, 0x06, 0x83, 0xc0, 0x77, 0x08, 0x0d, + 0x51, 0x0b, 0x26, 0xef, 0x44, 0xd1, 0x56, 0xd0, 0x25, 0x2d, 0x6b, 0xcd, 0xba, 0xda, 0x70, 0xd2, + 0x21, 0x5a, 0x86, 0x33, 0x77, 0xa2, 0x68, 0x8f, 0x7a, 0xad, 0xb1, 0x35, 0xeb, 0xea, 0xb4, 0x23, + 0x46, 0xf8, 0x3e, 0xa0, 0x7b, 0x09, 0x51, 0xb7, 0xbb, 0xdd, 0x3d, 0x32, 0x78, 0x46, 0xa2, 0x5d, + 0xff, 0x30, 0x48, 0xb0, 0x3f, 0xa0, 0x24, 0xda, 0xdd, 0x66, 0xdb, 0x4c, 0x3b, 0x62, 0x84, 0x56, + 0x60, 0xda, 0x09, 0xfa, 0xe4, 0x21, 0x79, 0x4e, 0xfa, 0x6c, 0xa3, 0x86, 0x93, 0x01, 0xf0, 0xff, + 0x2c, 0x38, 0xbb, 0x15, 0x11, 0x37, 0x26, 0x6c, 0x4b, 0x87, 0x1c, 0xa3, 0xdb, 0x70, 0x76, 0xd7, + 0xef, 0xc5, 0x7c, 0xeb, 0x87, 0x3d, 0x1a, 0xb7, 0xac, 0xb5, 0xf1, 0xab, 0x33, 0x1b, 0x17, 0xd6, + 0xb9, 0x5c, 0xf4, 0xb3, 0x9d, 0xc2, 0x02, 0xf4, 0x75, 0x98, 0x66, 0x58, 0xc9, 0x24, 0x3b, 0x73, + 0x66, 0x63, 0x65, 0x9d, 0x92, 0xe8, 0x39, 0x89, 0x9e, 0xba, 0x61, 0xef, 0x69, 0xe8, 0x46, 0xee, + 0x80, 0xae, 0x4b, 0x1c, 0x27, 0x43, 0x47, 0x6b, 0x30, 0x73, 0x10, 0x92, 0xc8, 0x8d, 0x7b, 0x81, + 0xbf, 0xbb, 0xdd, 0x1a, 0x67, 0xcc, 0xa8, 0x20, 0x64, 0xc3, 0xd4, 0x41, 0x28, 0x78, 0x9d, 0x60, + 0xd3, 0x72, 0xcc, 0x56, 0xbf, 0xf0, 0x49, 0x24, 0xa6, 0x1b, 0x62, 0x75, 0x06, 0xc2, 0x1f, 0x42, + 0x33, 0xc7, 0x70, 0x9d, 0x2b, 0xc8, 0x33, 0x38, 0xfe, 0x4a, 0x0c, 0xe2, 0x08, 0xe6, 0xef, 0x91, + 0x98, 0x8d, 0x29, 0x9b, 0x23, 0xc7, 0x09, 0xd9, 0x1c, 0x61, 0x5b, 0x0a, 0x7c, 0xda, 0x51, 0x41, + 0x45, 0xb1, 0x8c, 0x55, 0x8b, 0x65, 0x3c, 0x2f, 0x16, 0xfc, 0x33, 0x0b, 0x16, 0x0a, 0x87, 0xd6, + 0xe2, 0x7b, 0x13, 0xe6, 0x24, 0x23, 0x8c, 0xd2, 0x71, 0xa6, 0x1a, 0xd5, 0xbc, 0xe7, 0x97, 0xe0, + 0xdf, 0x5a, 0xd0, 0x6c, 0x0b, 0x5a, 0x52, 0xfe, 0x1f, 0x42, 0xd3, 0x4b, 0xc7, 0x77, 0x83, 0xa8, + 0x4d, 0x62, 0x46, 0xd1, 0xcc, 0x06, 0xae, 0xda, 0x99, 0x63, 0x3a, 0xc5, 0xa5, 0x39, 0x49, 0x8c, + 0x19, 0x14, 0xa4, 0x52, 0xbd, 0xf0, 0x1d, 0x98, 0xcf, 0x93, 0x47, 0x43, 0xf4, 0x15, 0xd5, 0x64, + 0x05, 0x69, 0x0b, 0xc2, 0x1e, 0xb2, 0x09, 0x47, 0x41, 0xc2, 0x3f, 0x06, 0x3b, 0x95, 0xf8, 0xed, + 0x30, 0xec, 0xf7, 0x3a, 0x6c, 0xff, 0x44, 0x02, 0x09, 0xc3, 0x2a, 0x89, 0x56, 0x35, 0x89, 0x86, + 0xab, 0x5e, 0x05, 0xb8, 0x1b, 0x05, 0x83, 0xdc, 0x65, 0x2b, 0x10, 0xfc, 0xb1, 0x05, 0x17, 0x4b, + 0x0f, 0xaf, 0x75, 0xf1, 0x0f, 0x60, 0x3e, 0x75, 0x10, 0x43, 0x42, 0x63, 0xe5, 0xee, 0x2f, 0x95, + 0xdd, 0x90, 0x40, 0x75, 0xb4, 0x85, 0x38, 0x86, 0x95, 0x7b, 0x24, 0x4e, 0x68, 0x75, 0xc8, 0xb1, + 0x41, 0x38, 0x65, 0xae, 0xec, 0x74, 0xf7, 0xfa, 0x3b, 0x0b, 0xde, 0xa9, 0x38, 0xb6, 0xd6, 0x2d, + 0x1b, 0xe5, 0x32, 0x56, 0x57, 0x2e, 0xff, 0xb0, 0x60, 0xe9, 0x71, 0xe4, 0xfa, 0xf4, 0x90, 0x44, + 0x6c, 0x92, 0xf9, 0xad, 0x44, 0x22, 0x2d, 0x98, 0x14, 0xce, 0x40, 0x88, 0x24, 0x1d, 0xa2, 0xf7, + 0xe0, 0xec, 0x41, 0xbf, 0xab, 0xfa, 0x3c, 0x2e, 0x99, 0x02, 0x34, 0xc1, 0xdb, 0x27, 0x2f, 0x54, + 0x3c, 0x2e, 0xa2, 0x02, 0xb4, 0x28, 0xc7, 0x89, 0x6a, 0x3f, 0xd3, 0x28, 0xf8, 0x99, 0x07, 0xb0, + 0x6c, 0x62, 0xa0, 0x9e, 0x05, 0xfd, 0xcb, 0x82, 0xd9, 0xfb, 0x41, 0xcf, 0x97, 0x91, 0xa9, 0x5c, + 0x0a, 0xab, 0x00, 0x0e, 0x39, 0xde, 0x23, 0x94, 0xba, 0x1e, 0x11, 0x12, 0x50, 0x20, 0x55, 0xbe, + 0x71, 0x04, 0x8e, 0x57, 0x01, 0x12, 0x3a, 0xda, 0xc1, 0x30, 0xea, 0x10, 0xc6, 0x73, 0xc3, 0x51, + 0x20, 0xe8, 0x0a, 0xcc, 0xed, 0xfa, 0xcf, 0x7b, 0xb1, 0x14, 0xed, 0x19, 0xb6, 0x47, 0x1e, 0x88, + 0x37, 0x61, 0x4e, 0xe1, 0xa6, 0x9e, 0x48, 0xfe, 0x93, 0x18, 0x76, 0xc1, 0xaa, 0x93, 0x89, 0xc0, + 0xa7, 0x44, 0xc4, 0x11, 0x95, 0x17, 0xab, 0xfa, 0xf6, 0x8a, 0x36, 0xa4, 0xc8, 0x77, 0x5c, 0x93, + 0xaf, 0xe2, 0x70, 0x26, 0x8a, 0x0e, 0x27, 0x99, 0xdf, 0x71, 0xfd, 0x6e, 0x9f, 0x74, 0x13, 0xd7, + 0xc1, 0xb5, 0x42, 0x81, 0x20, 0x0c, 0xb3, 0x7c, 0xe4, 0x10, 0x3a, 0xec, 0xc7, 0x4c, 0x40, 0x0d, + 0x27, 0x07, 0xc3, 0x8f, 0x60, 0xa5, 0x9c, 0xb5, 0x7a, 0xe2, 0x3a, 0x84, 0xd9, 0x47, 0xc3, 0x5e, + 0x3c, 0x82, 0x02, 0x9d, 0x2e, 0xbc, 0x6e, 0xc2, 0x9c, 0x72, 0x4e, 0x3d, 0x5a, 0x3f, 0xb1, 0x60, + 0x29, 0xf5, 0xd9, 0xd9, 0x53, 0xaa, 0x9a, 0xea, 0x53, 0x39, 0xc4, 0xc4, 0xcd, 0xde, 0xed, 0xf5, + 0x63, 0x12, 0xb1, 0x0b, 0x6d, 0x38, 0x62, 0x94, 0x9c, 0xb7, 0x4f, 0x5e, 0xc6, 0x6d, 0x72, 0x2c, + 0x74, 0x3d, 0x1d, 0xe2, 0x3f, 0x5b, 0xb0, 0x6c, 0xa2, 0xb1, 0x56, 0x48, 0xb9, 0x0b, 0x30, 0xc8, + 0xde, 0x98, 0x3c, 0x98, 0xbc, 0x57, 0xe6, 0x34, 0xf9, 0x69, 0x77, 0x87, 0xfd, 0x3e, 0x8b, 0xc9, + 0xca, 0xca, 0xe4, 0x64, 0x5f, 0x90, 0xcb, 0xf9, 0x48, 0x87, 0xf8, 0x97, 0x1a, 0xb9, 0xf2, 0xc1, + 0x55, 0xe9, 0x4a, 0x14, 0xb2, 0xc6, 0xd8, 0x4b, 0x4c, 0x3d, 0xee, 0x54, 0xae, 0x04, 0xff, 0xc6, + 0x82, 0xf3, 0x46, 0x92, 0xde, 0xa6, 0x08, 0xf1, 0x5f, 0x2d, 0x40, 0x0f, 0x7a, 0x9d, 0x23, 0x05, + 0xaf, 0x5a, 0x48, 0x5f, 0x80, 0xf9, 0x04, 0x9f, 0x74, 0x39, 0xe3, 0x8a, 0xa8, 0x34, 0x78, 0x42, + 0xbc, 0x43, 0x5c, 0x1a, 0xf8, 0x42, 0x5c, 0x62, 0x54, 0x14, 0x56, 0xa3, 0xda, 0xe4, 0xce, 0x14, + 0x4c, 0xee, 0x7d, 0x98, 0xde, 0xed, 0x6e, 0x70, 0xd7, 0x51, 0xfa, 0x60, 0x60, 0x47, 0x33, 0x87, + 0xc3, 0x13, 0x1f, 0x31, 0xc2, 0x1f, 0xc2, 0xa2, 0xc6, 0x6e, 0xad, 0x0b, 0xb8, 0x09, 0x73, 0x92, + 0x0a, 0xe5, 0x0e, 0xe6, 0x85, 0xa9, 0xcb, 0x39, 0x27, 0x8f, 0x86, 0x87, 0xcc, 0xd6, 0x93, 0x70, + 0x40, 0xba, 0x8c, 0x8a, 0xd4, 0xd6, 0xf3, 0x8e, 0xd6, 0xd2, 0x1c, 0xed, 0x1a, 0xcc, 0x04, 0xba, + 0x9f, 0x0a, 0x46, 0xf4, 0x53, 0x3f, 0xe5, 0x06, 0xa1, 0x9d, 0x7b, 0xaa, 0x1c, 0x68, 0xe4, 0x3c, + 0x20, 0x43, 0xc7, 0x7f, 0xb3, 0xe0, 0x1c, 0x8f, 0x8e, 0x09, 0x65, 0x8f, 0x03, 0xe9, 0xa1, 0x4f, + 0xf6, 0xc3, 0xe5, 0x41, 0x2a, 0x53, 0xb4, 0x89, 0x9c, 0xa2, 0x5d, 0x83, 0x05, 0x7e, 0x96, 0xaa, + 0xad, 0x0d, 0xa6, 0xad, 0xfa, 0x44, 0xa5, 0xd2, 0xfd, 0xc4, 0x82, 0x25, 0x03, 0xd9, 0x9f, 0xaa, + 0xea, 0x7c, 0x6c, 0xc1, 0x39, 0xf9, 0xb6, 0xef, 0xf7, 0x47, 0xb1, 0xd6, 0x53, 0x87, 0x89, 0x83, + 0xc3, 0x43, 0x4a, 0xe2, 0x34, 0x4c, 0xf0, 0x11, 0x3a, 0x07, 0x8d, 0xad, 0x60, 0xe8, 0xc7, 0x22, + 0x48, 0xf0, 0x01, 0xfe, 0x95, 0x12, 0xc6, 0x14, 0xf2, 0xde, 0xaa, 0x7b, 0xfb, 0x83, 0x05, 0x53, + 0x5b, 0x7b, 0x6d, 0x86, 0x96, 0x4f, 0xdd, 0xad, 0x57, 0xab, 0x4d, 0xac, 0x8b, 0xca, 0x8b, 0x7c, + 0x30, 0xef, 0xbb, 0x83, 0xf4, 0xb9, 0x69, 0x98, 0x49, 0xdc, 0x64, 0x1e, 0x2a, 0x25, 0xac, 0xc1, + 0x93, 0xc8, 0x30, 0x93, 0x0a, 0x2e, 0xb9, 0xce, 0x15, 0x41, 0x27, 0x3b, 0x82, 0x5f, 0x68, 0x06, + 0x40, 0xdb, 0x00, 0xdf, 0x76, 0xbd, 0x9e, 0xcf, 0x2e, 0x49, 0x94, 0x58, 0xae, 0x18, 0xd8, 0x10, + 0xe9, 0x45, 0x86, 0xeb, 0x28, 0xeb, 0x46, 0x48, 0x9a, 0x3e, 0xb1, 0x60, 0x36, 0xa3, 0x8a, 0x86, + 0xe8, 0x4b, 0x30, 0x9d, 0x8a, 0x92, 0x8a, 0xc2, 0x50, 0x33, 0x7d, 0xd8, 0x08, 0xb8, 0x93, 0x61, + 0xbc, 0x26, 0x3a, 0xa5, 0x2c, 0x86, 0x03, 0xca, 0xa8, 0x6c, 0x38, 0x19, 0x00, 0x3f, 0xcf, 0x48, + 0xa4, 0x89, 0xe4, 0xf2, 0x67, 0x5a, 0xaf, 0x47, 0x36, 0xba, 0x27, 0xc2, 0xbf, 0xb7, 0x60, 0x4e, + 0x39, 0xf8, 0x6d, 0x09, 0xc7, 0x86, 0xa9, 0x54, 0x16, 0x42, 0x36, 0x72, 0x8c, 0x0f, 0xb2, 0xb2, + 0xcf, 0x28, 0x8e, 0xe2, 0x64, 0x9e, 0x8f, 0x60, 0x89, 0x0f, 0x79, 0xf9, 0xac, 0x1d, 0xbb, 0xf1, + 0x90, 0x56, 0x6f, 0xba, 0x0c, 0x67, 0x38, 0x5a, 0x1a, 0x84, 0xf9, 0x68, 0x04, 0xe5, 0x6b, 0xc1, + 0xb2, 0xe9, 0x30, 0x1a, 0x26, 0x81, 0x0c, 0x89, 0x29, 0x96, 0xcf, 0x07, 0x7d, 0x72, 0x22, 0x11, + 0x39, 0x07, 0x68, 0xac, 0x8e, 0x8e, 0x17, 0xaa, 0xa3, 0x23, 0xbc, 0xe7, 0x96, 0x60, 0x51, 0xa3, + 0x83, 0x86, 0xf8, 0x21, 0x9c, 0xdd, 0x26, 0x7d, 0xa2, 0x54, 0x55, 0x4f, 0x23, 0xf4, 0x05, 0x68, + 0xe6, 0x76, 0xa3, 0x21, 0xde, 0x83, 0x66, 0x7a, 0xb1, 0x9b, 0x3f, 0xda, 0xed, 0x9e, 0xf6, 0x84, + 0x5b, 0x59, 0x4d, 0x92, 0x6f, 0x47, 0x43, 0xf4, 0xc5, 0xcc, 0x69, 0x0a, 0x23, 0xd2, 0x74, 0x59, + 0x22, 0xe0, 0xbf, 0x6b, 0xd9, 0x0b, 0xdd, 0xda, 0x6b, 0x9f, 0x18, 0x96, 0x0a, 0x3e, 0x54, 0x8e, + 0x0b, 0xa6, 0x31, 0xfe, 0x7a, 0x6c, 0xd8, 0x70, 0x7f, 0xff, 0xd4, 0x53, 0x04, 0x46, 0x37, 0x0d, + 0xd1, 0xb7, 0x60, 0x92, 0xc7, 0x90, 0xd4, 0x94, 0x47, 0x0d, 0x3d, 0xe9, 0x32, 0x74, 0xc7, 0x60, + 0xdf, 0x9f, 0x33, 0x32, 0xc1, 0xd3, 0xdc, 0x12, 0x2e, 0x56, 0x01, 0xf8, 0x09, 0x8a, 0xfb, 0x53, + 0x20, 0xf8, 0xd7, 0x16, 0xb4, 0x1c, 0x32, 0x08, 0x9e, 0x93, 0x57, 0x12, 0xff, 0x2a, 0x80, 0xf6, + 0x7a, 0x57, 0x20, 0xa7, 0x2b, 0xc4, 0xe3, 0x3d, 0xb8, 0x50, 0x42, 0x13, 0x7f, 0x0a, 0xd0, 0x61, + 0xa7, 0x43, 0x28, 0x15, 0xa5, 0xee, 0x74, 0x98, 0xd8, 0xe9, 0xa1, 0xdb, 0xeb, 0x93, 0xae, 0x20, + 0x48, 0x8c, 0xf0, 0x47, 0x16, 0x2c, 0xdd, 0xee, 0x76, 0x3f, 0x43, 0x0c, 0xde, 0x87, 0x65, 0x13, + 0x41, 0xb5, 0xb8, 0xeb, 0x41, 0x73, 0xbb, 0x47, 0x07, 0x3d, 0x4a, 0xa5, 0xbf, 0xb0, 0x61, 0x2a, + 0x28, 0x14, 0x88, 0x83, 0x70, 0xe4, 0x24, 0xa0, 0x05, 0x93, 0x5e, 0xfe, 0x91, 0x2c, 0x86, 0xf8, + 0x0e, 0xcc, 0xe7, 0x8f, 0xe2, 0xd5, 0x8a, 0xce, 0x28, 0xd5, 0x8a, 0x0c, 0x09, 0xff, 0xc9, 0x02, + 0xb4, 0x37, 0x8c, 0x49, 0x21, 0xb4, 0xbc, 0x21, 0xaa, 0x13, 0xc1, 0x0d, 0xd5, 0x6b, 0x10, 0x23, + 0x84, 0x61, 0x76, 0x30, 0x8c, 0x49, 0xb7, 0x4d, 0x3a, 0x81, 0xdf, 0xa5, 0xec, 0x29, 0x3a, 0xe7, + 0xe4, 0x60, 0x78, 0x07, 0x16, 0x35, 0x4a, 0xeb, 0x31, 0xfd, 0x73, 0x0b, 0x5a, 0x5b, 0xae, 0xdf, + 0x21, 0xfd, 0xb7, 0xcf, 0x3a, 0xde, 0x87, 0x0b, 0x25, 0xb4, 0xd4, 0x63, 0xee, 0x10, 0x66, 0xe5, + 0x4e, 0x6f, 0x52, 0x01, 0x37, 0x61, 0x4e, 0x39, 0xa7, 0x1e, 0xad, 0x7d, 0x40, 0x05, 0xde, 0xdf, + 0x24, 0xc5, 0x3b, 0xb0, 0xa8, 0x9d, 0x56, 0x8f, 0xee, 0x3f, 0x5a, 0x70, 0xa1, 0x9d, 0x8b, 0x36, + 0xfb, 0xbd, 0xce, 0x91, 0xef, 0x0e, 0xd2, 0xd7, 0x8b, 0x97, 0xf7, 0x64, 0x5e, 0x16, 0x29, 0x7d, + 0x81, 0x98, 0x46, 0xca, 0x74, 0x9c, 0xe3, 0x7a, 0xbc, 0x9a, 0xeb, 0x09, 0x9d, 0xeb, 0x4c, 0xbb, + 0x1a, 0x39, 0xed, 0x3a, 0x00, 0xbb, 0x8c, 0xd0, 0x7a, 0xe5, 0xcd, 0x88, 0xb5, 0xc3, 0x78, 0xe5, + 0xa1, 0x3d, 0x0c, 0x45, 0x7f, 0x20, 0x2d, 0x7b, 0x14, 0x08, 0xb5, 0xaa, 0x08, 0x1d, 0xcb, 0x79, + 0x80, 0x0a, 0xf6, 0xf1, 0x2f, 0x78, 0x1b, 0xcc, 0x7c, 0x68, 0xad, 0x1b, 0x3c, 0x55, 0xd1, 0xe3, + 0x05, 0x7b, 0x22, 0x65, 0x74, 0x7c, 0x6a, 0xdd, 0xdf, 0x8f, 0xf8, 0x23, 0x47, 0x3b, 0xb9, 0x9e, + 0x08, 0x5e, 0x47, 0x0f, 0xf8, 0xbf, 0x63, 0xb0, 0x94, 0xd7, 0x2f, 0xa5, 0x30, 0x5b, 0x62, 0x04, + 0x35, 0x34, 0x60, 0x04, 0x03, 0xf8, 0xaa, 0x62, 0x5a, 0x0d, 0x51, 0x0d, 0xf0, 0x82, 0xc0, 0xeb, + 0x13, 0xfe, 0xb7, 0xc6, 0xb3, 0xe1, 0xe1, 0x7a, 0x3b, 0x8e, 0x7a, 0xbe, 0xf7, 0x1d, 0xb7, 0x3f, + 0x24, 0x8a, 0xe1, 0xdd, 0x84, 0xc9, 0x43, 0xb7, 0x43, 0x3e, 0x70, 0x1e, 0xb2, 0x3a, 0xd1, 0x49, + 0x0b, 0x53, 0x64, 0xf4, 0x35, 0x98, 0x8e, 0x64, 0xca, 0x31, 0xc9, 0x56, 0x5e, 0xd4, 0x56, 0xee, + 0xfa, 0xf1, 0x8d, 0x0d, 0xbe, 0x30, 0xc3, 0x46, 0xd7, 0x60, 0x8c, 0xbc, 0x6c, 0x4d, 0x8d, 0x70, + 0xda, 0x18, 0x79, 0x89, 0x1f, 0xc0, 0xb2, 0x49, 0xc6, 0xf5, 0xec, 0xf7, 0x38, 0xab, 0x5b, 0xdf, + 0x7e, 0x46, 0xe3, 0xc8, 0xed, 0xc4, 0x27, 0x5f, 0x99, 0x7a, 0x35, 0x63, 0xd5, 0x57, 0x33, 0xae, + 0x5d, 0x0d, 0xfe, 0x8b, 0x05, 0x2d, 0xf3, 0x99, 0xf5, 0x7a, 0xb5, 0xd7, 0xc4, 0xff, 0x3d, 0xf2, + 0xe9, 0xfc, 0x8c, 0x44, 0x22, 0x27, 0xd5, 0x27, 0xd0, 0x97, 0x61, 0xd1, 0xcb, 0xf7, 0x39, 0x76, + 0x5c, 0xfa, 0x03, 0x46, 0xe7, 0x84, 0x63, 0x9a, 0xda, 0xf8, 0xf7, 0x39, 0xe0, 0x7f, 0x0b, 0xa1, + 0x6f, 0xc0, 0x4c, 0x27, 0xfb, 0xc7, 0x04, 0x2d, 0xa5, 0x74, 0xe5, 0x7e, 0xb4, 0xb1, 0x97, 0x4d, + 0x60, 0x1a, 0xa2, 0x9b, 0x30, 0xfd, 0xc3, 0xb4, 0x51, 0x88, 0x16, 0x05, 0x92, 0xda, 0x08, 0xb5, + 0xcf, 0xe9, 0x40, 0xbe, 0xee, 0x38, 0xed, 0x42, 0xc9, 0x75, 0x6a, 0xff, 0x4b, 0xae, 0xcb, 0x37, + 0xab, 0x36, 0x61, 0xce, 0x53, 0xff, 0x0d, 0x41, 0xe7, 0xd3, 0x3f, 0x7d, 0x0a, 0xbf, 0xa9, 0xd8, + 0x2d, 0xf3, 0x04, 0x0d, 0xd1, 0x2d, 0x98, 0xa5, 0xca, 0x4f, 0x13, 0x28, 0xe5, 0xad, 0xf0, 0xa3, + 0x87, 0x7d, 0xde, 0x08, 0xa7, 0x21, 0xfa, 0x3e, 0x9c, 0xf7, 0xcc, 0x7f, 0x2c, 0xa0, 0xcb, 0x85, + 0x53, 0xf5, 0x3f, 0x06, 0x6c, 0x7c, 0x12, 0x0a, 0x0d, 0xd1, 0x21, 0x5c, 0xf0, 0xca, 0xda, 0xff, + 0xe8, 0xdd, 0x6c, 0x83, 0xd2, 0xff, 0x12, 0xec, 0x2b, 0x27, 0x23, 0xd1, 0x10, 0x3d, 0x02, 0x14, + 0x6b, 0x3d, 0x70, 0xb4, 0x22, 0xd6, 0x1a, 0xfb, 0xfb, 0xf6, 0x3b, 0x15, 0xb3, 0x34, 0x44, 0x1d, + 0x68, 0x79, 0x25, 0xad, 0x51, 0x84, 0x73, 0xbf, 0x65, 0x19, 0xdb, 0xc2, 0xf6, 0xbb, 0x27, 0xe2, + 0x70, 0xba, 0x3d, 0xad, 0xb7, 0x27, 0xe9, 0x36, 0xb6, 0x26, 0x25, 0xdd, 0x25, 0x4d, 0xc1, 0xc7, + 0xb0, 0xe8, 0xe9, 0xcd, 0x2e, 0x64, 0x5e, 0x25, 0xb5, 0x6c, 0xb5, 0x6a, 0x9a, 0x86, 0x68, 0x07, + 0x9a, 0x47, 0xf9, 0xee, 0x0d, 0x4a, 0xff, 0x4d, 0xd3, 0x9b, 0x58, 0xb6, 0x5d, 0x36, 0x25, 0x59, + 0x2e, 0xb4, 0x43, 0x54, 0x96, 0xf5, 0x0e, 0x8d, 0xca, 0xb2, 0xa9, 0x8f, 0xb2, 0x0f, 0x0b, 0xbd, + 0x62, 0x87, 0x00, 0x5d, 0x4c, 0x8b, 0xfa, 0x86, 0x96, 0x87, 0xbd, 0x52, 0x3e, 0xc9, 0xf7, 0xf3, + 0x8a, 0xe5, 0x74, 0xb9, 0x9f, 0xa9, 0x0f, 0x60, 0xaf, 0x94, 0x4f, 0x72, 0x43, 0x55, 0x2b, 0x3d, + 0xd2, 0x50, 0x0b, 0xd5, 0x24, 0xfb, 0xbc, 0x11, 0x4e, 0x43, 0x74, 0x03, 0xa6, 0x52, 0x18, 0x42, + 0x05, 0xa4, 0x64, 0xe1, 0xa2, 0x06, 0xe3, 0xae, 0x49, 0xfa, 0x0c, 0x54, 0xc4, 0xa0, 0xaa, 0x6b, + 0xca, 0x17, 0x54, 0x1f, 0xc9, 0x32, 0x9f, 0x52, 0x01, 0x94, 0x17, 0x64, 0xac, 0x44, 0xca, 0x0b, + 0x32, 0x97, 0x0e, 0x13, 0xed, 0x29, 0x54, 0xec, 0xa4, 0xf6, 0xe8, 0x15, 0x45, 0xa9, 0x3d, 0x86, + 0x22, 0x5f, 0xe2, 0xe5, 0x95, 0xb2, 0x9c, 0xf4, 0xf2, 0xf9, 0xc2, 0x9f, 0xf4, 0xf2, 0x85, 0x0a, + 0x5e, 0xc2, 0x9a, 0x5e, 0x78, 0x2a, 0x31, 0x37, 0x51, 0xeb, 0x28, 0x31, 0x37, 0x59, 0x78, 0x78, + 0x02, 0x4b, 0xc6, 0x9a, 0x0b, 0xba, 0x24, 0xd6, 0x95, 0x55, 0x89, 0xec, 0xb5, 0x6a, 0x04, 0x4e, + 0xae, 0x5e, 0xee, 0x90, 0xe4, 0x1a, 0x4b, 0x33, 0x92, 0xdc, 0x92, 0x3a, 0xc9, 0x2d, 0x98, 0x55, + 0x4b, 0x11, 0x52, 0x15, 0x0b, 0xa5, 0x10, 0xa9, 0x8a, 0x5a, 0xdd, 0x62, 0x07, 0x9a, 0x85, 0xe4, + 0x57, 0x5e, 0xa5, 0x9e, 0xa0, 0xcb, 0xab, 0x34, 0xe5, 0xcb, 0x4f, 0x60, 0xc9, 0x98, 0x4c, 0x4b, + 0xc9, 0x95, 0xa5, 0xfd, 0x52, 0x72, 0xe5, 0xb9, 0xf8, 0x4d, 0x98, 0x96, 0x60, 0xa9, 0xfb, 0x6a, + 0xe2, 0x2a, 0x75, 0x3f, 0x9f, 0x5f, 0xee, 0x40, 0xb3, 0xb0, 0xa9, 0xe4, 0x4e, 0x4f, 0x7e, 0x25, + 0x77, 0xa6, 0x4c, 0xf5, 0x7b, 0xc5, 0x87, 0x60, 0x9a, 0xcc, 0xa1, 0xb5, 0x42, 0x38, 0xd6, 0x92, + 0x52, 0xfb, 0xf2, 0x09, 0x18, 0x3c, 0x74, 0x97, 0x64, 0x59, 0x6a, 0xe8, 0x2e, 0x49, 0xfd, 0xd4, + 0xd0, 0x5d, 0x9a, 0xa8, 0x71, 0x5b, 0x29, 0xe4, 0x2f, 0xaa, 0xad, 0xe8, 0x49, 0x95, 0x6a, 0x2b, + 0xa6, 0xc4, 0xe7, 0x11, 0x20, 0xfd, 0x71, 0x2c, 0xb7, 0x34, 0xe6, 0x26, 0x72, 0xcb, 0x92, 0x57, + 0xf5, 0x77, 0x95, 0xc6, 0xac, 0xf2, 0x5c, 0x45, 0xc5, 0x78, 0x56, 0x78, 0x3f, 0xdb, 0x97, 0x2a, + 0xe7, 0x69, 0xb8, 0xd9, 0x7c, 0x32, 0xb7, 0xce, 0x7f, 0x4a, 0x7f, 0x9f, 0x7d, 0x9f, 0x9d, 0x61, + 0x6f, 0xfe, 0x1b, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x6d, 0x1a, 0xe8, 0x0c, 0xb0, 0x2e, 0x00, + 0x00, } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 3d3158409..96fd1648f 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -215,8 +215,8 @@ message GetGroupAllMemberResp { message CMSGroup { server_api_params.GroupInfo GroupInfo = 1; - string GroupMasterName = 2; - string GroupMasterId = 3; + string GroupOwnerUserName = 2; + string GroupOwnerUserID = 3; } message GetGroupReq { @@ -243,12 +243,12 @@ message GetGroupsResp { } message GetGroupMemberReq { - string GroupId = 1; + string GroupID = 1; string OperationID = 2; } message OperateGroupStatusReq { - string GroupId = 1; + string GroupID = 1; int32 Status = 2; string OperationID = 3; } @@ -258,8 +258,8 @@ message OperateGroupStatusResp { } message OperateUserRoleReq { - string GroupId = 1; - string UserId = 2; + string GroupID = 1; + string UserID = 2; int32 RoleLevel = 3; string OperationID = 4; } @@ -269,7 +269,7 @@ message OperateUserRoleResp { } message DeleteGroupReq { - string GroupId = 1; + string GroupID = 1; string OperationID = 2; } @@ -277,17 +277,17 @@ message DeleteGroupResp { } -message GetGroupByIdReq { - string GroupId = 1; +message GetGroupByIDReq { + string GroupID = 1; string OperationID = 2; } -message GetGroupByIdResp { +message GetGroupByIDResp { CMSGroup CMSGroup = 1; } message GetGroupMembersCMSReq { - string GroupId = 1; + string GroupID = 1; string UserName = 2; server_api_params.RequestPagination Pagination = 3; string OperationID = 4; @@ -300,10 +300,10 @@ message GetGroupMembersCMSResp { } message RemoveGroupMembersCMSReq { - string GroupId = 1; - repeated string UserIds = 2; + string GroupID = 1; + repeated string UserIDList = 2; string OperationID = 3; - string OpUserId = 4; + string OpUserID = 4; } message RemoveGroupMembersCMSResp { @@ -312,10 +312,10 @@ message RemoveGroupMembersCMSResp { } message AddGroupMembersCMSReq { - string GroupId = 1; - repeated string UserIds = 2; - string OperationId = 3; - string OpUserId = 4; + string GroupID = 1; + repeated string UserIDList = 2; + string OperationID = 3; + string OpUserID = 4; } message AddGroupMembersCMSResp { @@ -463,7 +463,7 @@ service group{ rpc inviteUserToGroup(InviteUserToGroupReq) returns (InviteUserToGroupResp); rpc getGroupAllMember(GetGroupAllMemberReq) returns(GetGroupAllMemberResp); - rpc GetGroupById(GetGroupByIdReq) returns(GetGroupByIdResp); + rpc GetGroupById(GetGroupByIDReq) returns(GetGroupByIDResp); rpc GetGroup(GetGroupReq) returns(GetGroupResp); rpc GetGroups(GetGroupsReq) returns(GetGroupsResp); rpc OperateGroupStatus(OperateGroupStatusReq) returns(OperateGroupStatusResp); From a2ddf3567cef39c9f236610b92a2e435be14d0bd Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 11 Aug 2022 16:51:21 +0800 Subject: [PATCH 108/230] callback kickoff --- pkg/base_info/auth_api_struct.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/base_info/auth_api_struct.go b/pkg/base_info/auth_api_struct.go index fea71aa58..4f26084f5 100644 --- a/pkg/base_info/auth_api_struct.go +++ b/pkg/base_info/auth_api_struct.go @@ -30,7 +30,7 @@ type UserTokenReq struct { Secret string `json:"secret" binding:"required,max=32"` Platform int32 `json:"platform" binding:"required,min=1,max=8"` UserID string `json:"userID" binding:"required,min=1,max=64"` - LoginIp string `json:"loginIp" binding:"required,max=15"` + LoginIp string `json:"loginIp"` OperationID string `json:"operationID" binding:"required"` } From c2bd1d0d839a925c9de1ee3c09a35b33a5b811a6 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 11 Aug 2022 19:47:59 +0800 Subject: [PATCH 109/230] callback kickoff --- internal/cms_api/group/group.go | 235 ++-------- internal/cms_api/router.go | 7 +- internal/rpc/group/group.go | 178 +++----- pkg/cms_api_struct/group.go | 74 +-- pkg/common/log/logrus.go | 16 +- pkg/proto/group/group.pb.go | 775 +++++++++++--------------------- pkg/proto/group/group.proto | 23 +- 7 files changed, 422 insertions(+), 886 deletions(-) diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index 9cdc94790..d486dbaf5 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -22,7 +22,7 @@ func GetGroupByID(c *gin.Context) { var ( req cms_api_struct.GetGroupByIDRequest resp cms_api_struct.GetGroupByIDResponse - reqPb pbGroup.GetGroupByIdReq + reqPb pbGroup.GetGroupByIDReq ) if err := c.ShouldBindQuery(&req); err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) @@ -46,7 +46,10 @@ func GetGroupByID(c *gin.Context) { openIMHttp.RespHttp200(c, err, nil) return } - utils.CopyStructFields(&resp, respPb) + utils.CopyStructFields(&resp, respPb.CMSGroup.GroupInfo) + resp.GroupOwnerID = respPb.CMSGroup.GroupOwnerUserID + resp.GroupOwnerName = respPb.CMSGroup.GroupOwnerUserName + log.NewInfo("", utils.GetSelfFuncName(), "req: ", resp) openIMHttp.RespHttp200(c, constant.OK, resp) } @@ -81,16 +84,11 @@ func GetGroups(c *gin.Context) { return } for _, v := range respPb.CMSGroups { - resp.Groups = append(resp.Groups, cms_api_struct.GroupResponse{ - GroupName: v.GroupInfo.GroupName, - GroupID: v.GroupInfo.GroupID, - GroupMasterName: v.GroupMasterName, - GroupMasterId: v.GroupMasterId, - CreateTime: (utils.UnixSecondToTime(int64(v.GroupInfo.CreateTime))).String(), - IsBanChat: constant.GroupIsBanChat(v.GroupInfo.Status), - IsBanPrivateChat: false, - ProfilePhoto: v.GroupInfo.FaceURL, - }) + groupResp := cms_api_struct.GroupResponse{} + utils.CopyStructFields(&groupResp, v.GroupInfo) + groupResp.GroupOwnerName = v.GroupOwnerUserName + groupResp.GroupOwnerID = v.GroupOwnerUserID + resp.Groups = append(resp.Groups, groupResp) } resp.GroupNums = int(respPb.GroupNum) resp.CurrentPage = int(respPb.Pagination.PageNumber) @@ -130,16 +128,11 @@ func GetGroupByName(c *gin.Context) { return } for _, v := range respPb.CMSGroups { - resp.Groups = append(resp.Groups, cms_api_struct.GroupResponse{ - GroupName: v.GroupInfo.GroupName, - GroupID: v.GroupInfo.GroupID, - GroupMasterName: v.GroupMasterName, - GroupMasterId: v.GroupMasterId, - CreateTime: (utils.UnixSecondToTime(int64(v.GroupInfo.CreateTime))).String(), - IsBanChat: constant.GroupIsBanChat(v.GroupInfo.Status), - IsBanPrivateChat: false, - ProfilePhoto: v.GroupInfo.FaceURL, - }) + groupResp := cms_api_struct.GroupResponse{} + utils.CopyStructFields(&groupResp, v.GroupInfo) + groupResp.GroupOwnerName = v.GroupOwnerUserName + groupResp.GroupOwnerID = v.GroupOwnerUserID + resp.Groups = append(resp.Groups, groupResp) } resp.CurrentPage = int(respPb.Pagination.PageNumber) resp.ShowNumber = int(respPb.Pagination.ShowNumber) @@ -189,133 +182,6 @@ func CreateGroup(c *gin.Context) { openIMHttp.RespHttp200(c, constant.OK, nil) } -func BanGroupChat(c *gin.Context) { - var ( - req cms_api_struct.BanGroupChatRequest - reqPb pbGroup.OperateGroupStatusReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupId = req.GroupId - reqPb.Status = constant.GroupBanChat - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - - client := pbGroup.NewGroupClient(etcdConn) - _, err := client.OperateGroupStatus(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BanGroupChat failed ", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) - -} - -func BanPrivateChat(c *gin.Context) { - var ( - req cms_api_struct.BanPrivateChatRequest - reqPb pbGroup.OperateGroupStatusReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupId = req.GroupId - reqPb.Status = constant.GroupBanPrivateChat - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - _, err := client.OperateGroupStatus(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "OperateGroupStatus failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} - -func OpenGroupChat(c *gin.Context) { - var ( - req cms_api_struct.BanPrivateChatRequest - reqPb pbGroup.OperateGroupStatusReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupId = req.GroupId - reqPb.Status = constant.GroupOk - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - _, err := client.OperateGroupStatus(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "OperateGroupStatus failed ", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} - -func OpenPrivateChat(c *gin.Context) { - var ( - req cms_api_struct.BanPrivateChatRequest - reqPb pbGroup.OperateGroupStatusReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "OpenPrivateChat failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupId = req.GroupId - reqPb.Status = constant.GroupOk - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - - client := pbGroup.NewGroupClient(etcdConn) - _, err := client.OperateGroupStatus(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "OperateGroupStatus failed ", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} - func GetGroupMembers(c *gin.Context) { var ( req cms_api_struct.GetGroupMembersRequest @@ -333,7 +199,7 @@ func GetGroupMembers(c *gin.Context) { PageNumber: int32(req.PageNumber), ShowNumber: int32(req.ShowNumber), } - reqPb.GroupId = req.GroupId + reqPb.GroupID = req.GroupID reqPb.UserName = req.UserName etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { @@ -355,12 +221,7 @@ func GetGroupMembers(c *gin.Context) { } resp.MemberNums = int(respPb.MemberNums) for _, groupMembers := range respPb.Members { - resp.GroupMembers = append(resp.GroupMembers, cms_api_struct.GroupMemberResponse{ - MemberPosition: int(groupMembers.RoleLevel), - MemberNickName: groupMembers.Nickname, - MemberId: groupMembers.UserID, - JoinTime: utils.UnixSecondToTime(int64(groupMembers.JoinTime)).String(), - }) + resp.GroupMembers = append(resp.GroupMembers, *groupMembers) } log.NewInfo("", utils.GetSelfFuncName(), "req: ", resp) openIMHttp.RespHttp200(c, constant.OK, resp) @@ -373,25 +234,25 @@ func AddGroupMembers(c *gin.Context) { reqPb pbGroup.AddGroupMembersCMSReq ) if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationId, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } - reqPb.OperationId = utils.OperationIDGenerator() + reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo("", utils.GetSelfFuncName(), "req: ", req) - reqPb.UserIds = req.Members - reqPb.GroupId = req.GroupId - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationId) + reqPb.UserIDList = req.Members + reqPb.GroupID = req.GroupId + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationId + "getcdv3.GetConn == nil" - log.NewError(reqPb.OperationId, errMsg) + errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.AddGroupMembersCMS(context.Background(), &reqPb) if err != nil { - log.NewError(reqPb.OperationId, utils.GetSelfFuncName(), "AddGroupMembersCMS failed", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "AddGroupMembersCMS failed", err.Error()) openIMHttp.RespHttp200(c, err, nil) return } @@ -414,8 +275,8 @@ func RemoveGroupMembers(c *gin.Context) { } reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.UserIds = req.Members - reqPb.GroupId = req.GroupId + reqPb.UserIDList = req.Members + reqPb.GroupID = req.GroupId etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" @@ -436,38 +297,7 @@ func RemoveGroupMembers(c *gin.Context) { openIMHttp.RespHttp200(c, constant.OK, resp) } -func DeleteGroup(c *gin.Context) { - var ( - req cms_api_struct.DeleteGroupRequest - _ cms_api_struct.DeleteGroupResponse - reqPb pbGroup.DeleteGroupReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupId = req.GroupId - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - _, err := client.DeleteGroup(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "DeleteGroup failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} - -func SetGroupMaster(c *gin.Context) { +func SetGroupOwner(c *gin.Context) { var ( req cms_api_struct.SetGroupMasterRequest _ cms_api_struct.SetGroupMasterResponse @@ -480,8 +310,8 @@ func SetGroupMaster(c *gin.Context) { } reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupId = req.GroupId - reqPb.UserId = req.UserId + reqPb.GroupID = req.GroupId + reqPb.UserID = req.UserId reqPb.RoleLevel = constant.GroupOwner etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { @@ -513,8 +343,8 @@ func SetGroupOrdinaryUsers(c *gin.Context) { } reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupId = req.GroupId - reqPb.UserId = req.UserId + reqPb.GroupID = req.GroupId + reqPb.UserID = req.UserId reqPb.RoleLevel = constant.GroupOrdinaryUsers etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { @@ -553,7 +383,6 @@ func AlterGroupInfo(c *gin.Context) { Introduction: req.Introduction, Notification: req.Notification, FaceURL: req.ProfilePhoto, - // GroupType: int32(req.GroupType), } etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 93a689ec9..058cd26ad 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -54,13 +54,8 @@ func NewGinRouter() *gin.Engine { groupRouterGroup.POST("/create_group", group.CreateGroup) groupRouterGroup.POST("/add_members", group.AddGroupMembers) groupRouterGroup.POST("/remove_members", group.RemoveGroupMembers) - groupRouterGroup.POST("/ban_group_private_chat", group.BanPrivateChat) - groupRouterGroup.POST("/open_group_private_chat", group.OpenPrivateChat) - groupRouterGroup.POST("/ban_group_chat", group.BanGroupChat) - groupRouterGroup.POST("/open_group_chat", group.OpenGroupChat) - groupRouterGroup.POST("/delete_group", group.DeleteGroup) groupRouterGroup.POST("/get_members_in_group", group.GetGroupMembers) - groupRouterGroup.POST("/set_group_master", group.SetGroupMaster) + groupRouterGroup.POST("/set_group_master", group.SetGroupOwner) groupRouterGroup.POST("/set_group_ordinary_user", group.SetGroupOrdinaryUsers) groupRouterGroup.POST("/alter_group_info", group.AlterGroupInfo) } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 894c859c1..fd180290f 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1333,35 +1333,32 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe } -func (s *groupServer) GetGroupById(_ context.Context, req *pbGroup.GetGroupByIdReq) (*pbGroup.GetGroupByIdResp, error) { +func (s *groupServer) GetGroupByID(_ context.Context, req *pbGroup.GetGroupByIDReq) (*pbGroup.GetGroupByIDResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbGroup.GetGroupByIdResp{CMSGroup: &pbGroup.CMSGroup{ + resp := &pbGroup.GetGroupByIDResp{CMSGroup: &pbGroup.CMSGroup{ GroupInfo: &open_im_sdk.GroupInfo{}, }} - group, err := imdb.GetGroupById(req.GroupId) + group, err := imdb.GetGroupInfoByGroupID(req.GroupID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupById error", err.Error()) return resp, http.WrapError(constant.ErrDB) } - resp.CMSGroup.GroupInfo = &open_im_sdk.GroupInfo{ - GroupID: group.GroupID, - GroupName: group.GroupName, - FaceURL: group.FaceURL, - OwnerUserID: group.CreatorUserID, - MemberCount: 0, - Status: group.Status, - CreatorUserID: group.CreatorUserID, - GroupType: group.GroupType, - CreateTime: uint32(group.CreateTime.Unix()), - } + utils.CopyStructFields(resp.CMSGroup.GroupInfo, group) groupMember, err := imdb.GetGroupMaster(group.GroupID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster", err.Error()) return resp, http.WrapError(constant.ErrDB) } - resp.CMSGroup.GroupMasterName = groupMember.Nickname - resp.CMSGroup.GroupMasterId = groupMember.UserID + groupMemberNum, err := imdb.GetGroupMemberNumByGroupID(req.GroupID) + if err == nil { + resp.CMSGroup.GroupInfo.MemberCount = uint32(groupMemberNum) + } else { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + } + resp.CMSGroup.GroupOwnerUserName = groupMember.Nickname + resp.CMSGroup.GroupOwnerUserID = groupMember.UserID resp.CMSGroup.GroupInfo.CreatorUserID = group.CreatorUserID + utils.CopyStructFields(resp.CMSGroup.GroupInfo, group) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil } @@ -1373,12 +1370,13 @@ func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pb } groups, err := imdb.GetGroupsByName(req.GroupName, req.Pagination.PageNumber, req.Pagination.ShowNumber) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsByName error", req.String()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsByName error", req.String(), req.GroupName, req.Pagination.PageNumber, req.Pagination.ShowNumber) return resp, http.WrapError(constant.ErrDB) } + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "groups", groups) nums, err := imdb.GetGroupsCountNum(db.Group{GroupName: req.GroupName}) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsCountNum error", err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsCountNum error", err.Error(), req.GroupName) return resp, http.WrapError(constant.ErrDB) } resp.GroupNums = nums @@ -1387,24 +1385,16 @@ func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pb ShowNumber: req.Pagination.ShowNumber, } for _, v := range groups { + group := &pbGroup.CMSGroup{GroupInfo: &open_im_sdk.GroupInfo{}} + utils.CopyStructFields(group.GroupInfo, v) groupMember, err := imdb.GetGroupMaster(v.GroupID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster error", err.Error()) continue } - resp.CMSGroups = append(resp.CMSGroups, &pbGroup.CMSGroup{ - GroupInfo: &open_im_sdk.GroupInfo{ - GroupID: v.GroupID, - GroupName: v.GroupName, - FaceURL: v.FaceURL, - OwnerUserID: v.CreatorUserID, - Status: v.Status, - CreatorUserID: v.CreatorUserID, - CreateTime: uint32(v.CreateTime.Unix()), - }, - GroupMasterName: groupMember.Nickname, - GroupMasterId: groupMember.UserID, - }) + group.GroupOwnerUserID = groupMember.GroupID + group.GroupOwnerUserName = groupMember.Nickname + resp.CMSGroups = append(resp.CMSGroups, group) } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil @@ -1427,57 +1417,29 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsCountNum", err.Error()) return resp, http.WrapError(constant.ErrDB) } - resp.GroupNum = int32(groupsCountNum) + resp.GroupNum = groupsCountNum resp.Pagination.PageNumber = req.Pagination.PageNumber resp.Pagination.ShowNumber = req.Pagination.ShowNumber for _, v := range groups { + group := &pbGroup.CMSGroup{GroupInfo: &open_im_sdk.GroupInfo{}} + utils.CopyStructFields(group.GroupInfo, v) groupMember, err := imdb.GetGroupMaster(v.GroupID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster failed", err.Error(), v) continue } - resp.CMSGroups = append(resp.CMSGroups, &pbGroup.CMSGroup{ - GroupInfo: &open_im_sdk.GroupInfo{ - GroupID: v.GroupID, - GroupName: v.GroupName, - FaceURL: v.FaceURL, - OwnerUserID: v.CreatorUserID, - Status: v.Status, - CreatorUserID: v.CreatorUserID, - CreateTime: uint32(v.CreateTime.Unix()), - }, - GroupMasterId: groupMember.UserID, - GroupMasterName: groupMember.Nickname, - }) + group.GroupOwnerUserID = groupMember.GroupID + group.GroupOwnerUserName = groupMember.Nickname + resp.CMSGroups = append(resp.CMSGroups, group) } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetGroups ", resp.String()) return resp, nil } -func (s *groupServer) OperateGroupStatus(_ context.Context, req *pbGroup.OperateGroupStatusReq) (*pbGroup.OperateGroupStatusResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) - resp := &pbGroup.OperateGroupStatusResp{} - if err := imdb.OperateGroupStatus(req.GroupId, req.Status); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "OperateGroupStatus", err.Error()) - return resp, http.WrapError(constant.ErrDB) - } - return resp, nil -} - -func (s *groupServer) DeleteGroup(_ context.Context, req *pbGroup.DeleteGroupReq) (*pbGroup.DeleteGroupResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) - resp := &pbGroup.DeleteGroupResp{} - if err := imdb.DeleteGroup(req.GroupId); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "DeleteGroup error", err.Error()) - return resp, http.WrapError(constant.ErrDB) - } - return resp, nil -} - func (s *groupServer) OperateUserRole(_ context.Context, req *pbGroup.OperateUserRoleReq) (*pbGroup.OperateUserRoleResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) resp := &pbGroup.OperateUserRoleResp{} - oldOwnerUserID, err := imdb.GetGroupMaster(req.GroupId) + oldOwnerUserID, err := imdb.GetGroupMaster(req.GroupID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster failed", err.Error()) return resp, http.WrapError(constant.ErrDB) @@ -1491,8 +1453,8 @@ func (s *groupServer) OperateUserRole(_ context.Context, req *pbGroup.OperateUse client := pbGroup.NewGroupClient(etcdConn) var reqPb pbGroup.TransferGroupOwnerReq reqPb.OperationID = req.OperationID - reqPb.NewOwnerUserID = req.UserId - reqPb.GroupID = req.GroupId + reqPb.NewOwnerUserID = req.UserID + reqPb.GroupID = req.GroupID reqPb.OpUserID = "cms admin" reqPb.OldOwnerUserID = oldOwnerUserID.UserID reply, err := client.TransferGroupOwner(context.Background(), &reqPb) @@ -1508,12 +1470,12 @@ func (s *groupServer) OperateUserRole(_ context.Context, req *pbGroup.OperateUse func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGroupMembersCMSReq) (*pbGroup.GetGroupMembersCMSResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) resp := &pbGroup.GetGroupMembersCMSResp{} - groupMembers, err := imdb.GetGroupMembersByGroupIdCMS(req.GroupId, req.UserName, req.Pagination.ShowNumber, req.Pagination.PageNumber) + groupMembers, err := imdb.GetGroupMembersByGroupIdCMS(req.GroupID, req.UserName, req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMembersByGroupIdCMS Error", err.Error()) return resp, http.WrapError(constant.ErrDB) } - groupMembersCount, err := imdb.GetGroupMembersCount(req.GroupId, req.UserName) + groupMembersCount, err := imdb.GetGroupMembersCount(req.GroupID, req.UserName) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMembersCMS Error", err.Error()) return resp, http.WrapError(constant.ErrDB) @@ -1521,15 +1483,9 @@ func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGrou log.NewInfo(req.OperationID, groupMembersCount) resp.MemberNums = int32(groupMembersCount) for _, groupMember := range groupMembers { - resp.Members = append(resp.Members, &open_im_sdk.GroupMemberFullInfo{ - GroupID: req.GroupId, - UserID: groupMember.UserID, - RoleLevel: groupMember.RoleLevel, - JoinTime: int32(groupMember.JoinTime.Unix()), - Nickname: groupMember.Nickname, - FaceURL: groupMember.FaceURL, - JoinSource: groupMember.JoinSource, - }) + member := open_im_sdk.GroupMemberFullInfo{} + utils.CopyStructFields(&member, groupMember) + resp.Members = append(resp.Members, &member) } resp.Pagination = &open_im_sdk.ResponsePagination{ CurrentPage: req.Pagination.PageNumber, @@ -1542,8 +1498,8 @@ func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGrou func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.RemoveGroupMembersCMSReq) (*pbGroup.RemoveGroupMembersCMSResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) resp := &pbGroup.RemoveGroupMembersCMSResp{} - for _, userId := range req.UserIds { - err := imdb.RemoveGroupMember(req.GroupId, userId) + for _, userId := range req.UserIDList { + err := imdb.RemoveGroupMember(req.GroupID, userId) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) resp.Failed = append(resp.Failed, userId) @@ -1552,20 +1508,20 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo } } reqKick := &pbGroup.KickGroupMemberReq{ - GroupID: req.GroupId, + GroupID: req.GroupID, KickedUserIDList: resp.Success, Reason: "admin kick", OperationID: req.OperationID, - OpUserID: req.OpUserId, + OpUserID: req.OpUserID, } var reqPb pbUser.SetConversationReq var c pbUser.Conversation for _, v := range resp.Success { reqPb.OperationID = req.OperationID c.OwnerUserID = v - c.ConversationID = utils.GetConversationIDBySessionType(req.GroupId, constant.GroupChatType) + c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType) c.ConversationType = constant.GroupChatType - c.GroupID = req.GroupId + c.GroupID = req.GroupID c.IsNotInGroup = true reqPb.Conversation = &c etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) @@ -1591,7 +1547,7 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo } cacheClient := pbCache.NewCacheClient(etcdConn) cacheResp, err := cacheClient.DelGroupMemberIDListFromCache(context.Background(), &pbCache.DelGroupMemberIDListFromCacheReq{ - GroupID: req.GroupId, + GroupID: req.GroupID, OperationID: req.OperationID, }) if err != nil { @@ -1602,16 +1558,16 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) return resp, http.WrapError(constant.ErrDB) } - if err := rocksCache.DelGroupMemberListHashFromCache(req.GroupId); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupId) + if err := rocksCache.DelGroupMemberListHashFromCache(req.GroupID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) } - if err := rocksCache.DelGroupMemberNumFromCache(req.GroupId); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupId) + if err := rocksCache.DelGroupMemberNumFromCache(req.GroupID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) } for _, userID := range resp.Success { - if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupId, userID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupId, userID) + if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, userID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID, userID) } } @@ -1621,22 +1577,22 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo } func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGroupMembersCMSReq) (*pbGroup.AddGroupMembersCMSResp, error) { - log.NewInfo(req.OperationId, utils.GetSelfFuncName(), "args:", req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) resp := &pbGroup.AddGroupMembersCMSResp{} - for _, userId := range req.UserIds { - if isExist := imdb.IsExistGroupMember(req.GroupId, userId); isExist { - log.NewError(req.OperationId, utils.GetSelfFuncName(), "user is exist in group", userId, req.GroupId) + for _, userId := range req.UserIDList { + if isExist := imdb.IsExistGroupMember(req.GroupID, userId); isExist { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "user is exist in group", userId, req.GroupID) resp.Failed = append(resp.Failed, userId) continue } user, err := imdb.GetUserByUserID(userId) if err != nil { - log.NewError(req.OperationId, utils.GetSelfFuncName(), "GetUserByUserID", err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserByUserID", err.Error()) resp.Failed = append(resp.Failed, userId) continue } groupMember := db.GroupMember{ - GroupID: req.GroupId, + GroupID: req.GroupID, UserID: userId, Nickname: user.Nickname, FaceURL: "", @@ -1647,40 +1603,40 @@ func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGrou Ex: "", } if err := imdb.InsertIntoGroupMember(groupMember); err != nil { - log.NewError(req.OperationId, utils.GetSelfFuncName(), "InsertIntoGroupMember failed", req.String()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "InsertIntoGroupMember failed", req.String()) resp.Failed = append(resp.Failed, userId) } else { resp.Success = append(resp.Success, userId) } } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationId) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationId + "getcdv3.GetConn == nil" - log.NewError(req.OperationId, errMsg) + errMsg := req.OperationID + "getcdv3.GetConn == nil" + log.NewError(req.OperationID, errMsg) return resp, http.WrapError(constant.ErrDB) } cacheClient := pbCache.NewCacheClient(etcdConn) cacheResp, err := cacheClient.DelGroupMemberIDListFromCache(context.Background(), &pbCache.DelGroupMemberIDListFromCacheReq{ - GroupID: req.GroupId, - OperationID: req.OperationId, + GroupID: req.GroupID, + OperationID: req.OperationID, }) if err != nil { - log.NewError(req.OperationId, "DelGroupMemberIDListFromCache rpc call failed ", err.Error()) + log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc call failed ", err.Error()) return resp, http.WrapError(constant.ErrDB) } if cacheResp.CommonResp.ErrCode != 0 { - log.NewError(req.OperationId, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) + log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) return resp, http.WrapError(constant.ErrDB) } - if err := rocksCache.DelGroupMemberListHashFromCache(req.GroupId); err != nil { - log.NewError(req.OperationId, utils.GetSelfFuncName(), err.Error(), req.GroupId) + if err := rocksCache.DelGroupMemberListHashFromCache(req.GroupID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) } - if err := rocksCache.DelGroupMemberNumFromCache(req.GroupId); err != nil { - log.NewError(req.OperationId, utils.GetSelfFuncName(), err.Error(), req.GroupId) + if err := rocksCache.DelGroupMemberNumFromCache(req.GroupID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) } - chat.MemberInvitedNotification(req.OperationId, req.GroupId, req.OpUserId, "admin add you to group", resp.Success) + chat.MemberInvitedNotification(req.OperationID, req.GroupID, req.OpUserID, "admin add you to group", resp.Success) return resp, nil } diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index fdd81118f..903a52d9b 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -1,11 +1,30 @@ package cms_api_struct -import server_api_params "Open_IM/pkg/proto/sdk_ws" +import ( + server_api_params "Open_IM/pkg/proto/sdk_ws" +) type GroupResponse struct { GroupOwnerName string `json:"GroupOwnerName"` GroupOwnerID string `json:"GroupOwnerID"` - *server_api_params.GroupInfo + //*server_api_params.GroupInfo + GroupID string `json:"groupID"` + GroupName string `json:"groupName"` + Notification string `json:"notification"` + Introduction string `json:"introduction"` + FaceURL string `json:"faceURL"` + OwnerUserID string `json:"ownerUserID"` + CreateTime uint32 `json:"createTime"` + MemberCount uint32 `json:"memberCount"` + Ex string `json:"ex"` + Status int32 `json:"status"` + CreatorUserID string `json:"creatorUserID"` + GroupType int32 `json:"groupType"` + NeedVerification int32 `json:"needVerification"` + LookMemberInfo int32 `json:"lookMemberInfo"` + ApplyMemberFriend int32 `json:"applyMemberFriend"` + NotificationUpdateTime uint32 `json:"notificationUpdateTime"` + NotificationUserID string `json:"notificationUserID"` } type GetGroupByIDRequest struct { @@ -17,13 +36,13 @@ type GetGroupByIDResponse struct { } type GetGroupRequest struct { - GroupName string `form:"group_name" binding:"required"` + GroupName string `form:"groupName" binding:"required"` RequestPagination } type GetGroupResponse struct { Groups []GroupResponse `json:"groups"` - GroupNums int `json:"group_nums"` + GroupNums int `json:"groupNums"` ResponsePagination } @@ -33,77 +52,70 @@ type GetGroupsRequest struct { type GetGroupsResponse struct { Groups []GroupResponse `json:"groups"` - GroupNums int `json:"group_nums"` + GroupNums int `json:"groupNums"` ResponsePagination } type CreateGroupRequest struct { - GroupName string `json:"group_name" binding:"required"` - GroupMasterId string `json:"group_master_id" binding:"required"` - GroupMembers []string `json:"group_members" binding:"required"` + GroupName string `json:"groupName" binding:"required"` + GroupMasterId string `json:"groupOwnerID" binding:"required"` + GroupMembers []string `json:"groupMembers" binding:"required"` } type CreateGroupResponse struct { } type SetGroupMasterRequest struct { - GroupId string `json:"group_id" binding:"required"` - UserId string `json:"user_id" binding:"required"` + GroupId string `json:"groupID" binding:"required"` + UserId string `json:"userID" binding:"required"` } type SetGroupMasterResponse struct { } type SetGroupMemberRequest struct { - GroupId string `json:"group_id" binding:"required"` - UserId string `json:"user_id" binding:"required"` + GroupId string `json:"groupID" binding:"required"` + UserId string `json:"userID" binding:"required"` } type SetGroupMemberRespones struct { } type BanGroupChatRequest struct { - GroupId string `json:"group_id" binding:"required"` + GroupId string `json:"groupID" binding:"required"` } type BanGroupChatResponse struct { } type BanPrivateChatRequest struct { - GroupId string `json:"group_id" binding:"required"` + GroupId string `json:"groupID" binding:"required"` } type BanPrivateChatResponse struct { } type DeleteGroupRequest struct { - GroupId string `json:"group_id" binding:"required"` + GroupId string `json:"groupID" binding:"required"` } type DeleteGroupResponse struct { } type GetGroupMembersRequest struct { - GroupId string `form:"group_id" binding:"required"` - UserName string `form:"user_name"` + GroupID string `form:"groupID" binding:"required"` + UserName string `form:"userName"` RequestPagination } -type GroupMemberResponse struct { - MemberPosition int `json:"member_position"` - MemberNickName string `json:"member_nick_name"` - MemberId string `json:"member_id"` - JoinTime string `json:"join_time"` -} - type GetGroupMembersResponse struct { - GroupMembers []GroupMemberResponse `json:"group_members"` + GroupMembers []server_api_params.GroupMemberFullInfo `json:"groupMembers"` ResponsePagination - MemberNums int `json:"member_nums"` + MemberNums int `json:"memberNums"` } type GroupMemberRequest struct { - GroupId string `json:"group_id" binding:"required"` + GroupId string `json:"groupID" binding:"required"` Members []string `json:"members" binding:"required"` } @@ -129,12 +141,12 @@ type RemoveGroupMembersResponse struct { } type AlterGroupInfoRequest struct { - GroupID string `json:"group_id"` - GroupName string `json:"group_name"` + GroupID string `json:"groupID"` + GroupName string `json:"groupName"` Notification string `json:"notification"` Introduction string `json:"introduction"` - ProfilePhoto string `json:"profile_photo"` - GroupType int `json:"group_type"` + ProfilePhoto string `json:"profilePhoto"` + GroupType int `json:"groupType"` } type AlterGroupInfoResponse struct { diff --git a/pkg/common/log/logrus.go b/pkg/common/log/logrus.go index caf4c9126..4194d0e95 100644 --- a/pkg/common/log/logrus.go +++ b/pkg/common/log/logrus.go @@ -2,7 +2,7 @@ package log import ( "Open_IM/pkg/common/config" - "bufio" + //"bufio" "fmt" "os" "time" @@ -33,13 +33,13 @@ func loggerInit(moduleName string) *Logger { //All logs will be printed logger.SetLevel(logrus.Level(config.Config.Log.RemainLogLevel)) //Close std console output - src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) - if err != nil { - panic(err.Error()) - } - writer := bufio.NewWriter(src) - logger.SetOutput(writer) - //logger.SetOutput(os.Stdout) + //src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) + //if err != nil { + // panic(err.Error()) + //} + //writer := bufio.NewWriter(src) + //logger.SetOutput(writer) + logger.SetOutput(os.Stdout) //Log Console Print Style Setting logger.SetFormatter(&nested.Formatter{ TimestampFormat: "2006-01-02 15:04:05.000", diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index c6801ec0a..d4cd55960 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -37,7 +37,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{0} + return fileDescriptor_group_077aa2a789cf93ed, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{1} + return fileDescriptor_group_077aa2a789cf93ed, []int{1} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -132,7 +132,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{2} + return fileDescriptor_group_077aa2a789cf93ed, []int{2} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -200,7 +200,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{3} + return fileDescriptor_group_077aa2a789cf93ed, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -254,7 +254,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{4} + return fileDescriptor_group_077aa2a789cf93ed, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -308,7 +308,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{5} + return fileDescriptor_group_077aa2a789cf93ed, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -362,7 +362,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{6} + return fileDescriptor_group_077aa2a789cf93ed, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -414,7 +414,7 @@ func (m *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} } func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoResp) ProtoMessage() {} func (*SetGroupInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{7} + return fileDescriptor_group_077aa2a789cf93ed, []int{7} } func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b) @@ -454,7 +454,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{8} + return fileDescriptor_group_077aa2a789cf93ed, []int{8} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -508,7 +508,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{9} + return fileDescriptor_group_077aa2a789cf93ed, []int{9} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -562,7 +562,7 @@ func (m *GetUserReqApplicationListReq) Reset() { *m = GetUserReqApplicat func (m *GetUserReqApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListReq) ProtoMessage() {} func (*GetUserReqApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{10} + return fileDescriptor_group_077aa2a789cf93ed, []int{10} } func (m *GetUserReqApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListReq.Unmarshal(m, b) @@ -615,7 +615,7 @@ func (m *GetUserReqApplicationListResp) Reset() { *m = GetUserReqApplica func (m *GetUserReqApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListResp) ProtoMessage() {} func (*GetUserReqApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{11} + return fileDescriptor_group_077aa2a789cf93ed, []int{11} } func (m *GetUserReqApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListResp.Unmarshal(m, b) @@ -664,7 +664,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{12} + return fileDescriptor_group_077aa2a789cf93ed, []int{12} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -730,7 +730,7 @@ func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerResp) ProtoMessage() {} func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{13} + return fileDescriptor_group_077aa2a789cf93ed, []int{13} } func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) @@ -773,7 +773,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{14} + return fileDescriptor_group_077aa2a789cf93ed, []int{14} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -846,7 +846,7 @@ func (m *JoinGroupResp) Reset() { *m = JoinGroupResp{} } func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) } func (*JoinGroupResp) ProtoMessage() {} func (*JoinGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{15} + return fileDescriptor_group_077aa2a789cf93ed, []int{15} } func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b) @@ -889,7 +889,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{16} + return fileDescriptor_group_077aa2a789cf93ed, []int{16} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -962,7 +962,7 @@ func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationRe func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseResp) ProtoMessage() {} func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{17} + return fileDescriptor_group_077aa2a789cf93ed, []int{17} } func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) @@ -1002,7 +1002,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{18} + return fileDescriptor_group_077aa2a789cf93ed, []int{18} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1054,7 +1054,7 @@ func (m *QuitGroupResp) Reset() { *m = QuitGroupResp{} } func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) } func (*QuitGroupResp) ProtoMessage() {} func (*QuitGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{19} + return fileDescriptor_group_077aa2a789cf93ed, []int{19} } func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b) @@ -1096,7 +1096,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{20} + return fileDescriptor_group_077aa2a789cf93ed, []int{20} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1165,7 +1165,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{21} + return fileDescriptor_group_077aa2a789cf93ed, []int{21} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1227,7 +1227,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{22} + return fileDescriptor_group_077aa2a789cf93ed, []int{22} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1288,7 +1288,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{23} + return fileDescriptor_group_077aa2a789cf93ed, []int{23} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1344,7 +1344,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{24} + return fileDescriptor_group_077aa2a789cf93ed, []int{24} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1411,7 +1411,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{25} + return fileDescriptor_group_077aa2a789cf93ed, []int{25} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1458,7 +1458,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{26} + return fileDescriptor_group_077aa2a789cf93ed, []int{26} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1512,7 +1512,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{27} + return fileDescriptor_group_077aa2a789cf93ed, []int{27} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1566,7 +1566,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{28} + return fileDescriptor_group_077aa2a789cf93ed, []int{28} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -1622,7 +1622,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{29} + return fileDescriptor_group_077aa2a789cf93ed, []int{29} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -1690,7 +1690,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{30} + return fileDescriptor_group_077aa2a789cf93ed, []int{30} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -1746,7 +1746,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{31} + return fileDescriptor_group_077aa2a789cf93ed, []int{31} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -1814,7 +1814,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{32} + return fileDescriptor_group_077aa2a789cf93ed, []int{32} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -1868,7 +1868,7 @@ func (m *CMSGroup) Reset() { *m = CMSGroup{} } func (m *CMSGroup) String() string { return proto.CompactTextString(m) } func (*CMSGroup) ProtoMessage() {} func (*CMSGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{33} + return fileDescriptor_group_077aa2a789cf93ed, []int{33} } func (m *CMSGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CMSGroup.Unmarshal(m, b) @@ -1922,7 +1922,7 @@ func (m *GetGroupReq) Reset() { *m = GetGroupReq{} } func (m *GetGroupReq) String() string { return proto.CompactTextString(m) } func (*GetGroupReq) ProtoMessage() {} func (*GetGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{34} + return fileDescriptor_group_077aa2a789cf93ed, []int{34} } func (m *GetGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupReq.Unmarshal(m, b) @@ -1976,7 +1976,7 @@ func (m *GetGroupResp) Reset() { *m = GetGroupResp{} } func (m *GetGroupResp) String() string { return proto.CompactTextString(m) } func (*GetGroupResp) ProtoMessage() {} func (*GetGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{35} + return fileDescriptor_group_077aa2a789cf93ed, []int{35} } func (m *GetGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupResp.Unmarshal(m, b) @@ -2029,7 +2029,7 @@ func (m *GetGroupsReq) Reset() { *m = GetGroupsReq{} } func (m *GetGroupsReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsReq) ProtoMessage() {} func (*GetGroupsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{36} + return fileDescriptor_group_077aa2a789cf93ed, []int{36} } func (m *GetGroupsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsReq.Unmarshal(m, b) @@ -2076,7 +2076,7 @@ func (m *GetGroupsResp) Reset() { *m = GetGroupsResp{} } func (m *GetGroupsResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsResp) ProtoMessage() {} func (*GetGroupsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{37} + return fileDescriptor_group_077aa2a789cf93ed, []int{37} } func (m *GetGroupsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsResp.Unmarshal(m, b) @@ -2129,7 +2129,7 @@ func (m *GetGroupMemberReq) Reset() { *m = GetGroupMemberReq{} } func (m *GetGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberReq) ProtoMessage() {} func (*GetGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{38} + return fileDescriptor_group_077aa2a789cf93ed, []int{38} } func (m *GetGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberReq.Unmarshal(m, b) @@ -2163,90 +2163,6 @@ func (m *GetGroupMemberReq) GetOperationID() string { return "" } -type OperateGroupStatusReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - Status int32 `protobuf:"varint,2,opt,name=Status" json:"Status,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *OperateGroupStatusReq) Reset() { *m = OperateGroupStatusReq{} } -func (m *OperateGroupStatusReq) String() string { return proto.CompactTextString(m) } -func (*OperateGroupStatusReq) ProtoMessage() {} -func (*OperateGroupStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{39} -} -func (m *OperateGroupStatusReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OperateGroupStatusReq.Unmarshal(m, b) -} -func (m *OperateGroupStatusReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OperateGroupStatusReq.Marshal(b, m, deterministic) -} -func (dst *OperateGroupStatusReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_OperateGroupStatusReq.Merge(dst, src) -} -func (m *OperateGroupStatusReq) XXX_Size() int { - return xxx_messageInfo_OperateGroupStatusReq.Size(m) -} -func (m *OperateGroupStatusReq) XXX_DiscardUnknown() { - xxx_messageInfo_OperateGroupStatusReq.DiscardUnknown(m) -} - -var xxx_messageInfo_OperateGroupStatusReq proto.InternalMessageInfo - -func (m *OperateGroupStatusReq) GetGroupID() string { - if m != nil { - return m.GroupID - } - return "" -} - -func (m *OperateGroupStatusReq) GetStatus() int32 { - if m != nil { - return m.Status - } - return 0 -} - -func (m *OperateGroupStatusReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type OperateGroupStatusResp struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *OperateGroupStatusResp) Reset() { *m = OperateGroupStatusResp{} } -func (m *OperateGroupStatusResp) String() string { return proto.CompactTextString(m) } -func (*OperateGroupStatusResp) ProtoMessage() {} -func (*OperateGroupStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{40} -} -func (m *OperateGroupStatusResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OperateGroupStatusResp.Unmarshal(m, b) -} -func (m *OperateGroupStatusResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OperateGroupStatusResp.Marshal(b, m, deterministic) -} -func (dst *OperateGroupStatusResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_OperateGroupStatusResp.Merge(dst, src) -} -func (m *OperateGroupStatusResp) XXX_Size() int { - return xxx_messageInfo_OperateGroupStatusResp.Size(m) -} -func (m *OperateGroupStatusResp) XXX_DiscardUnknown() { - xxx_messageInfo_OperateGroupStatusResp.DiscardUnknown(m) -} - -var xxx_messageInfo_OperateGroupStatusResp proto.InternalMessageInfo - type OperateUserRoleReq struct { GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` UserID string `protobuf:"bytes,2,opt,name=UserID" json:"UserID,omitempty"` @@ -2261,7 +2177,7 @@ func (m *OperateUserRoleReq) Reset() { *m = OperateUserRoleReq{} } func (m *OperateUserRoleReq) String() string { return proto.CompactTextString(m) } func (*OperateUserRoleReq) ProtoMessage() {} func (*OperateUserRoleReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{41} + return fileDescriptor_group_077aa2a789cf93ed, []int{39} } func (m *OperateUserRoleReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleReq.Unmarshal(m, b) @@ -2319,7 +2235,7 @@ func (m *OperateUserRoleResp) Reset() { *m = OperateUserRoleResp{} } func (m *OperateUserRoleResp) String() string { return proto.CompactTextString(m) } func (*OperateUserRoleResp) ProtoMessage() {} func (*OperateUserRoleResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{42} + return fileDescriptor_group_077aa2a789cf93ed, []int{40} } func (m *OperateUserRoleResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleResp.Unmarshal(m, b) @@ -2339,7 +2255,7 @@ func (m *OperateUserRoleResp) XXX_DiscardUnknown() { var xxx_messageInfo_OperateUserRoleResp proto.InternalMessageInfo -type DeleteGroupReq struct { +type GetGroupByIDReq struct { GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -2347,152 +2263,76 @@ type DeleteGroupReq struct { XXX_sizecache int32 `json:"-"` } -func (m *DeleteGroupReq) Reset() { *m = DeleteGroupReq{} } -func (m *DeleteGroupReq) String() string { return proto.CompactTextString(m) } -func (*DeleteGroupReq) ProtoMessage() {} -func (*DeleteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{43} +func (m *GetGroupByIDReq) Reset() { *m = GetGroupByIDReq{} } +func (m *GetGroupByIDReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupByIDReq) ProtoMessage() {} +func (*GetGroupByIDReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_077aa2a789cf93ed, []int{41} } -func (m *DeleteGroupReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteGroupReq.Unmarshal(m, b) +func (m *GetGroupByIDReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupByIDReq.Unmarshal(m, b) } -func (m *DeleteGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteGroupReq.Marshal(b, m, deterministic) +func (m *GetGroupByIDReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupByIDReq.Marshal(b, m, deterministic) } -func (dst *DeleteGroupReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteGroupReq.Merge(dst, src) +func (dst *GetGroupByIDReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupByIDReq.Merge(dst, src) } -func (m *DeleteGroupReq) XXX_Size() int { - return xxx_messageInfo_DeleteGroupReq.Size(m) +func (m *GetGroupByIDReq) XXX_Size() int { + return xxx_messageInfo_GetGroupByIDReq.Size(m) } -func (m *DeleteGroupReq) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteGroupReq.DiscardUnknown(m) +func (m *GetGroupByIDReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupByIDReq.DiscardUnknown(m) } -var xxx_messageInfo_DeleteGroupReq proto.InternalMessageInfo +var xxx_messageInfo_GetGroupByIDReq proto.InternalMessageInfo -func (m *DeleteGroupReq) GetGroupID() string { +func (m *GetGroupByIDReq) GetGroupID() string { if m != nil { return m.GroupID } return "" } -func (m *DeleteGroupReq) GetOperationID() string { +func (m *GetGroupByIDReq) GetOperationID() string { if m != nil { return m.OperationID } return "" } -type DeleteGroupResp struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteGroupResp) Reset() { *m = DeleteGroupResp{} } -func (m *DeleteGroupResp) String() string { return proto.CompactTextString(m) } -func (*DeleteGroupResp) ProtoMessage() {} -func (*DeleteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{44} -} -func (m *DeleteGroupResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteGroupResp.Unmarshal(m, b) -} -func (m *DeleteGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteGroupResp.Marshal(b, m, deterministic) -} -func (dst *DeleteGroupResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteGroupResp.Merge(dst, src) -} -func (m *DeleteGroupResp) XXX_Size() int { - return xxx_messageInfo_DeleteGroupResp.Size(m) -} -func (m *DeleteGroupResp) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteGroupResp.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteGroupResp proto.InternalMessageInfo - -type GetGroupByIdReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupByIdReq) Reset() { *m = GetGroupByIdReq{} } -func (m *GetGroupByIdReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupByIdReq) ProtoMessage() {} -func (*GetGroupByIdReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{45} -} -func (m *GetGroupByIdReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupByIdReq.Unmarshal(m, b) -} -func (m *GetGroupByIdReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupByIdReq.Marshal(b, m, deterministic) -} -func (dst *GetGroupByIdReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupByIdReq.Merge(dst, src) -} -func (m *GetGroupByIdReq) XXX_Size() int { - return xxx_messageInfo_GetGroupByIdReq.Size(m) -} -func (m *GetGroupByIdReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupByIdReq.DiscardUnknown(m) -} - -var xxx_messageInfo_GetGroupByIdReq proto.InternalMessageInfo - -func (m *GetGroupByIdReq) GetGroupID() string { - if m != nil { - return m.GroupID - } - return "" -} - -func (m *GetGroupByIdReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type GetGroupByIdResp struct { +type GetGroupByIDResp struct { CMSGroup *CMSGroup `protobuf:"bytes,1,opt,name=CMSGroup" json:"CMSGroup,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *GetGroupByIdResp) Reset() { *m = GetGroupByIdResp{} } -func (m *GetGroupByIdResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupByIdResp) ProtoMessage() {} -func (*GetGroupByIdResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{46} +func (m *GetGroupByIDResp) Reset() { *m = GetGroupByIDResp{} } +func (m *GetGroupByIDResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupByIDResp) ProtoMessage() {} +func (*GetGroupByIDResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_077aa2a789cf93ed, []int{42} } -func (m *GetGroupByIdResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupByIdResp.Unmarshal(m, b) +func (m *GetGroupByIDResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupByIDResp.Unmarshal(m, b) } -func (m *GetGroupByIdResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupByIdResp.Marshal(b, m, deterministic) +func (m *GetGroupByIDResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupByIDResp.Marshal(b, m, deterministic) } -func (dst *GetGroupByIdResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupByIdResp.Merge(dst, src) +func (dst *GetGroupByIDResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupByIDResp.Merge(dst, src) } -func (m *GetGroupByIdResp) XXX_Size() int { - return xxx_messageInfo_GetGroupByIdResp.Size(m) +func (m *GetGroupByIDResp) XXX_Size() int { + return xxx_messageInfo_GetGroupByIDResp.Size(m) } -func (m *GetGroupByIdResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupByIdResp.DiscardUnknown(m) +func (m *GetGroupByIDResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupByIDResp.DiscardUnknown(m) } -var xxx_messageInfo_GetGroupByIdResp proto.InternalMessageInfo +var xxx_messageInfo_GetGroupByIDResp proto.InternalMessageInfo -func (m *GetGroupByIdResp) GetCMSGroup() *CMSGroup { +func (m *GetGroupByIDResp) GetCMSGroup() *CMSGroup { if m != nil { return m.CMSGroup } @@ -2513,7 +2353,7 @@ func (m *GetGroupMembersCMSReq) Reset() { *m = GetGroupMembersCMSReq{} } func (m *GetGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSReq) ProtoMessage() {} func (*GetGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{47} + return fileDescriptor_group_077aa2a789cf93ed, []int{43} } func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b) @@ -2574,7 +2414,7 @@ func (m *GetGroupMembersCMSResp) Reset() { *m = GetGroupMembersCMSResp{} func (m *GetGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSResp) ProtoMessage() {} func (*GetGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{48} + return fileDescriptor_group_077aa2a789cf93ed, []int{44} } func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b) @@ -2629,7 +2469,7 @@ func (m *RemoveGroupMembersCMSReq) Reset() { *m = RemoveGroupMembersCMSR func (m *RemoveGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*RemoveGroupMembersCMSReq) ProtoMessage() {} func (*RemoveGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{49} + return fileDescriptor_group_077aa2a789cf93ed, []int{45} } func (m *RemoveGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSReq.Unmarshal(m, b) @@ -2689,7 +2529,7 @@ func (m *RemoveGroupMembersCMSResp) Reset() { *m = RemoveGroupMembersCMS func (m *RemoveGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*RemoveGroupMembersCMSResp) ProtoMessage() {} func (*RemoveGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{50} + return fileDescriptor_group_077aa2a789cf93ed, []int{46} } func (m *RemoveGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSResp.Unmarshal(m, b) @@ -2737,7 +2577,7 @@ func (m *AddGroupMembersCMSReq) Reset() { *m = AddGroupMembersCMSReq{} } func (m *AddGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*AddGroupMembersCMSReq) ProtoMessage() {} func (*AddGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{51} + return fileDescriptor_group_077aa2a789cf93ed, []int{47} } func (m *AddGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSReq.Unmarshal(m, b) @@ -2797,7 +2637,7 @@ func (m *AddGroupMembersCMSResp) Reset() { *m = AddGroupMembersCMSResp{} func (m *AddGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*AddGroupMembersCMSResp) ProtoMessage() {} func (*AddGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{52} + return fileDescriptor_group_077aa2a789cf93ed, []int{48} } func (m *AddGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSResp.Unmarshal(m, b) @@ -2844,7 +2684,7 @@ func (m *DismissGroupReq) Reset() { *m = DismissGroupReq{} } func (m *DismissGroupReq) String() string { return proto.CompactTextString(m) } func (*DismissGroupReq) ProtoMessage() {} func (*DismissGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{53} + return fileDescriptor_group_077aa2a789cf93ed, []int{49} } func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b) @@ -2896,7 +2736,7 @@ func (m *DismissGroupResp) Reset() { *m = DismissGroupResp{} } func (m *DismissGroupResp) String() string { return proto.CompactTextString(m) } func (*DismissGroupResp) ProtoMessage() {} func (*DismissGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{54} + return fileDescriptor_group_077aa2a789cf93ed, []int{50} } func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b) @@ -2938,7 +2778,7 @@ func (m *MuteGroupMemberReq) Reset() { *m = MuteGroupMemberReq{} } func (m *MuteGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*MuteGroupMemberReq) ProtoMessage() {} func (*MuteGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{55} + return fileDescriptor_group_077aa2a789cf93ed, []int{51} } func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b) @@ -3004,7 +2844,7 @@ func (m *MuteGroupMemberResp) Reset() { *m = MuteGroupMemberResp{} } func (m *MuteGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*MuteGroupMemberResp) ProtoMessage() {} func (*MuteGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{56} + return fileDescriptor_group_077aa2a789cf93ed, []int{52} } func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b) @@ -3045,7 +2885,7 @@ func (m *CancelMuteGroupMemberReq) Reset() { *m = CancelMuteGroupMemberR func (m *CancelMuteGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupMemberReq) ProtoMessage() {} func (*CancelMuteGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{57} + return fileDescriptor_group_077aa2a789cf93ed, []int{53} } func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b) @@ -3104,7 +2944,7 @@ func (m *CancelMuteGroupMemberResp) Reset() { *m = CancelMuteGroupMember func (m *CancelMuteGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupMemberResp) ProtoMessage() {} func (*CancelMuteGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{58} + return fileDescriptor_group_077aa2a789cf93ed, []int{54} } func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b) @@ -3144,7 +2984,7 @@ func (m *MuteGroupReq) Reset() { *m = MuteGroupReq{} } func (m *MuteGroupReq) String() string { return proto.CompactTextString(m) } func (*MuteGroupReq) ProtoMessage() {} func (*MuteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{59} + return fileDescriptor_group_077aa2a789cf93ed, []int{55} } func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b) @@ -3196,7 +3036,7 @@ func (m *MuteGroupResp) Reset() { *m = MuteGroupResp{} } func (m *MuteGroupResp) String() string { return proto.CompactTextString(m) } func (*MuteGroupResp) ProtoMessage() {} func (*MuteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{60} + return fileDescriptor_group_077aa2a789cf93ed, []int{56} } func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b) @@ -3236,7 +3076,7 @@ func (m *CancelMuteGroupReq) Reset() { *m = CancelMuteGroupReq{} } func (m *CancelMuteGroupReq) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupReq) ProtoMessage() {} func (*CancelMuteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{61} + return fileDescriptor_group_077aa2a789cf93ed, []int{57} } func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b) @@ -3288,7 +3128,7 @@ func (m *CancelMuteGroupResp) Reset() { *m = CancelMuteGroupResp{} } func (m *CancelMuteGroupResp) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupResp) ProtoMessage() {} func (*CancelMuteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{62} + return fileDescriptor_group_077aa2a789cf93ed, []int{58} } func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b) @@ -3330,7 +3170,7 @@ func (m *SetGroupMemberNicknameReq) Reset() { *m = SetGroupMemberNicknam func (m *SetGroupMemberNicknameReq) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberNicknameReq) ProtoMessage() {} func (*SetGroupMemberNicknameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{63} + return fileDescriptor_group_077aa2a789cf93ed, []int{59} } func (m *SetGroupMemberNicknameReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberNicknameReq.Unmarshal(m, b) @@ -3396,7 +3236,7 @@ func (m *SetGroupMemberNicknameResp) Reset() { *m = SetGroupMemberNickna func (m *SetGroupMemberNicknameResp) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberNicknameResp) ProtoMessage() {} func (*SetGroupMemberNicknameResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{64} + return fileDescriptor_group_077aa2a789cf93ed, []int{60} } func (m *SetGroupMemberNicknameResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberNicknameResp.Unmarshal(m, b) @@ -3436,7 +3276,7 @@ func (m *GetJoinedSuperGroupListReq) Reset() { *m = GetJoinedSuperGroupL func (m *GetJoinedSuperGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedSuperGroupListReq) ProtoMessage() {} func (*GetJoinedSuperGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{65} + return fileDescriptor_group_077aa2a789cf93ed, []int{61} } func (m *GetJoinedSuperGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedSuperGroupListReq.Unmarshal(m, b) @@ -3489,7 +3329,7 @@ func (m *GetJoinedSuperGroupListResp) Reset() { *m = GetJoinedSuperGroup func (m *GetJoinedSuperGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedSuperGroupListResp) ProtoMessage() {} func (*GetJoinedSuperGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{66} + return fileDescriptor_group_077aa2a789cf93ed, []int{62} } func (m *GetJoinedSuperGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedSuperGroupListResp.Unmarshal(m, b) @@ -3536,7 +3376,7 @@ func (m *GetSuperGroupsInfoReq) Reset() { *m = GetSuperGroupsInfoReq{} } func (m *GetSuperGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupsInfoReq) ProtoMessage() {} func (*GetSuperGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{67} + return fileDescriptor_group_077aa2a789cf93ed, []int{63} } func (m *GetSuperGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupsInfoReq.Unmarshal(m, b) @@ -3589,7 +3429,7 @@ func (m *GetSuperGroupsInfoResp) Reset() { *m = GetSuperGroupsInfoResp{} func (m *GetSuperGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupsInfoResp) ProtoMessage() {} func (*GetSuperGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{68} + return fileDescriptor_group_077aa2a789cf93ed, []int{64} } func (m *GetSuperGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupsInfoResp.Unmarshal(m, b) @@ -3641,7 +3481,7 @@ func (m *SetGroupMemberInfoReq) Reset() { *m = SetGroupMemberInfoReq{} } func (m *SetGroupMemberInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberInfoReq) ProtoMessage() {} func (*SetGroupMemberInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{69} + return fileDescriptor_group_077aa2a789cf93ed, []int{65} } func (m *SetGroupMemberInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberInfoReq.Unmarshal(m, b) @@ -3728,7 +3568,7 @@ func (m *SetGroupMemberInfoResp) Reset() { *m = SetGroupMemberInfoResp{} func (m *SetGroupMemberInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberInfoResp) ProtoMessage() {} func (*SetGroupMemberInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{70} + return fileDescriptor_group_077aa2a789cf93ed, []int{66} } func (m *SetGroupMemberInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberInfoResp.Unmarshal(m, b) @@ -3768,7 +3608,7 @@ func (m *GetGroupAbstractInfoReq) Reset() { *m = GetGroupAbstractInfoReq func (m *GetGroupAbstractInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAbstractInfoReq) ProtoMessage() {} func (*GetGroupAbstractInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{71} + return fileDescriptor_group_077aa2a789cf93ed, []int{67} } func (m *GetGroupAbstractInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAbstractInfoReq.Unmarshal(m, b) @@ -3822,7 +3662,7 @@ func (m *GetGroupAbstractInfoResp) Reset() { *m = GetGroupAbstractInfoRe func (m *GetGroupAbstractInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAbstractInfoResp) ProtoMessage() {} func (*GetGroupAbstractInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_264c9a69dcb70bac, []int{72} + return fileDescriptor_group_077aa2a789cf93ed, []int{68} } func (m *GetGroupAbstractInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAbstractInfoResp.Unmarshal(m, b) @@ -3903,14 +3743,10 @@ func init() { proto.RegisterType((*GetGroupsReq)(nil), "group.GetGroupsReq") proto.RegisterType((*GetGroupsResp)(nil), "group.GetGroupsResp") proto.RegisterType((*GetGroupMemberReq)(nil), "group.GetGroupMemberReq") - proto.RegisterType((*OperateGroupStatusReq)(nil), "group.OperateGroupStatusReq") - proto.RegisterType((*OperateGroupStatusResp)(nil), "group.OperateGroupStatusResp") proto.RegisterType((*OperateUserRoleReq)(nil), "group.OperateUserRoleReq") proto.RegisterType((*OperateUserRoleResp)(nil), "group.OperateUserRoleResp") - proto.RegisterType((*DeleteGroupReq)(nil), "group.DeleteGroupReq") - proto.RegisterType((*DeleteGroupResp)(nil), "group.DeleteGroupResp") - proto.RegisterType((*GetGroupByIdReq)(nil), "group.GetGroupByIdReq") - proto.RegisterType((*GetGroupByIdResp)(nil), "group.GetGroupByIdResp") + proto.RegisterType((*GetGroupByIDReq)(nil), "group.GetGroupByIDReq") + proto.RegisterType((*GetGroupByIDResp)(nil), "group.GetGroupByIDResp") proto.RegisterType((*GetGroupMembersCMSReq)(nil), "group.GetGroupMembersCMSReq") proto.RegisterType((*GetGroupMembersCMSResp)(nil), "group.GetGroupMembersCMSResp") proto.RegisterType((*RemoveGroupMembersCMSReq)(nil), "group.RemoveGroupMembersCMSReq") @@ -3965,12 +3801,10 @@ type GroupClient interface { GetJoinedGroupList(ctx context.Context, in *GetJoinedGroupListReq, opts ...grpc.CallOption) (*GetJoinedGroupListResp, error) InviteUserToGroup(ctx context.Context, in *InviteUserToGroupReq, opts ...grpc.CallOption) (*InviteUserToGroupResp, error) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemberReq, opts ...grpc.CallOption) (*GetGroupAllMemberResp, error) - GetGroupById(ctx context.Context, in *GetGroupByIdReq, opts ...grpc.CallOption) (*GetGroupByIdResp, error) + GetGroupByID(ctx context.Context, in *GetGroupByIDReq, opts ...grpc.CallOption) (*GetGroupByIDResp, error) GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupResp, error) GetGroups(ctx context.Context, in *GetGroupsReq, opts ...grpc.CallOption) (*GetGroupsResp, error) - OperateGroupStatus(ctx context.Context, in *OperateGroupStatusReq, opts ...grpc.CallOption) (*OperateGroupStatusResp, error) OperateUserRole(ctx context.Context, in *OperateUserRoleReq, opts ...grpc.CallOption) (*OperateUserRoleResp, error) - DeleteGroup(ctx context.Context, in *DeleteGroupReq, opts ...grpc.CallOption) (*DeleteGroupResp, error) GetGroupMembersCMS(ctx context.Context, in *GetGroupMembersCMSReq, opts ...grpc.CallOption) (*GetGroupMembersCMSResp, error) RemoveGroupMembersCMS(ctx context.Context, in *RemoveGroupMembersCMSReq, opts ...grpc.CallOption) (*RemoveGroupMembersCMSResp, error) AddGroupMembersCMS(ctx context.Context, in *AddGroupMembersCMSReq, opts ...grpc.CallOption) (*AddGroupMembersCMSResp, error) @@ -4129,9 +3963,9 @@ func (c *groupClient) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemb return out, nil } -func (c *groupClient) GetGroupById(ctx context.Context, in *GetGroupByIdReq, opts ...grpc.CallOption) (*GetGroupByIdResp, error) { - out := new(GetGroupByIdResp) - err := grpc.Invoke(ctx, "/group.group/GetGroupById", in, out, c.cc, opts...) +func (c *groupClient) GetGroupByID(ctx context.Context, in *GetGroupByIDReq, opts ...grpc.CallOption) (*GetGroupByIDResp, error) { + out := new(GetGroupByIDResp) + err := grpc.Invoke(ctx, "/group.group/GetGroupByID", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4156,15 +3990,6 @@ func (c *groupClient) GetGroups(ctx context.Context, in *GetGroupsReq, opts ...g return out, nil } -func (c *groupClient) OperateGroupStatus(ctx context.Context, in *OperateGroupStatusReq, opts ...grpc.CallOption) (*OperateGroupStatusResp, error) { - out := new(OperateGroupStatusResp) - err := grpc.Invoke(ctx, "/group.group/OperateGroupStatus", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *groupClient) OperateUserRole(ctx context.Context, in *OperateUserRoleReq, opts ...grpc.CallOption) (*OperateUserRoleResp, error) { out := new(OperateUserRoleResp) err := grpc.Invoke(ctx, "/group.group/OperateUserRole", in, out, c.cc, opts...) @@ -4174,15 +3999,6 @@ func (c *groupClient) OperateUserRole(ctx context.Context, in *OperateUserRoleRe return out, nil } -func (c *groupClient) DeleteGroup(ctx context.Context, in *DeleteGroupReq, opts ...grpc.CallOption) (*DeleteGroupResp, error) { - out := new(DeleteGroupResp) - err := grpc.Invoke(ctx, "/group.group/DeleteGroup", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *groupClient) GetGroupMembersCMS(ctx context.Context, in *GetGroupMembersCMSReq, opts ...grpc.CallOption) (*GetGroupMembersCMSResp, error) { out := new(GetGroupMembersCMSResp) err := grpc.Invoke(ctx, "/group.group/GetGroupMembersCMS", in, out, c.cc, opts...) @@ -4318,12 +4134,10 @@ type GroupServer interface { GetJoinedGroupList(context.Context, *GetJoinedGroupListReq) (*GetJoinedGroupListResp, error) InviteUserToGroup(context.Context, *InviteUserToGroupReq) (*InviteUserToGroupResp, error) GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) - GetGroupById(context.Context, *GetGroupByIdReq) (*GetGroupByIdResp, error) + GetGroupByID(context.Context, *GetGroupByIDReq) (*GetGroupByIDResp, error) GetGroup(context.Context, *GetGroupReq) (*GetGroupResp, error) GetGroups(context.Context, *GetGroupsReq) (*GetGroupsResp, error) - OperateGroupStatus(context.Context, *OperateGroupStatusReq) (*OperateGroupStatusResp, error) OperateUserRole(context.Context, *OperateUserRoleReq) (*OperateUserRoleResp, error) - DeleteGroup(context.Context, *DeleteGroupReq) (*DeleteGroupResp, error) GetGroupMembersCMS(context.Context, *GetGroupMembersCMSReq) (*GetGroupMembersCMSResp, error) RemoveGroupMembersCMS(context.Context, *RemoveGroupMembersCMSReq) (*RemoveGroupMembersCMSResp, error) AddGroupMembersCMS(context.Context, *AddGroupMembersCMSReq) (*AddGroupMembersCMSResp, error) @@ -4613,20 +4427,20 @@ func _Group_GetGroupAllMember_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } -func _Group_GetGroupById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetGroupByIdReq) +func _Group_GetGroupByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupByIDReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GroupServer).GetGroupById(ctx, in) + return srv.(GroupServer).GetGroupByID(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/group.group/GetGroupById", + FullMethod: "/group.group/GetGroupByID", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).GetGroupById(ctx, req.(*GetGroupByIdReq)) + return srv.(GroupServer).GetGroupByID(ctx, req.(*GetGroupByIDReq)) } return interceptor(ctx, in, info, handler) } @@ -4667,24 +4481,6 @@ func _Group_GetGroups_Handler(srv interface{}, ctx context.Context, dec func(int return interceptor(ctx, in, info, handler) } -func _Group_OperateGroupStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(OperateGroupStatusReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).OperateGroupStatus(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/OperateGroupStatus", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).OperateGroupStatus(ctx, req.(*OperateGroupStatusReq)) - } - return interceptor(ctx, in, info, handler) -} - func _Group_OperateUserRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(OperateUserRoleReq) if err := dec(in); err != nil { @@ -4703,24 +4499,6 @@ func _Group_OperateUserRole_Handler(srv interface{}, ctx context.Context, dec fu return interceptor(ctx, in, info, handler) } -func _Group_DeleteGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteGroupReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).DeleteGroup(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/DeleteGroup", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).DeleteGroup(ctx, req.(*DeleteGroupReq)) - } - return interceptor(ctx, in, info, handler) -} - func _Group_GetGroupMembersCMS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetGroupMembersCMSReq) if err := dec(in); err != nil { @@ -5020,8 +4798,8 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Handler: _Group_GetGroupAllMember_Handler, }, { - MethodName: "GetGroupById", - Handler: _Group_GetGroupById_Handler, + MethodName: "GetGroupByID", + Handler: _Group_GetGroupByID_Handler, }, { MethodName: "GetGroup", @@ -5031,18 +4809,10 @@ var _Group_serviceDesc = grpc.ServiceDesc{ MethodName: "GetGroups", Handler: _Group_GetGroups_Handler, }, - { - MethodName: "OperateGroupStatus", - Handler: _Group_OperateGroupStatus_Handler, - }, { MethodName: "OperateUserRole", Handler: _Group_OperateUserRole_Handler, }, - { - MethodName: "DeleteGroup", - Handler: _Group_DeleteGroup_Handler, - }, { MethodName: "GetGroupMembersCMS", Handler: _Group_GetGroupMembersCMS_Handler, @@ -5100,164 +4870,159 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_264c9a69dcb70bac) } +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_077aa2a789cf93ed) } -var fileDescriptor_group_264c9a69dcb70bac = []byte{ - // 2481 bytes of a gzipped FileDescriptorProto +var fileDescriptor_group_077aa2a789cf93ed = []byte{ + // 2401 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x1a, 0x4d, 0x6f, 0x1c, 0x49, - 0x55, 0x6d, 0x7b, 0x62, 0xfb, 0xd9, 0xce, 0xd8, 0xe5, 0xd8, 0x99, 0x74, 0xbc, 0x8e, 0x53, 0x1b, - 0x96, 0x08, 0x82, 0x03, 0x8e, 0x14, 0x01, 0x8b, 0x08, 0xb1, 0x9d, 0xc4, 0x4e, 0x62, 0x9b, 0xf4, - 0x64, 0x41, 0x8a, 0x84, 0x42, 0x67, 0xa6, 0xdc, 0x0c, 0x9e, 0xe9, 0x6e, 0x77, 0xf5, 0x24, 0x81, - 0xcb, 0x8a, 0x0b, 0x12, 0x08, 0x69, 0xf9, 0xb8, 0x2e, 0x82, 0xe5, 0x02, 0x07, 0x90, 0x38, 0xc0, - 0x19, 0x71, 0xe7, 0x8c, 0xc4, 0x95, 0x3f, 0xc0, 0x5f, 0x40, 0x5d, 0x55, 0x5d, 0x5d, 0xdd, 0x55, - 0xdd, 0x9e, 0xb4, 0x93, 0xcd, 0x5e, 0x5a, 0xaa, 0x57, 0xaf, 0xaa, 0xde, 0x7b, 0xf5, 0x3e, 0xea, - 0xbd, 0xd7, 0xb0, 0xe0, 0x45, 0xc1, 0x30, 0xbc, 0xce, 0xbe, 0xeb, 0x61, 0x14, 0xc4, 0x01, 0x6a, - 0xb0, 0x81, 0x7d, 0xf9, 0x20, 0x24, 0xfe, 0xd3, 0xdd, 0xbd, 0xeb, 0xe1, 0x91, 0x77, 0x9d, 0xcd, - 0x5c, 0xa7, 0xdd, 0xa3, 0xa7, 0x2f, 0xe8, 0xf5, 0x17, 0x94, 0x63, 0xda, 0x9f, 0x2f, 0x47, 0x89, - 0xdc, 0x30, 0x24, 0x91, 0x40, 0xc4, 0xdf, 0x04, 0xd8, 0x0a, 0x06, 0x83, 0xc0, 0x77, 0x08, 0x0d, - 0x51, 0x0b, 0x26, 0xef, 0x44, 0xd1, 0x56, 0xd0, 0x25, 0x2d, 0x6b, 0xcd, 0xba, 0xda, 0x70, 0xd2, - 0x21, 0x5a, 0x86, 0x33, 0x77, 0xa2, 0x68, 0x8f, 0x7a, 0xad, 0xb1, 0x35, 0xeb, 0xea, 0xb4, 0x23, - 0x46, 0xf8, 0x3e, 0xa0, 0x7b, 0x09, 0x51, 0xb7, 0xbb, 0xdd, 0x3d, 0x32, 0x78, 0x46, 0xa2, 0x5d, - 0xff, 0x30, 0x48, 0xb0, 0x3f, 0xa0, 0x24, 0xda, 0xdd, 0x66, 0xdb, 0x4c, 0x3b, 0x62, 0x84, 0x56, - 0x60, 0xda, 0x09, 0xfa, 0xe4, 0x21, 0x79, 0x4e, 0xfa, 0x6c, 0xa3, 0x86, 0x93, 0x01, 0xf0, 0xff, - 0x2c, 0x38, 0xbb, 0x15, 0x11, 0x37, 0x26, 0x6c, 0x4b, 0x87, 0x1c, 0xa3, 0xdb, 0x70, 0x76, 0xd7, - 0xef, 0xc5, 0x7c, 0xeb, 0x87, 0x3d, 0x1a, 0xb7, 0xac, 0xb5, 0xf1, 0xab, 0x33, 0x1b, 0x17, 0xd6, - 0xb9, 0x5c, 0xf4, 0xb3, 0x9d, 0xc2, 0x02, 0xf4, 0x75, 0x98, 0x66, 0x58, 0xc9, 0x24, 0x3b, 0x73, - 0x66, 0x63, 0x65, 0x9d, 0x92, 0xe8, 0x39, 0x89, 0x9e, 0xba, 0x61, 0xef, 0x69, 0xe8, 0x46, 0xee, - 0x80, 0xae, 0x4b, 0x1c, 0x27, 0x43, 0x47, 0x6b, 0x30, 0x73, 0x10, 0x92, 0xc8, 0x8d, 0x7b, 0x81, - 0xbf, 0xbb, 0xdd, 0x1a, 0x67, 0xcc, 0xa8, 0x20, 0x64, 0xc3, 0xd4, 0x41, 0x28, 0x78, 0x9d, 0x60, - 0xd3, 0x72, 0xcc, 0x56, 0xbf, 0xf0, 0x49, 0x24, 0xa6, 0x1b, 0x62, 0x75, 0x06, 0xc2, 0x1f, 0x42, - 0x33, 0xc7, 0x70, 0x9d, 0x2b, 0xc8, 0x33, 0x38, 0xfe, 0x4a, 0x0c, 0xe2, 0x08, 0xe6, 0xef, 0x91, - 0x98, 0x8d, 0x29, 0x9b, 0x23, 0xc7, 0x09, 0xd9, 0x1c, 0x61, 0x5b, 0x0a, 0x7c, 0xda, 0x51, 0x41, - 0x45, 0xb1, 0x8c, 0x55, 0x8b, 0x65, 0x3c, 0x2f, 0x16, 0xfc, 0x33, 0x0b, 0x16, 0x0a, 0x87, 0xd6, - 0xe2, 0x7b, 0x13, 0xe6, 0x24, 0x23, 0x8c, 0xd2, 0x71, 0xa6, 0x1a, 0xd5, 0xbc, 0xe7, 0x97, 0xe0, - 0xdf, 0x5a, 0xd0, 0x6c, 0x0b, 0x5a, 0x52, 0xfe, 0x1f, 0x42, 0xd3, 0x4b, 0xc7, 0x77, 0x83, 0xa8, - 0x4d, 0x62, 0x46, 0xd1, 0xcc, 0x06, 0xae, 0xda, 0x99, 0x63, 0x3a, 0xc5, 0xa5, 0x39, 0x49, 0x8c, - 0x19, 0x14, 0xa4, 0x52, 0xbd, 0xf0, 0x1d, 0x98, 0xcf, 0x93, 0x47, 0x43, 0xf4, 0x15, 0xd5, 0x64, - 0x05, 0x69, 0x0b, 0xc2, 0x1e, 0xb2, 0x09, 0x47, 0x41, 0xc2, 0x3f, 0x06, 0x3b, 0x95, 0xf8, 0xed, - 0x30, 0xec, 0xf7, 0x3a, 0x6c, 0xff, 0x44, 0x02, 0x09, 0xc3, 0x2a, 0x89, 0x56, 0x35, 0x89, 0x86, - 0xab, 0x5e, 0x05, 0xb8, 0x1b, 0x05, 0x83, 0xdc, 0x65, 0x2b, 0x10, 0xfc, 0xb1, 0x05, 0x17, 0x4b, - 0x0f, 0xaf, 0x75, 0xf1, 0x0f, 0x60, 0x3e, 0x75, 0x10, 0x43, 0x42, 0x63, 0xe5, 0xee, 0x2f, 0x95, - 0xdd, 0x90, 0x40, 0x75, 0xb4, 0x85, 0x38, 0x86, 0x95, 0x7b, 0x24, 0x4e, 0x68, 0x75, 0xc8, 0xb1, - 0x41, 0x38, 0x65, 0xae, 0xec, 0x74, 0xf7, 0xfa, 0x3b, 0x0b, 0xde, 0xa9, 0x38, 0xb6, 0xd6, 0x2d, - 0x1b, 0xe5, 0x32, 0x56, 0x57, 0x2e, 0xff, 0xb0, 0x60, 0xe9, 0x71, 0xe4, 0xfa, 0xf4, 0x90, 0x44, - 0x6c, 0x92, 0xf9, 0xad, 0x44, 0x22, 0x2d, 0x98, 0x14, 0xce, 0x40, 0x88, 0x24, 0x1d, 0xa2, 0xf7, - 0xe0, 0xec, 0x41, 0xbf, 0xab, 0xfa, 0x3c, 0x2e, 0x99, 0x02, 0x34, 0xc1, 0xdb, 0x27, 0x2f, 0x54, - 0x3c, 0x2e, 0xa2, 0x02, 0xb4, 0x28, 0xc7, 0x89, 0x6a, 0x3f, 0xd3, 0x28, 0xf8, 0x99, 0x07, 0xb0, - 0x6c, 0x62, 0xa0, 0x9e, 0x05, 0xfd, 0xcb, 0x82, 0xd9, 0xfb, 0x41, 0xcf, 0x97, 0x91, 0xa9, 0x5c, - 0x0a, 0xab, 0x00, 0x0e, 0x39, 0xde, 0x23, 0x94, 0xba, 0x1e, 0x11, 0x12, 0x50, 0x20, 0x55, 0xbe, - 0x71, 0x04, 0x8e, 0x57, 0x01, 0x12, 0x3a, 0xda, 0xc1, 0x30, 0xea, 0x10, 0xc6, 0x73, 0xc3, 0x51, - 0x20, 0xe8, 0x0a, 0xcc, 0xed, 0xfa, 0xcf, 0x7b, 0xb1, 0x14, 0xed, 0x19, 0xb6, 0x47, 0x1e, 0x88, - 0x37, 0x61, 0x4e, 0xe1, 0xa6, 0x9e, 0x48, 0xfe, 0x93, 0x18, 0x76, 0xc1, 0xaa, 0x93, 0x89, 0xc0, - 0xa7, 0x44, 0xc4, 0x11, 0x95, 0x17, 0xab, 0xfa, 0xf6, 0x8a, 0x36, 0xa4, 0xc8, 0x77, 0x5c, 0x93, - 0xaf, 0xe2, 0x70, 0x26, 0x8a, 0x0e, 0x27, 0x99, 0xdf, 0x71, 0xfd, 0x6e, 0x9f, 0x74, 0x13, 0xd7, - 0xc1, 0xb5, 0x42, 0x81, 0x20, 0x0c, 0xb3, 0x7c, 0xe4, 0x10, 0x3a, 0xec, 0xc7, 0x4c, 0x40, 0x0d, - 0x27, 0x07, 0xc3, 0x8f, 0x60, 0xa5, 0x9c, 0xb5, 0x7a, 0xe2, 0x3a, 0x84, 0xd9, 0x47, 0xc3, 0x5e, - 0x3c, 0x82, 0x02, 0x9d, 0x2e, 0xbc, 0x6e, 0xc2, 0x9c, 0x72, 0x4e, 0x3d, 0x5a, 0x3f, 0xb1, 0x60, - 0x29, 0xf5, 0xd9, 0xd9, 0x53, 0xaa, 0x9a, 0xea, 0x53, 0x39, 0xc4, 0xc4, 0xcd, 0xde, 0xed, 0xf5, - 0x63, 0x12, 0xb1, 0x0b, 0x6d, 0x38, 0x62, 0x94, 0x9c, 0xb7, 0x4f, 0x5e, 0xc6, 0x6d, 0x72, 0x2c, - 0x74, 0x3d, 0x1d, 0xe2, 0x3f, 0x5b, 0xb0, 0x6c, 0xa2, 0xb1, 0x56, 0x48, 0xb9, 0x0b, 0x30, 0xc8, - 0xde, 0x98, 0x3c, 0x98, 0xbc, 0x57, 0xe6, 0x34, 0xf9, 0x69, 0x77, 0x87, 0xfd, 0x3e, 0x8b, 0xc9, - 0xca, 0xca, 0xe4, 0x64, 0x5f, 0x90, 0xcb, 0xf9, 0x48, 0x87, 0xf8, 0x97, 0x1a, 0xb9, 0xf2, 0xc1, - 0x55, 0xe9, 0x4a, 0x14, 0xb2, 0xc6, 0xd8, 0x4b, 0x4c, 0x3d, 0xee, 0x54, 0xae, 0x04, 0xff, 0xc6, - 0x82, 0xf3, 0x46, 0x92, 0xde, 0xa6, 0x08, 0xf1, 0x5f, 0x2d, 0x40, 0x0f, 0x7a, 0x9d, 0x23, 0x05, - 0xaf, 0x5a, 0x48, 0x5f, 0x80, 0xf9, 0x04, 0x9f, 0x74, 0x39, 0xe3, 0x8a, 0xa8, 0x34, 0x78, 0x42, - 0xbc, 0x43, 0x5c, 0x1a, 0xf8, 0x42, 0x5c, 0x62, 0x54, 0x14, 0x56, 0xa3, 0xda, 0xe4, 0xce, 0x14, - 0x4c, 0xee, 0x7d, 0x98, 0xde, 0xed, 0x6e, 0x70, 0xd7, 0x51, 0xfa, 0x60, 0x60, 0x47, 0x33, 0x87, - 0xc3, 0x13, 0x1f, 0x31, 0xc2, 0x1f, 0xc2, 0xa2, 0xc6, 0x6e, 0xad, 0x0b, 0xb8, 0x09, 0x73, 0x92, - 0x0a, 0xe5, 0x0e, 0xe6, 0x85, 0xa9, 0xcb, 0x39, 0x27, 0x8f, 0x86, 0x87, 0xcc, 0xd6, 0x93, 0x70, - 0x40, 0xba, 0x8c, 0x8a, 0xd4, 0xd6, 0xf3, 0x8e, 0xd6, 0xd2, 0x1c, 0xed, 0x1a, 0xcc, 0x04, 0xba, - 0x9f, 0x0a, 0x46, 0xf4, 0x53, 0x3f, 0xe5, 0x06, 0xa1, 0x9d, 0x7b, 0xaa, 0x1c, 0x68, 0xe4, 0x3c, - 0x20, 0x43, 0xc7, 0x7f, 0xb3, 0xe0, 0x1c, 0x8f, 0x8e, 0x09, 0x65, 0x8f, 0x03, 0xe9, 0xa1, 0x4f, - 0xf6, 0xc3, 0xe5, 0x41, 0x2a, 0x53, 0xb4, 0x89, 0x9c, 0xa2, 0x5d, 0x83, 0x05, 0x7e, 0x96, 0xaa, - 0xad, 0x0d, 0xa6, 0xad, 0xfa, 0x44, 0xa5, 0xd2, 0xfd, 0xc4, 0x82, 0x25, 0x03, 0xd9, 0x9f, 0xaa, - 0xea, 0x7c, 0x6c, 0xc1, 0x39, 0xf9, 0xb6, 0xef, 0xf7, 0x47, 0xb1, 0xd6, 0x53, 0x87, 0x89, 0x83, - 0xc3, 0x43, 0x4a, 0xe2, 0x34, 0x4c, 0xf0, 0x11, 0x3a, 0x07, 0x8d, 0xad, 0x60, 0xe8, 0xc7, 0x22, - 0x48, 0xf0, 0x01, 0xfe, 0x95, 0x12, 0xc6, 0x14, 0xf2, 0xde, 0xaa, 0x7b, 0xfb, 0x83, 0x05, 0x53, - 0x5b, 0x7b, 0x6d, 0x86, 0x96, 0x4f, 0xdd, 0xad, 0x57, 0xab, 0x4d, 0xac, 0x8b, 0xca, 0x8b, 0x7c, - 0x30, 0xef, 0xbb, 0x83, 0xf4, 0xb9, 0x69, 0x98, 0x49, 0xdc, 0x64, 0x1e, 0x2a, 0x25, 0xac, 0xc1, - 0x93, 0xc8, 0x30, 0x93, 0x0a, 0x2e, 0xb9, 0xce, 0x15, 0x41, 0x27, 0x3b, 0x82, 0x5f, 0x68, 0x06, - 0x40, 0xdb, 0x00, 0xdf, 0x76, 0xbd, 0x9e, 0xcf, 0x2e, 0x49, 0x94, 0x58, 0xae, 0x18, 0xd8, 0x10, - 0xe9, 0x45, 0x86, 0xeb, 0x28, 0xeb, 0x46, 0x48, 0x9a, 0x3e, 0xb1, 0x60, 0x36, 0xa3, 0x8a, 0x86, - 0xe8, 0x4b, 0x30, 0x9d, 0x8a, 0x92, 0x8a, 0xc2, 0x50, 0x33, 0x7d, 0xd8, 0x08, 0xb8, 0x93, 0x61, - 0xbc, 0x26, 0x3a, 0xa5, 0x2c, 0x86, 0x03, 0xca, 0xa8, 0x6c, 0x38, 0x19, 0x00, 0x3f, 0xcf, 0x48, - 0xa4, 0x89, 0xe4, 0xf2, 0x67, 0x5a, 0xaf, 0x47, 0x36, 0xba, 0x27, 0xc2, 0xbf, 0xb7, 0x60, 0x4e, - 0x39, 0xf8, 0x6d, 0x09, 0xc7, 0x86, 0xa9, 0x54, 0x16, 0x42, 0x36, 0x72, 0x8c, 0x0f, 0xb2, 0xb2, - 0xcf, 0x28, 0x8e, 0xe2, 0x64, 0x9e, 0x8f, 0x60, 0x89, 0x0f, 0x79, 0xf9, 0xac, 0x1d, 0xbb, 0xf1, - 0x90, 0x56, 0x6f, 0xba, 0x0c, 0x67, 0x38, 0x5a, 0x1a, 0x84, 0xf9, 0x68, 0x04, 0xe5, 0x6b, 0xc1, - 0xb2, 0xe9, 0x30, 0x1a, 0x26, 0x81, 0x0c, 0x89, 0x29, 0x96, 0xcf, 0x07, 0x7d, 0x72, 0x22, 0x11, - 0x39, 0x07, 0x68, 0xac, 0x8e, 0x8e, 0x17, 0xaa, 0xa3, 0x23, 0xbc, 0xe7, 0x96, 0x60, 0x51, 0xa3, - 0x83, 0x86, 0xf8, 0x21, 0x9c, 0xdd, 0x26, 0x7d, 0xa2, 0x54, 0x55, 0x4f, 0x23, 0xf4, 0x05, 0x68, - 0xe6, 0x76, 0xa3, 0x21, 0xde, 0x83, 0x66, 0x7a, 0xb1, 0x9b, 0x3f, 0xda, 0xed, 0x9e, 0xf6, 0x84, - 0x5b, 0x59, 0x4d, 0x92, 0x6f, 0x47, 0x43, 0xf4, 0xc5, 0xcc, 0x69, 0x0a, 0x23, 0xd2, 0x74, 0x59, - 0x22, 0xe0, 0xbf, 0x6b, 0xd9, 0x0b, 0xdd, 0xda, 0x6b, 0x9f, 0x18, 0x96, 0x0a, 0x3e, 0x54, 0x8e, - 0x0b, 0xa6, 0x31, 0xfe, 0x7a, 0x6c, 0xd8, 0x70, 0x7f, 0xff, 0xd4, 0x53, 0x04, 0x46, 0x37, 0x0d, - 0xd1, 0xb7, 0x60, 0x92, 0xc7, 0x90, 0xd4, 0x94, 0x47, 0x0d, 0x3d, 0xe9, 0x32, 0x74, 0xc7, 0x60, - 0xdf, 0x9f, 0x33, 0x32, 0xc1, 0xd3, 0xdc, 0x12, 0x2e, 0x56, 0x01, 0xf8, 0x09, 0x8a, 0xfb, 0x53, - 0x20, 0xf8, 0xd7, 0x16, 0xb4, 0x1c, 0x32, 0x08, 0x9e, 0x93, 0x57, 0x12, 0xff, 0x2a, 0x80, 0xf6, - 0x7a, 0x57, 0x20, 0xa7, 0x2b, 0xc4, 0xe3, 0x3d, 0xb8, 0x50, 0x42, 0x13, 0x7f, 0x0a, 0xd0, 0x61, - 0xa7, 0x43, 0x28, 0x15, 0xa5, 0xee, 0x74, 0x98, 0xd8, 0xe9, 0xa1, 0xdb, 0xeb, 0x93, 0xae, 0x20, - 0x48, 0x8c, 0xf0, 0x47, 0x16, 0x2c, 0xdd, 0xee, 0x76, 0x3f, 0x43, 0x0c, 0xde, 0x87, 0x65, 0x13, - 0x41, 0xb5, 0xb8, 0xeb, 0x41, 0x73, 0xbb, 0x47, 0x07, 0x3d, 0x4a, 0xa5, 0xbf, 0xb0, 0x61, 0x2a, - 0x28, 0x14, 0x88, 0x83, 0x70, 0xe4, 0x24, 0xa0, 0x05, 0x93, 0x5e, 0xfe, 0x91, 0x2c, 0x86, 0xf8, - 0x0e, 0xcc, 0xe7, 0x8f, 0xe2, 0xd5, 0x8a, 0xce, 0x28, 0xd5, 0x8a, 0x0c, 0x09, 0xff, 0xc9, 0x02, - 0xb4, 0x37, 0x8c, 0x49, 0x21, 0xb4, 0xbc, 0x21, 0xaa, 0x13, 0xc1, 0x0d, 0xd5, 0x6b, 0x10, 0x23, - 0x84, 0x61, 0x76, 0x30, 0x8c, 0x49, 0xb7, 0x4d, 0x3a, 0x81, 0xdf, 0xa5, 0xec, 0x29, 0x3a, 0xe7, - 0xe4, 0x60, 0x78, 0x07, 0x16, 0x35, 0x4a, 0xeb, 0x31, 0xfd, 0x73, 0x0b, 0x5a, 0x5b, 0xae, 0xdf, - 0x21, 0xfd, 0xb7, 0xcf, 0x3a, 0xde, 0x87, 0x0b, 0x25, 0xb4, 0xd4, 0x63, 0xee, 0x10, 0x66, 0xe5, - 0x4e, 0x6f, 0x52, 0x01, 0x37, 0x61, 0x4e, 0x39, 0xa7, 0x1e, 0xad, 0x7d, 0x40, 0x05, 0xde, 0xdf, - 0x24, 0xc5, 0x3b, 0xb0, 0xa8, 0x9d, 0x56, 0x8f, 0xee, 0x3f, 0x5a, 0x70, 0xa1, 0x9d, 0x8b, 0x36, - 0xfb, 0xbd, 0xce, 0x91, 0xef, 0x0e, 0xd2, 0xd7, 0x8b, 0x97, 0xf7, 0x64, 0x5e, 0x16, 0x29, 0x7d, - 0x81, 0x98, 0x46, 0xca, 0x74, 0x9c, 0xe3, 0x7a, 0xbc, 0x9a, 0xeb, 0x09, 0x9d, 0xeb, 0x4c, 0xbb, - 0x1a, 0x39, 0xed, 0x3a, 0x00, 0xbb, 0x8c, 0xd0, 0x7a, 0xe5, 0xcd, 0x88, 0xb5, 0xc3, 0x78, 0xe5, - 0xa1, 0x3d, 0x0c, 0x45, 0x7f, 0x20, 0x2d, 0x7b, 0x14, 0x08, 0xb5, 0xaa, 0x08, 0x1d, 0xcb, 0x79, - 0x80, 0x0a, 0xf6, 0xf1, 0x2f, 0x78, 0x1b, 0xcc, 0x7c, 0x68, 0xad, 0x1b, 0x3c, 0x55, 0xd1, 0xe3, - 0x05, 0x7b, 0x22, 0x65, 0x74, 0x7c, 0x6a, 0xdd, 0xdf, 0x8f, 0xf8, 0x23, 0x47, 0x3b, 0xb9, 0x9e, - 0x08, 0x5e, 0x47, 0x0f, 0xf8, 0xbf, 0x63, 0xb0, 0x94, 0xd7, 0x2f, 0xa5, 0x30, 0x5b, 0x62, 0x04, - 0x35, 0x34, 0x60, 0x04, 0x03, 0xf8, 0xaa, 0x62, 0x5a, 0x0d, 0x51, 0x0d, 0xf0, 0x82, 0xc0, 0xeb, - 0x13, 0xfe, 0xb7, 0xc6, 0xb3, 0xe1, 0xe1, 0x7a, 0x3b, 0x8e, 0x7a, 0xbe, 0xf7, 0x1d, 0xb7, 0x3f, - 0x24, 0x8a, 0xe1, 0xdd, 0x84, 0xc9, 0x43, 0xb7, 0x43, 0x3e, 0x70, 0x1e, 0xb2, 0x3a, 0xd1, 0x49, - 0x0b, 0x53, 0x64, 0xf4, 0x35, 0x98, 0x8e, 0x64, 0xca, 0x31, 0xc9, 0x56, 0x5e, 0xd4, 0x56, 0xee, - 0xfa, 0xf1, 0x8d, 0x0d, 0xbe, 0x30, 0xc3, 0x46, 0xd7, 0x60, 0x8c, 0xbc, 0x6c, 0x4d, 0x8d, 0x70, - 0xda, 0x18, 0x79, 0x89, 0x1f, 0xc0, 0xb2, 0x49, 0xc6, 0xf5, 0xec, 0xf7, 0x38, 0xab, 0x5b, 0xdf, - 0x7e, 0x46, 0xe3, 0xc8, 0xed, 0xc4, 0x27, 0x5f, 0x99, 0x7a, 0x35, 0x63, 0xd5, 0x57, 0x33, 0xae, - 0x5d, 0x0d, 0xfe, 0x8b, 0x05, 0x2d, 0xf3, 0x99, 0xf5, 0x7a, 0xb5, 0xd7, 0xc4, 0xff, 0x3d, 0xf2, - 0xe9, 0xfc, 0x8c, 0x44, 0x22, 0x27, 0xd5, 0x27, 0xd0, 0x97, 0x61, 0xd1, 0xcb, 0xf7, 0x39, 0x76, - 0x5c, 0xfa, 0x03, 0x46, 0xe7, 0x84, 0x63, 0x9a, 0xda, 0xf8, 0xf7, 0x39, 0xe0, 0x7f, 0x0b, 0xa1, - 0x6f, 0xc0, 0x4c, 0x27, 0xfb, 0xc7, 0x04, 0x2d, 0xa5, 0x74, 0xe5, 0x7e, 0xb4, 0xb1, 0x97, 0x4d, - 0x60, 0x1a, 0xa2, 0x9b, 0x30, 0xfd, 0xc3, 0xb4, 0x51, 0x88, 0x16, 0x05, 0x92, 0xda, 0x08, 0xb5, - 0xcf, 0xe9, 0x40, 0xbe, 0xee, 0x38, 0xed, 0x42, 0xc9, 0x75, 0x6a, 0xff, 0x4b, 0xae, 0xcb, 0x37, - 0xab, 0x36, 0x61, 0xce, 0x53, 0xff, 0x0d, 0x41, 0xe7, 0xd3, 0x3f, 0x7d, 0x0a, 0xbf, 0xa9, 0xd8, - 0x2d, 0xf3, 0x04, 0x0d, 0xd1, 0x2d, 0x98, 0xa5, 0xca, 0x4f, 0x13, 0x28, 0xe5, 0xad, 0xf0, 0xa3, - 0x87, 0x7d, 0xde, 0x08, 0xa7, 0x21, 0xfa, 0x3e, 0x9c, 0xf7, 0xcc, 0x7f, 0x2c, 0xa0, 0xcb, 0x85, - 0x53, 0xf5, 0x3f, 0x06, 0x6c, 0x7c, 0x12, 0x0a, 0x0d, 0xd1, 0x21, 0x5c, 0xf0, 0xca, 0xda, 0xff, - 0xe8, 0xdd, 0x6c, 0x83, 0xd2, 0xff, 0x12, 0xec, 0x2b, 0x27, 0x23, 0xd1, 0x10, 0x3d, 0x02, 0x14, - 0x6b, 0x3d, 0x70, 0xb4, 0x22, 0xd6, 0x1a, 0xfb, 0xfb, 0xf6, 0x3b, 0x15, 0xb3, 0x34, 0x44, 0x1d, - 0x68, 0x79, 0x25, 0xad, 0x51, 0x84, 0x73, 0xbf, 0x65, 0x19, 0xdb, 0xc2, 0xf6, 0xbb, 0x27, 0xe2, - 0x70, 0xba, 0x3d, 0xad, 0xb7, 0x27, 0xe9, 0x36, 0xb6, 0x26, 0x25, 0xdd, 0x25, 0x4d, 0xc1, 0xc7, - 0xb0, 0xe8, 0xe9, 0xcd, 0x2e, 0x64, 0x5e, 0x25, 0xb5, 0x6c, 0xb5, 0x6a, 0x9a, 0x86, 0x68, 0x07, - 0x9a, 0x47, 0xf9, 0xee, 0x0d, 0x4a, 0xff, 0x4d, 0xd3, 0x9b, 0x58, 0xb6, 0x5d, 0x36, 0x25, 0x59, - 0x2e, 0xb4, 0x43, 0x54, 0x96, 0xf5, 0x0e, 0x8d, 0xca, 0xb2, 0xa9, 0x8f, 0xb2, 0x0f, 0x0b, 0xbd, - 0x62, 0x87, 0x00, 0x5d, 0x4c, 0x8b, 0xfa, 0x86, 0x96, 0x87, 0xbd, 0x52, 0x3e, 0xc9, 0xf7, 0xf3, - 0x8a, 0xe5, 0x74, 0xb9, 0x9f, 0xa9, 0x0f, 0x60, 0xaf, 0x94, 0x4f, 0x72, 0x43, 0x55, 0x2b, 0x3d, - 0xd2, 0x50, 0x0b, 0xd5, 0x24, 0xfb, 0xbc, 0x11, 0x4e, 0x43, 0x74, 0x03, 0xa6, 0x52, 0x18, 0x42, - 0x05, 0xa4, 0x64, 0xe1, 0xa2, 0x06, 0xe3, 0xae, 0x49, 0xfa, 0x0c, 0x54, 0xc4, 0xa0, 0xaa, 0x6b, - 0xca, 0x17, 0x54, 0x1f, 0xc9, 0x32, 0x9f, 0x52, 0x01, 0x94, 0x17, 0x64, 0xac, 0x44, 0xca, 0x0b, - 0x32, 0x97, 0x0e, 0x13, 0xed, 0x29, 0x54, 0xec, 0xa4, 0xf6, 0xe8, 0x15, 0x45, 0xa9, 0x3d, 0x86, - 0x22, 0x5f, 0xe2, 0xe5, 0x95, 0xb2, 0x9c, 0xf4, 0xf2, 0xf9, 0xc2, 0x9f, 0xf4, 0xf2, 0x85, 0x0a, - 0x5e, 0xc2, 0x9a, 0x5e, 0x78, 0x2a, 0x31, 0x37, 0x51, 0xeb, 0x28, 0x31, 0x37, 0x59, 0x78, 0x78, - 0x02, 0x4b, 0xc6, 0x9a, 0x0b, 0xba, 0x24, 0xd6, 0x95, 0x55, 0x89, 0xec, 0xb5, 0x6a, 0x04, 0x4e, - 0xae, 0x5e, 0xee, 0x90, 0xe4, 0x1a, 0x4b, 0x33, 0x92, 0xdc, 0x92, 0x3a, 0xc9, 0x2d, 0x98, 0x55, - 0x4b, 0x11, 0x52, 0x15, 0x0b, 0xa5, 0x10, 0xa9, 0x8a, 0x5a, 0xdd, 0x62, 0x07, 0x9a, 0x85, 0xe4, - 0x57, 0x5e, 0xa5, 0x9e, 0xa0, 0xcb, 0xab, 0x34, 0xe5, 0xcb, 0x4f, 0x60, 0xc9, 0x98, 0x4c, 0x4b, - 0xc9, 0x95, 0xa5, 0xfd, 0x52, 0x72, 0xe5, 0xb9, 0xf8, 0x4d, 0x98, 0x96, 0x60, 0xa9, 0xfb, 0x6a, - 0xe2, 0x2a, 0x75, 0x3f, 0x9f, 0x5f, 0xee, 0x40, 0xb3, 0xb0, 0xa9, 0xe4, 0x4e, 0x4f, 0x7e, 0x25, - 0x77, 0xa6, 0x4c, 0xf5, 0x7b, 0xc5, 0x87, 0x60, 0x9a, 0xcc, 0xa1, 0xb5, 0x42, 0x38, 0xd6, 0x92, - 0x52, 0xfb, 0xf2, 0x09, 0x18, 0x3c, 0x74, 0x97, 0x64, 0x59, 0x6a, 0xe8, 0x2e, 0x49, 0xfd, 0xd4, - 0xd0, 0x5d, 0x9a, 0xa8, 0x71, 0x5b, 0x29, 0xe4, 0x2f, 0xaa, 0xad, 0xe8, 0x49, 0x95, 0x6a, 0x2b, - 0xa6, 0xc4, 0xe7, 0x11, 0x20, 0xfd, 0x71, 0x2c, 0xb7, 0x34, 0xe6, 0x26, 0x72, 0xcb, 0x92, 0x57, - 0xf5, 0x77, 0x95, 0xc6, 0xac, 0xf2, 0x5c, 0x45, 0xc5, 0x78, 0x56, 0x78, 0x3f, 0xdb, 0x97, 0x2a, - 0xe7, 0x69, 0xb8, 0xd9, 0x7c, 0x32, 0xb7, 0xce, 0x7f, 0x4a, 0x7f, 0x9f, 0x7d, 0x9f, 0x9d, 0x61, - 0x6f, 0xfe, 0x1b, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x6d, 0x1a, 0xe8, 0x0c, 0xb0, 0x2e, 0x00, + 0x55, 0x3d, 0xe3, 0x89, 0x3d, 0xcf, 0x9e, 0x8c, 0x53, 0x8e, 0x9d, 0x49, 0xc7, 0xeb, 0x38, 0xb5, + 0x61, 0x89, 0x20, 0x38, 0xe0, 0x48, 0x11, 0xb0, 0x88, 0x10, 0xdb, 0x49, 0xec, 0x24, 0xb6, 0x49, + 0x4f, 0x16, 0xa4, 0x48, 0x28, 0x8c, 0x67, 0x6a, 0x9a, 0xc1, 0x33, 0xdd, 0xed, 0xae, 0x1e, 0x3b, + 0x70, 0x59, 0x71, 0x59, 0x09, 0x84, 0xb4, 0x7c, 0x5c, 0x17, 0xc1, 0x72, 0x81, 0x03, 0x48, 0x1c, + 0xe0, 0x8c, 0x38, 0x70, 0xe3, 0x0f, 0x70, 0xe5, 0x0f, 0xf0, 0x17, 0x50, 0x57, 0x55, 0x57, 0x57, + 0x77, 0x75, 0xb7, 0x27, 0xed, 0x64, 0xc3, 0xa5, 0xa5, 0x7a, 0xf5, 0xaa, 0xea, 0x7d, 0xd5, 0xab, + 0xf7, 0xd1, 0x70, 0xc1, 0xf6, 0xdd, 0xb1, 0x77, 0x8b, 0x7d, 0xd7, 0x3c, 0xdf, 0x0d, 0x5c, 0x54, + 0x63, 0x03, 0xf3, 0xda, 0xbe, 0x47, 0x9c, 0x17, 0x3b, 0xbb, 0xb7, 0xbc, 0x43, 0xfb, 0x16, 0x9b, + 0xb9, 0x45, 0x7b, 0x87, 0x2f, 0x4e, 0xe8, 0xad, 0x13, 0xca, 0x31, 0xcd, 0xcf, 0xe7, 0xa3, 0xf8, + 0x1d, 0xcf, 0x23, 0xbe, 0x40, 0xc4, 0xdf, 0x04, 0xd8, 0x74, 0x47, 0x23, 0xd7, 0xb1, 0x08, 0xf5, + 0x50, 0x0b, 0xa6, 0xef, 0xfb, 0xfe, 0xa6, 0xdb, 0x23, 0x2d, 0x63, 0xd5, 0xb8, 0x51, 0xb3, 0xa2, + 0x21, 0x5a, 0x82, 0x73, 0xf7, 0x7d, 0x7f, 0x97, 0xda, 0xad, 0xca, 0xaa, 0x71, 0xa3, 0x6e, 0x89, + 0x11, 0x7e, 0x04, 0xe8, 0x61, 0x48, 0xd4, 0xbd, 0x5e, 0x6f, 0x97, 0x8c, 0x0e, 0x88, 0xbf, 0xe3, + 0xf4, 0xdd, 0x10, 0xfb, 0x03, 0x4a, 0xfc, 0x9d, 0x2d, 0xb6, 0x4d, 0xdd, 0x12, 0x23, 0xb4, 0x0c, + 0x75, 0xcb, 0x1d, 0x92, 0x27, 0xe4, 0x98, 0x0c, 0xd9, 0x46, 0x35, 0x2b, 0x06, 0xe0, 0xff, 0x1a, + 0x70, 0x7e, 0xd3, 0x27, 0x9d, 0x80, 0xb0, 0x2d, 0x2d, 0x72, 0x84, 0xee, 0xc1, 0xf9, 0x1d, 0x67, + 0x10, 0xf0, 0xad, 0x9f, 0x0c, 0x68, 0xd0, 0x32, 0x56, 0xab, 0x37, 0x66, 0xd7, 0x2f, 0xaf, 0x71, + 0xb9, 0xe8, 0x67, 0x5b, 0xa9, 0x05, 0xe8, 0xeb, 0x50, 0x67, 0x58, 0xe1, 0x24, 0x3b, 0x73, 0x76, + 0x7d, 0x79, 0x8d, 0x12, 0xff, 0x98, 0xf8, 0x2f, 0x3a, 0xde, 0xe0, 0x85, 0xd7, 0xf1, 0x3b, 0x23, + 0xba, 0x26, 0x71, 0xac, 0x18, 0x1d, 0xad, 0xc2, 0xec, 0xbe, 0x47, 0xfc, 0x4e, 0x30, 0x70, 0x9d, + 0x9d, 0xad, 0x56, 0x95, 0x31, 0xa3, 0x82, 0x90, 0x09, 0x33, 0xfb, 0x9e, 0xe0, 0x75, 0x8a, 0x4d, + 0xcb, 0x31, 0x5b, 0x7d, 0xe2, 0x10, 0x5f, 0x4c, 0xd7, 0xc4, 0xea, 0x18, 0x84, 0x3f, 0x84, 0x66, + 0x82, 0xe1, 0x32, 0x2a, 0x48, 0x32, 0x58, 0x7d, 0x25, 0x06, 0xb1, 0x0f, 0xf3, 0x0f, 0x49, 0xc0, + 0xc6, 0x94, 0xcd, 0x91, 0xa3, 0x90, 0x6c, 0x8e, 0xb0, 0x25, 0x05, 0x5e, 0xb7, 0x54, 0x50, 0x5a, + 0x2c, 0x95, 0x62, 0xb1, 0x54, 0x93, 0x62, 0xc1, 0x3f, 0x35, 0xe0, 0x42, 0xea, 0xd0, 0x52, 0x7c, + 0x6f, 0x40, 0x43, 0x32, 0xc2, 0x28, 0xad, 0x32, 0xd3, 0x28, 0xe6, 0x3d, 0xb9, 0x04, 0xff, 0xc6, + 0x80, 0x66, 0x5b, 0xd0, 0x12, 0xf1, 0xff, 0x04, 0x9a, 0x76, 0x34, 0x7e, 0xe0, 0xfa, 0x6d, 0x12, + 0x30, 0x8a, 0x66, 0xd7, 0x71, 0xd1, 0xce, 0x1c, 0xd3, 0x4a, 0x2f, 0x4d, 0x48, 0xa2, 0x92, 0x61, + 0x20, 0x85, 0xe6, 0x85, 0xef, 0xc3, 0x7c, 0x92, 0x3c, 0xea, 0xa1, 0xaf, 0xa8, 0x57, 0x56, 0x90, + 0x76, 0x41, 0xdc, 0x87, 0x78, 0xc2, 0x52, 0x90, 0xf0, 0x8f, 0xc1, 0x8c, 0x24, 0x7e, 0xcf, 0xf3, + 0x86, 0x83, 0x2e, 0xdb, 0x3f, 0x94, 0x40, 0xc8, 0xb0, 0x4a, 0xa2, 0x51, 0x4c, 0x62, 0x86, 0xaa, + 0x57, 0x00, 0x1e, 0xf8, 0xee, 0x28, 0xa1, 0x6c, 0x05, 0x82, 0x3f, 0x31, 0xe0, 0x4a, 0xee, 0xe1, + 0xa5, 0x14, 0xff, 0x18, 0xe6, 0x23, 0x07, 0x31, 0x26, 0x34, 0x50, 0x74, 0x7f, 0x35, 0x4f, 0x43, + 0x02, 0xd5, 0xd2, 0x16, 0xe2, 0x00, 0x96, 0x1f, 0x92, 0x20, 0xa4, 0xd5, 0x22, 0x47, 0x19, 0xc2, + 0xc9, 0x73, 0x65, 0x67, 0xd3, 0xeb, 0x6f, 0x0d, 0x78, 0xa7, 0xe0, 0xd8, 0x52, 0x5a, 0xce, 0x94, + 0x4b, 0xa5, 0xac, 0x5c, 0xfe, 0x6e, 0xc0, 0xe2, 0x33, 0xbf, 0xe3, 0xd0, 0x3e, 0xf1, 0xd9, 0x24, + 0xf3, 0x5b, 0xa1, 0x44, 0x5a, 0x30, 0x2d, 0x9c, 0x81, 0x10, 0x49, 0x34, 0x44, 0xef, 0xc1, 0xf9, + 0xfd, 0x61, 0x4f, 0xf5, 0x79, 0x5c, 0x32, 0x29, 0x68, 0x88, 0xb7, 0x47, 0x4e, 0x54, 0x3c, 0x2e, + 0xa2, 0x14, 0x34, 0x2d, 0xc7, 0xa9, 0x62, 0x3f, 0x53, 0x4b, 0xf9, 0x99, 0xc7, 0xb0, 0x94, 0xc5, + 0x40, 0xb9, 0x1b, 0xf4, 0x2f, 0x03, 0xe6, 0x1e, 0xb9, 0x03, 0x47, 0xbe, 0x4c, 0xf9, 0x52, 0x58, + 0x01, 0xb0, 0xc8, 0xd1, 0x2e, 0xa1, 0xb4, 0x63, 0x13, 0x21, 0x01, 0x05, 0x52, 0xe4, 0x1b, 0x27, + 0xe0, 0x78, 0x05, 0x20, 0xa4, 0xa3, 0xed, 0x8e, 0xfd, 0x2e, 0x61, 0x3c, 0xd7, 0x2c, 0x05, 0x82, + 0xae, 0x43, 0x63, 0xc7, 0x39, 0x1e, 0x04, 0x52, 0xb4, 0xe7, 0xd8, 0x1e, 0x49, 0x20, 0xde, 0x80, + 0x86, 0xc2, 0x4d, 0x39, 0x91, 0xfc, 0x3b, 0xbc, 0xd8, 0xa9, 0x5b, 0x1d, 0x4e, 0xb8, 0x0e, 0x25, + 0xe2, 0x1d, 0x51, 0x79, 0x31, 0x8a, 0xb5, 0x97, 0xbe, 0x43, 0x8a, 0x7c, 0xab, 0x9a, 0x7c, 0x15, + 0x87, 0x33, 0x95, 0x76, 0x38, 0xe1, 0xfc, 0x76, 0xc7, 0xe9, 0x0d, 0x49, 0x2f, 0x74, 0x1d, 0xdc, + 0x2a, 0x14, 0x08, 0xc2, 0x30, 0xc7, 0x47, 0x16, 0xa1, 0xe3, 0x61, 0xc0, 0x04, 0x54, 0xb3, 0x12, + 0x30, 0xfc, 0x14, 0x96, 0xf3, 0x59, 0x2b, 0x27, 0xae, 0x3e, 0xcc, 0x3d, 0x1d, 0x0f, 0x82, 0x09, + 0x0c, 0xe8, 0x6c, 0xcf, 0xeb, 0x06, 0x34, 0x94, 0x73, 0xca, 0xd1, 0xfa, 0xa9, 0x01, 0x8b, 0x91, + 0xcf, 0x8e, 0x43, 0xa9, 0x62, 0xaa, 0xcf, 0xe4, 0x10, 0x43, 0x37, 0xfb, 0x60, 0x30, 0x0c, 0x88, + 0xcf, 0x14, 0x5a, 0xb3, 0xc4, 0x28, 0x3c, 0x6f, 0x8f, 0xbc, 0x0c, 0xda, 0xe4, 0x48, 0xd8, 0x7a, + 0x34, 0xc4, 0x7f, 0x32, 0x60, 0x29, 0x8b, 0xc6, 0x52, 0x4f, 0xca, 0x03, 0x80, 0x51, 0x1c, 0x63, + 0xf2, 0xc7, 0xe4, 0xbd, 0x3c, 0xa7, 0xc9, 0x4f, 0x7b, 0x30, 0x1e, 0x0e, 0xd9, 0x9b, 0xac, 0xac, + 0x0c, 0x4f, 0x76, 0x04, 0xb9, 0x9c, 0x8f, 0x68, 0x88, 0x7f, 0xa1, 0x91, 0x2b, 0x03, 0xae, 0x42, + 0x57, 0xa2, 0x90, 0x55, 0x61, 0x91, 0x98, 0x7a, 0xdc, 0x99, 0x5c, 0x09, 0xfe, 0xb5, 0x01, 0x97, + 0x32, 0x49, 0x7a, 0x9b, 0x22, 0xc4, 0x7f, 0x31, 0x00, 0x3d, 0x1e, 0x74, 0x0f, 0x15, 0xbc, 0x62, + 0x21, 0x7d, 0x01, 0xe6, 0x43, 0x7c, 0xd2, 0xe3, 0x8c, 0x2b, 0xa2, 0xd2, 0xe0, 0x21, 0xf1, 0x16, + 0xe9, 0x50, 0xd7, 0x11, 0xe2, 0x12, 0xa3, 0xb4, 0xb0, 0x6a, 0xc5, 0x57, 0xee, 0x5c, 0xea, 0xca, + 0xbd, 0x0f, 0xf5, 0x9d, 0xde, 0x3a, 0x77, 0x1d, 0xb9, 0x01, 0x03, 0x3b, 0x9a, 0x39, 0x1c, 0x9e, + 0xf8, 0x88, 0x11, 0xfe, 0x10, 0x16, 0x34, 0x76, 0x4b, 0x29, 0xe0, 0x0e, 0x34, 0x24, 0x15, 0x8a, + 0x0e, 0xe6, 0xc5, 0x55, 0x97, 0x73, 0x56, 0x12, 0x0d, 0x8f, 0xd9, 0x5d, 0x0f, 0x9f, 0x03, 0xd2, + 0x63, 0x54, 0x44, 0x77, 0x3d, 0xe9, 0x68, 0x0d, 0xcd, 0xd1, 0xae, 0xc2, 0xac, 0xab, 0xfb, 0x29, + 0x77, 0x42, 0x3f, 0xf5, 0x11, 0xbf, 0x10, 0xda, 0xb9, 0x67, 0xca, 0x81, 0x26, 0xce, 0x03, 0x62, + 0x74, 0xfc, 0x57, 0x03, 0x2e, 0xf2, 0xd7, 0x31, 0xa4, 0xec, 0x99, 0x2b, 0x3d, 0xf4, 0xe9, 0x7e, + 0x38, 0xff, 0x91, 0x8a, 0x0d, 0x6d, 0x2a, 0x61, 0x68, 0x37, 0xe1, 0x02, 0x3f, 0x4b, 0xb5, 0xd6, + 0x1a, 0xb3, 0x56, 0x7d, 0xa2, 0xd0, 0xe8, 0x7e, 0x62, 0xc0, 0x62, 0x06, 0xd9, 0x9f, 0xa9, 0xe9, + 0x7c, 0x62, 0xc0, 0x45, 0x19, 0xdb, 0x0f, 0x87, 0x93, 0xdc, 0xd6, 0x33, 0x3f, 0x13, 0xfb, 0xfd, + 0x3e, 0x25, 0x41, 0xf4, 0x4c, 0xf0, 0x11, 0xba, 0x08, 0xb5, 0x4d, 0x77, 0xec, 0x04, 0xe2, 0x91, + 0xe0, 0x03, 0xfc, 0x4b, 0xe5, 0x19, 0x53, 0xc8, 0x7b, 0xab, 0xee, 0xed, 0xf7, 0x06, 0xcc, 0x6c, + 0xee, 0xb6, 0x19, 0x5a, 0x32, 0x75, 0x37, 0x5e, 0xad, 0x36, 0xb1, 0x26, 0x2a, 0x2f, 0x32, 0x60, + 0xde, 0xeb, 0x8c, 0xa2, 0x70, 0x33, 0x63, 0x26, 0x74, 0x93, 0x49, 0xa8, 0x94, 0xb0, 0x06, 0x0f, + 0x5f, 0x86, 0xd9, 0x48, 0x70, 0xa1, 0x3a, 0x97, 0x05, 0x9d, 0xec, 0x08, 0xae, 0xd0, 0x18, 0x80, + 0xb6, 0x00, 0xbe, 0xdd, 0xb1, 0x07, 0x0e, 0x53, 0x92, 0x28, 0xb1, 0x5c, 0xcf, 0x60, 0x43, 0xa4, + 0x17, 0x31, 0xae, 0xa5, 0xac, 0x9b, 0x20, 0x69, 0xfa, 0xd4, 0x80, 0xb9, 0x98, 0x2a, 0xea, 0xa1, + 0x2f, 0x41, 0x3d, 0x12, 0x25, 0x15, 0x85, 0xa1, 0x66, 0x14, 0xd8, 0x08, 0xb8, 0x15, 0x63, 0xbc, + 0x26, 0x3a, 0xa5, 0x2c, 0xc6, 0x23, 0xca, 0xa8, 0xac, 0x59, 0x31, 0x00, 0x1f, 0xc7, 0x24, 0xd2, + 0x50, 0x72, 0xc9, 0x33, 0x8d, 0xd7, 0x23, 0x1b, 0xdd, 0x13, 0xe1, 0xdf, 0x19, 0xd0, 0x50, 0x0e, + 0x7e, 0x5b, 0xc2, 0x31, 0x61, 0x26, 0x92, 0x85, 0x90, 0x8d, 0x1c, 0xe3, 0xfd, 0xb8, 0xec, 0x33, + 0x89, 0xa3, 0x38, 0x9d, 0xe7, 0x8f, 0x0c, 0x40, 0x7c, 0xcc, 0x5c, 0xa0, 0xe5, 0x0e, 0x49, 0xf1, + 0x96, 0xf1, 0xd3, 0x5c, 0xc9, 0x2f, 0x4b, 0x56, 0x53, 0x65, 0xc9, 0x09, 0x02, 0xa9, 0x45, 0x58, + 0xd0, 0xe8, 0xa0, 0x1e, 0xde, 0x85, 0x66, 0xc4, 0xf0, 0xc6, 0x8f, 0x76, 0xb6, 0xce, 0xca, 0xee, + 0xdd, 0xb8, 0x56, 0xc7, 0xb7, 0xa3, 0x1e, 0xfa, 0x62, 0xec, 0x4c, 0x84, 0x71, 0x69, 0x3a, 0x96, + 0x08, 0xf8, 0x6f, 0x5a, 0x54, 0x4f, 0x37, 0x77, 0xdb, 0xa7, 0xba, 0xeb, 0x94, 0x6f, 0x91, 0xe3, + 0x94, 0xc9, 0x54, 0x5f, 0x8f, 0x6d, 0x67, 0x88, 0xf7, 0x1f, 0x7a, 0xe8, 0xcc, 0xe8, 0xa6, 0x1e, + 0xfa, 0x16, 0x4c, 0x73, 0xdf, 0x1a, 0x99, 0xf8, 0xa4, 0x2e, 0x39, 0x5a, 0x86, 0xee, 0x67, 0xd8, + 0xfd, 0xe7, 0x32, 0x99, 0xe0, 0xe9, 0x5f, 0x0e, 0x17, 0x2b, 0x00, 0xfc, 0x04, 0xc5, 0x2d, 0x28, + 0x10, 0xfc, 0x2b, 0x03, 0x5a, 0x16, 0x19, 0xb9, 0xc7, 0xe4, 0x95, 0xc4, 0xbf, 0x02, 0xa0, 0x45, + 0xb5, 0x0a, 0xe4, 0x6c, 0x05, 0x6a, 0xbc, 0x0b, 0x97, 0x73, 0x68, 0xe2, 0x4f, 0x24, 0x1d, 0x77, + 0xbb, 0x84, 0x52, 0x51, 0x02, 0x8e, 0x86, 0xe1, 0x35, 0xea, 0x77, 0x06, 0x43, 0xd2, 0x13, 0x04, + 0x89, 0x11, 0xfe, 0xd8, 0x80, 0xc5, 0x7b, 0xbd, 0xde, 0xff, 0x11, 0x83, 0x8f, 0x60, 0x29, 0x8b, + 0xa0, 0x52, 0xdc, 0x0d, 0xa0, 0xb9, 0x35, 0xa0, 0xa3, 0x01, 0xa5, 0xf2, 0x59, 0x34, 0x61, 0xc6, + 0x4d, 0x15, 0x4e, 0x5d, 0x6f, 0xe2, 0xe0, 0xb8, 0x05, 0xd3, 0x76, 0x32, 0x78, 0x14, 0x43, 0x7c, + 0x1f, 0xe6, 0x93, 0x47, 0xf1, 0x2c, 0xbe, 0x3b, 0x49, 0x16, 0x1f, 0x23, 0xe1, 0x3f, 0x1a, 0x80, + 0x76, 0xc7, 0x01, 0x49, 0xb9, 0xdc, 0x37, 0x44, 0x75, 0x28, 0xb8, 0xb1, 0xaa, 0x06, 0x31, 0x42, + 0x18, 0xe6, 0x46, 0xe3, 0x80, 0xf4, 0xda, 0xa4, 0xeb, 0x3a, 0x3d, 0xca, 0x42, 0xb4, 0x86, 0x95, + 0x80, 0xe1, 0x6d, 0x58, 0xd0, 0x28, 0x2d, 0xc7, 0xf4, 0xcf, 0x0c, 0x68, 0x6d, 0x76, 0x9c, 0x2e, + 0x19, 0xbe, 0x7d, 0xd6, 0xf1, 0x1e, 0x5c, 0xce, 0xa1, 0xa5, 0x1c, 0x73, 0x7d, 0x98, 0x93, 0x3b, + 0xbd, 0x49, 0x03, 0xdc, 0x80, 0x86, 0x72, 0x4e, 0x39, 0x5a, 0x87, 0x80, 0x52, 0xbc, 0xbf, 0x49, + 0x8a, 0xb7, 0x61, 0x41, 0x3b, 0xad, 0x1c, 0xdd, 0x7f, 0x30, 0xe0, 0x72, 0x3b, 0xf1, 0xda, 0xec, + 0x0d, 0xba, 0x87, 0x4e, 0x67, 0x14, 0x05, 0x17, 0x76, 0xd2, 0x93, 0xd9, 0xf1, 0x4b, 0xe9, 0x08, + 0xc4, 0xe8, 0xa5, 0x8c, 0xc6, 0x09, 0xae, 0xab, 0xc5, 0x5c, 0x4f, 0xe9, 0x5c, 0xc7, 0xd6, 0x55, + 0x4b, 0x58, 0xd7, 0x3e, 0x98, 0x79, 0x84, 0x96, 0x2b, 0xfb, 0xf9, 0xac, 0x4d, 0xc4, 0x33, 0xf2, + 0xf6, 0xd8, 0x13, 0x75, 0xf3, 0xa8, 0x1c, 0x90, 0x22, 0xd4, 0x28, 0x22, 0xb4, 0x92, 0xf0, 0x00, + 0x05, 0xec, 0xe3, 0x9f, 0xf3, 0xf6, 0x50, 0xf6, 0xa1, 0xa5, 0x34, 0x78, 0xa6, 0x62, 0xc0, 0x09, + 0x0b, 0x91, 0x62, 0x3a, 0x3e, 0xb3, 0xae, 0xe8, 0xc7, 0x3c, 0xc8, 0xd1, 0x4e, 0x2e, 0x27, 0x82, + 0xd7, 0xd1, 0x1b, 0xfd, 0x4f, 0x05, 0x16, 0x93, 0xf6, 0xa5, 0x14, 0x2c, 0x73, 0x2e, 0x41, 0x09, + 0x0b, 0x98, 0xe0, 0x02, 0x7c, 0x55, 0xb9, 0x5a, 0x35, 0x91, 0x25, 0xdb, 0xae, 0x6b, 0x0f, 0x09, + 0xff, 0x8b, 0xe1, 0x60, 0xdc, 0x5f, 0x6b, 0x07, 0xfe, 0xc0, 0xb1, 0xbf, 0xd3, 0x19, 0x8e, 0x89, + 0x72, 0xf1, 0xee, 0xc0, 0x74, 0xbf, 0xd3, 0x25, 0x1f, 0x58, 0x4f, 0x58, 0xfd, 0xe4, 0xb4, 0x85, + 0x11, 0x32, 0xfa, 0x1a, 0xd4, 0x7d, 0x99, 0x11, 0x4c, 0xb3, 0x95, 0x57, 0xb4, 0x95, 0x3b, 0x4e, + 0x70, 0x7b, 0x9d, 0x2f, 0x8c, 0xb1, 0xd1, 0x4d, 0xa8, 0x90, 0x97, 0xad, 0x99, 0x09, 0x4e, 0xab, + 0x90, 0x97, 0xf8, 0x31, 0x2c, 0x65, 0xc9, 0xb8, 0xdc, 0xfd, 0x3d, 0x8a, 0xeb, 0xb9, 0xf7, 0x0e, + 0x68, 0xe0, 0x77, 0xba, 0xc1, 0xe9, 0x2a, 0x53, 0x55, 0x53, 0x29, 0x56, 0x4d, 0x55, 0x53, 0x0d, + 0xfe, 0xb3, 0x01, 0xad, 0xec, 0x33, 0xcb, 0xf5, 0x30, 0x6f, 0x8a, 0xff, 0x5e, 0x64, 0xe8, 0x7c, + 0x40, 0x7c, 0x51, 0x30, 0xd5, 0x27, 0xd0, 0x97, 0x61, 0xc1, 0x4e, 0xd6, 0xff, 0xb7, 0x3b, 0xf4, + 0x07, 0x8c, 0xce, 0x29, 0x2b, 0x6b, 0x6a, 0xfd, 0x9f, 0x0b, 0xc0, 0xff, 0xa2, 0x41, 0xdf, 0x80, + 0xd9, 0x6e, 0xfc, 0xef, 0x05, 0x5a, 0x8c, 0xe8, 0x4a, 0xfc, 0x80, 0x62, 0x2e, 0x65, 0x81, 0xa9, + 0x87, 0xee, 0x40, 0xfd, 0x87, 0x51, 0x03, 0x0d, 0x2d, 0x08, 0x24, 0xb5, 0x41, 0x68, 0x5e, 0xd4, + 0x81, 0x7c, 0xdd, 0x51, 0xd4, 0x9d, 0x91, 0xeb, 0xd4, 0xbe, 0x90, 0x5c, 0x97, 0x6c, 0xe2, 0x6c, + 0x40, 0xc3, 0x56, 0xff, 0x99, 0x40, 0x97, 0xa2, 0x3f, 0x60, 0x52, 0xbf, 0x6f, 0x98, 0xad, 0xec, + 0x09, 0xea, 0xa1, 0xbb, 0x30, 0x47, 0x95, 0x9f, 0x09, 0x50, 0xc4, 0x5b, 0xea, 0x07, 0x08, 0xf3, + 0x52, 0x26, 0x9c, 0x7a, 0xe8, 0xfb, 0x70, 0xc9, 0xce, 0xee, 0xe4, 0xa3, 0x6b, 0xa9, 0x53, 0xf5, + 0x4e, 0xba, 0x89, 0x4f, 0x43, 0xa1, 0x1e, 0xea, 0xc3, 0x65, 0x3b, 0xaf, 0x2d, 0x8e, 0xde, 0x8d, + 0x37, 0xc8, 0xed, 0xd7, 0x9b, 0xd7, 0x4f, 0x47, 0xa2, 0x1e, 0x7a, 0x0a, 0x28, 0xd0, 0x7a, 0xc3, + 0x68, 0x59, 0xac, 0xcd, 0xec, 0x7b, 0x9b, 0xef, 0x14, 0xcc, 0x52, 0x0f, 0x75, 0xa1, 0x65, 0xe7, + 0xb4, 0x0c, 0x11, 0x4e, 0xfc, 0xae, 0x94, 0xd9, 0x2e, 0x35, 0xdf, 0x3d, 0x15, 0x87, 0xd3, 0x6d, + 0x6b, 0x3d, 0x2f, 0x49, 0x77, 0x66, 0xcb, 0x4e, 0xd2, 0x9d, 0xd3, 0x2c, 0x7b, 0x06, 0x0b, 0xb6, + 0xde, 0x04, 0x42, 0xd9, 0xab, 0xa4, 0x95, 0xad, 0x14, 0x4d, 0x53, 0x0f, 0x6d, 0x43, 0xf3, 0x30, + 0xd9, 0xd5, 0x40, 0xd1, 0x3f, 0x5b, 0x7a, 0x73, 0xc7, 0x34, 0xf3, 0xa6, 0x24, 0xcb, 0xa9, 0x36, + 0x81, 0xca, 0xb2, 0xde, 0xb9, 0x50, 0x59, 0xce, 0xea, 0x2f, 0xec, 0xc1, 0x85, 0x41, 0xba, 0x72, + 0x8e, 0xae, 0x44, 0xc5, 0xee, 0x8c, 0x56, 0x80, 0xb9, 0x9c, 0x3f, 0xc9, 0xf7, 0xb3, 0xd3, 0x65, + 0x66, 0xb9, 0x5f, 0x56, 0x7d, 0xdc, 0x5c, 0xce, 0x9f, 0xe4, 0x17, 0x55, 0xad, 0xf4, 0xc8, 0x8b, + 0x9a, 0xaa, 0x26, 0x99, 0x97, 0x32, 0xe1, 0xd4, 0x43, 0xb7, 0x61, 0x26, 0x82, 0x21, 0x94, 0x42, + 0x0a, 0x17, 0x2e, 0x68, 0x30, 0xee, 0x9a, 0xa4, 0xcf, 0x40, 0x69, 0x0c, 0xaa, 0xba, 0xa6, 0x64, + 0xa1, 0x71, 0x1b, 0x9a, 0xa9, 0xea, 0x97, 0x54, 0xb5, 0x5e, 0x9d, 0x93, 0xaa, 0xce, 0x28, 0x98, + 0x85, 0xaa, 0xd6, 0xeb, 0x3c, 0x39, 0xd6, 0x2d, 0x4a, 0x0b, 0x39, 0xd6, 0x2d, 0xf3, 0xfc, 0xe7, + 0xb0, 0x98, 0x59, 0xe2, 0x40, 0x57, 0xc5, 0xba, 0xbc, 0xa2, 0x8c, 0xb9, 0x5a, 0x8c, 0xc0, 0xc9, + 0xd5, 0xab, 0x0b, 0x92, 0xdc, 0xcc, 0x4a, 0x88, 0x24, 0x37, 0xa7, 0x2c, 0x71, 0x17, 0xe6, 0xd4, + 0xcc, 0x5f, 0x6a, 0x3e, 0x55, 0x79, 0x90, 0x9a, 0xd7, 0xca, 0x04, 0xdb, 0xd0, 0x4c, 0xe5, 0x9a, + 0x52, 0x19, 0x7a, 0x3e, 0x2c, 0x95, 0x91, 0x95, 0x9e, 0x3e, 0x87, 0xc5, 0xcc, 0xdc, 0x55, 0x4a, + 0x2e, 0x2f, 0xcb, 0x96, 0x92, 0xcb, 0x4f, 0x7d, 0xef, 0x40, 0x5d, 0x82, 0xa5, 0xa9, 0xa9, 0x79, + 0xa2, 0x34, 0xb5, 0x64, 0x3a, 0xb7, 0x0d, 0xcd, 0xd4, 0xa6, 0x92, 0x3b, 0x3d, 0xd7, 0x94, 0xdc, + 0x65, 0x25, 0x86, 0xdf, 0x4b, 0xc7, 0x5d, 0x51, 0xee, 0x84, 0x56, 0x53, 0xaf, 0x9f, 0x96, 0x03, + 0x9a, 0xd7, 0x4e, 0xc1, 0xe0, 0x2f, 0x65, 0x4e, 0x52, 0xa3, 0xbe, 0x94, 0x39, 0x99, 0x96, 0xfa, + 0x52, 0xe6, 0xe6, 0x45, 0xfc, 0xae, 0xa4, 0xd2, 0x05, 0xf5, 0xae, 0xe8, 0x39, 0x8c, 0x7a, 0x57, + 0xb2, 0xf2, 0x8c, 0xa7, 0x80, 0xf4, 0x58, 0x54, 0x6e, 0x99, 0x99, 0x0a, 0xc8, 0x2d, 0x73, 0x82, + 0xd8, 0xef, 0x2a, 0xfd, 0x41, 0x25, 0x3a, 0x44, 0xe9, 0xe7, 0x23, 0x15, 0xae, 0x9a, 0x57, 0x0b, + 0xe7, 0xa9, 0xb7, 0xd1, 0x7c, 0xde, 0x58, 0xe3, 0xff, 0x46, 0xbf, 0xcf, 0xbe, 0x07, 0xe7, 0x58, + 0x88, 0x7d, 0xfb, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd1, 0xe2, 0x3c, 0x77, 0x37, 0x2d, 0x00, 0x00, } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 96fd1648f..cffe91886 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -247,16 +247,6 @@ message GetGroupMemberReq { string OperationID = 2; } -message OperateGroupStatusReq { - string GroupID = 1; - int32 Status = 2; - string OperationID = 3; -} - -message OperateGroupStatusResp { - -} - message OperateUserRoleReq { string GroupID = 1; string UserID = 2; @@ -268,15 +258,6 @@ message OperateUserRoleResp { } -message DeleteGroupReq { - string GroupID = 1; - string OperationID = 2; -} - -message DeleteGroupResp { - -} - message GetGroupByIDReq { string GroupID = 1; string OperationID = 2; @@ -463,12 +444,10 @@ service group{ rpc inviteUserToGroup(InviteUserToGroupReq) returns (InviteUserToGroupResp); rpc getGroupAllMember(GetGroupAllMemberReq) returns(GetGroupAllMemberResp); - rpc GetGroupById(GetGroupByIDReq) returns(GetGroupByIDResp); + rpc GetGroupByID(GetGroupByIDReq) returns(GetGroupByIDResp); rpc GetGroup(GetGroupReq) returns(GetGroupResp); rpc GetGroups(GetGroupsReq) returns(GetGroupsResp); - rpc OperateGroupStatus(OperateGroupStatusReq) returns(OperateGroupStatusResp); rpc OperateUserRole(OperateUserRoleReq) returns(OperateUserRoleResp); - rpc DeleteGroup(DeleteGroupReq) returns(DeleteGroupResp); rpc GetGroupMembersCMS(GetGroupMembersCMSReq) returns(GetGroupMembersCMSResp); rpc RemoveGroupMembersCMS(RemoveGroupMembersCMSReq) returns(RemoveGroupMembersCMSResp); rpc AddGroupMembersCMS(AddGroupMembersCMSReq) returns(AddGroupMembersCMSResp); From 206140c3face2db192161c0aa07b1a8483e5a788 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 11 Aug 2022 19:50:52 +0800 Subject: [PATCH 110/230] callback kickoff --- script/check_all.sh | 16 ++++++++-------- script/start_all.sh | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/script/check_all.sh b/script/check_all.sh index 8caa33861..6dbe2c9d1 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -56,13 +56,13 @@ else fi -#check=$(ps aux | grep -w ./${cron_task_name} | grep -v grep | wc -l) -#if [ $check -ge 1 ]; then -# echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is cron_task_name"${COLOR_SUFFIX} -#else -# echo -e ${RED_PREFIX}"cron_task_name service does not start normally"${COLOR_SUFFIX} -# echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} -# exit -1 -#fi +check=$(ps aux | grep -w ./${cron_task_name} | grep -v grep | wc -l) +if [ $check -ge 1 ]; then + echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is cron_task_name"${COLOR_SUFFIX} +else + echo -e ${RED_PREFIX}"cron_task_name service does not start normally"${COLOR_SUFFIX} + echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} + exit -1 +fi echo -e ${YELLOW_PREFIX}"all services launch success"${COLOR_SUFFIX} diff --git a/script/start_all.sh b/script/start_all.sh index 223187973..4a5f7d65e 100644 --- a/script/start_all.sh +++ b/script/start_all.sh @@ -10,7 +10,7 @@ need_to_start_server_shell=( sdk_svr_start.sh msg_gateway_start.sh demo_svr_start.sh -# start_cron.sh + start_cron.sh ) time=`date +"%Y-%m-%d %H:%M:%S"` echo "==========================================================">>../logs/openIM.log 2>&1 & From 54cdb24cec1e870527656eca5107d27924a3cfb1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 11 Aug 2022 20:04:15 +0800 Subject: [PATCH 111/230] user add delete cache --- internal/rpc/user/user.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 711395506..f8d019838 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -467,6 +467,10 @@ func (s *userServer) SetGlobalRecvMessageOpt(ctx context.Context, req *pbUser.Se log.NewError(req.OperationID, "SetGlobalRecvMessageOpt failed ", err.Error(), user) return &pbUser.SetGlobalRecvMessageOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } + if err := rocksCache.DelUserInfoFromCache(user.UserID); err != nil { + log.NewError(req.OperationID, "DelUserInfoFromCache failed ", err.Error(), req.String()) + return &pbUser.SetGlobalRecvMessageOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: err.Error()}}, nil + } chat.UserInfoUpdatedNotification(req.OperationID, req.UserID, req.UserID) return &pbUser.SetGlobalRecvMessageOptResp{CommonResp: &pbUser.CommonResp{}}, nil } From f3e71fec91027a72e1dbf7b5a4712174b817d0a5 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 11 Aug 2022 20:25:33 +0800 Subject: [PATCH 112/230] callback kickoff --- pkg/common/db/RedisModel.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/RedisModel.go b/pkg/common/db/RedisModel.go index 535acd2e8..8ad30f878 100644 --- a/pkg/common/db/RedisModel.go +++ b/pkg/common/db/RedisModel.go @@ -253,8 +253,8 @@ func (d *DataBases) CleanUpOneUserAllMsgFromRedis(userID string, operationID str if err != nil { return utils.Wrap(err, "") } - if err = d.RDB.Del(ctx, vals...).Err(); err != nil { - return utils.Wrap(err, "") + for _, v := range vals { + err = d.RDB.Del(ctx, v).Err() } return nil } From 69008e08be1c22440270d8a8802445a7fefcf34a Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 12 Aug 2022 11:24:21 +0800 Subject: [PATCH 113/230] cms api rpc --- internal/cms_api/group/group.go | 6 ++++-- internal/cron_task/cron_task.go | 1 + internal/cron_task/test/main.go | 6 +++++- internal/rpc/group/group.go | 23 ++++++++++++-------- pkg/cms_api_struct/group.go | 37 +++++++++++++++++++++------------ pkg/common/log/logrus.go | 16 +++++++------- 6 files changed, 57 insertions(+), 32 deletions(-) diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index d486dbaf5..9e7f75a34 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -220,8 +220,10 @@ func GetGroupMembers(c *gin.Context) { ShowNumber: int(respPb.Pagination.ShowNumber), } resp.MemberNums = int(respPb.MemberNums) - for _, groupMembers := range respPb.Members { - resp.GroupMembers = append(resp.GroupMembers, *groupMembers) + for _, groupMember := range respPb.Members { + memberResp := cms_api_struct.GroupMemberResponse{} + utils.CopyStructFields(&memberResp, groupMember) + resp.GroupMembers = append(resp.GroupMembers, memberResp) } log.NewInfo("", utils.GetSelfFuncName(), "req: ", resp) openIMHttp.RespHttp200(c, constant.OK, resp) diff --git a/internal/cron_task/cron_task.go b/internal/cron_task/cron_task.go index a7f90cf91..d38b2b8a4 100644 --- a/internal/cron_task/cron_task.go +++ b/internal/cron_task/cron_task.go @@ -15,6 +15,7 @@ import ( const cronTaskOperationID = "cronTaskOperationID-" func StartCronTask() { + log.NewPrivateLog("cron.log") log.NewInfo(utils.OperationIDGenerator(), "start cron task") c := cron.New() fmt.Println("config", config.Config.Mongo.ChatRecordsClearTime) diff --git a/internal/cron_task/test/main.go b/internal/cron_task/test/main.go index 38dd16da6..d32f27739 100644 --- a/internal/cron_task/test/main.go +++ b/internal/cron_task/test/main.go @@ -1,3 +1,7 @@ package main -func main() {} +import "Open_IM/pkg/common/db" + +func main() { + db.DB.BatchInsertChat() +} diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index fd180290f..e97119854 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1358,6 +1358,7 @@ func (s *groupServer) GetGroupByID(_ context.Context, req *pbGroup.GetGroupByIDR resp.CMSGroup.GroupOwnerUserName = groupMember.Nickname resp.CMSGroup.GroupOwnerUserID = groupMember.UserID resp.CMSGroup.GroupInfo.CreatorUserID = group.CreatorUserID + resp.CMSGroup.GroupInfo.CreateTime = uint32(group.CreateTime.Unix()) utils.CopyStructFields(resp.CMSGroup.GroupInfo, group) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil @@ -1392,7 +1393,8 @@ func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pb log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster error", err.Error()) continue } - group.GroupOwnerUserID = groupMember.GroupID + group.GroupInfo.CreateTime = uint32(v.CreateTime.Unix()) + group.GroupOwnerUserID = groupMember.UserID group.GroupOwnerUserName = groupMember.Nickname resp.CMSGroups = append(resp.CMSGroups, group) } @@ -1411,13 +1413,7 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroups error", err.Error()) return resp, http.WrapError(constant.ErrDB) } - groupsCountNum, err := imdb.GetGroupsCountNum(db.Group{}) - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "groupsCountNum ", groupsCountNum) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsCountNum", err.Error()) - return resp, http.WrapError(constant.ErrDB) - } - resp.GroupNum = groupsCountNum + resp.Pagination.PageNumber = req.Pagination.PageNumber resp.Pagination.ShowNumber = req.Pagination.ShowNumber for _, v := range groups { @@ -1428,7 +1424,14 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster failed", err.Error(), v) continue } - group.GroupOwnerUserID = groupMember.GroupID + //groupCountNum, err := imdb.GetGroupsCountNum(v) + //if err != nil { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsCountNum failed", err.Error(), v) + // continue + //} + //group.GroupInfo.MemberCount = uint32(groupCountNum) + group.GroupInfo.CreateTime = uint32(v.CreateTime.Unix()) + group.GroupOwnerUserID = groupMember.UserID group.GroupOwnerUserName = groupMember.Nickname resp.CMSGroups = append(resp.CMSGroups, group) } @@ -1485,6 +1488,8 @@ func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGrou for _, groupMember := range groupMembers { member := open_im_sdk.GroupMemberFullInfo{} utils.CopyStructFields(&member, groupMember) + member.JoinTime = int32(groupMember.JoinTime.Unix()) + member.MuteEndTime = uint32(groupMember.MuteEndTime.Unix()) resp.Members = append(resp.Members, &member) } resp.Pagination = &open_im_sdk.ResponsePagination{ diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index 903a52d9b..7546312df 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -1,21 +1,17 @@ package cms_api_struct -import ( - server_api_params "Open_IM/pkg/proto/sdk_ws" -) - type GroupResponse struct { GroupOwnerName string `json:"GroupOwnerName"` GroupOwnerID string `json:"GroupOwnerID"` //*server_api_params.GroupInfo - GroupID string `json:"groupID"` - GroupName string `json:"groupName"` - Notification string `json:"notification"` - Introduction string `json:"introduction"` - FaceURL string `json:"faceURL"` - OwnerUserID string `json:"ownerUserID"` - CreateTime uint32 `json:"createTime"` - MemberCount uint32 `json:"memberCount"` + GroupID string `json:"groupID"` + GroupName string `json:"groupName"` + Notification string `json:"notification"` + Introduction string `json:"introduction"` + FaceURL string `json:"faceURL"` + OwnerUserID string `json:"ownerUserID"` + CreateTime uint32 `json:"createTime"` + //MemberCount uint32 `json:"memberCount"` Ex string `json:"ex"` Status int32 `json:"status"` CreatorUserID string `json:"creatorUserID"` @@ -108,8 +104,23 @@ type GetGroupMembersRequest struct { RequestPagination } +type GroupMemberResponse struct { + GroupID string `json:"groupID"` + UserID string `json:"userID"` + RoleLevel int32 `json:"roleLevel"` + JoinTime int32 `json:"joinTime"` + Nickname string `json:"nickname"` + FaceURL string `json:"faceURL"` + AppMangerLevel int32 `json:"appMangerLevel"` //if >0 + JoinSource int32 `json:"joinSource"` + OperatorUserID string `json:"operatorUserID"` + Ex string `json:"ex"` + MuteEndTime uint32 `json:"muteEndTime"` + InviterUserID string `json:"inviterUserID"` +} + type GetGroupMembersResponse struct { - GroupMembers []server_api_params.GroupMemberFullInfo `json:"groupMembers"` + GroupMembers []GroupMemberResponse `json:"groupMembers"` ResponsePagination MemberNums int `json:"memberNums"` } diff --git a/pkg/common/log/logrus.go b/pkg/common/log/logrus.go index 4194d0e95..b1f26855a 100644 --- a/pkg/common/log/logrus.go +++ b/pkg/common/log/logrus.go @@ -2,6 +2,8 @@ package log import ( "Open_IM/pkg/common/config" + "bufio" + //"bufio" "fmt" "os" @@ -33,13 +35,13 @@ func loggerInit(moduleName string) *Logger { //All logs will be printed logger.SetLevel(logrus.Level(config.Config.Log.RemainLogLevel)) //Close std console output - //src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) - //if err != nil { - // panic(err.Error()) - //} - //writer := bufio.NewWriter(src) - //logger.SetOutput(writer) - logger.SetOutput(os.Stdout) + src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) + if err != nil { + panic(err.Error()) + } + writer := bufio.NewWriter(src) + logger.SetOutput(writer) + //logger.SetOutput(os.Stdout) //Log Console Print Style Setting logger.SetFormatter(&nested.Formatter{ TimestampFormat: "2006-01-02 15:04:05.000", From e4bbd57c41f142f91c41650737dce04a92345e03 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 12 Aug 2022 15:03:36 +0800 Subject: [PATCH 114/230] fix log --- pkg/common/log/logrus.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/pkg/common/log/logrus.go b/pkg/common/log/logrus.go index 4194d0e95..b1f26855a 100644 --- a/pkg/common/log/logrus.go +++ b/pkg/common/log/logrus.go @@ -2,6 +2,8 @@ package log import ( "Open_IM/pkg/common/config" + "bufio" + //"bufio" "fmt" "os" @@ -33,13 +35,13 @@ func loggerInit(moduleName string) *Logger { //All logs will be printed logger.SetLevel(logrus.Level(config.Config.Log.RemainLogLevel)) //Close std console output - //src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) - //if err != nil { - // panic(err.Error()) - //} - //writer := bufio.NewWriter(src) - //logger.SetOutput(writer) - logger.SetOutput(os.Stdout) + src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) + if err != nil { + panic(err.Error()) + } + writer := bufio.NewWriter(src) + logger.SetOutput(writer) + //logger.SetOutput(os.Stdout) //Log Console Print Style Setting logger.SetFormatter(&nested.Formatter{ TimestampFormat: "2006-01-02 15:04:05.000", From a48b2e9edbeae1851757e4ba05da403bed5a6aee Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 12 Aug 2022 18:37:51 +0800 Subject: [PATCH 115/230] cms --- cmd/open_im_demo/main.go | 1 + internal/cms_api/admin/admin.go | 92 +++ internal/cms_api/router.go | 10 +- internal/cron_task/cron_task.go | 2 +- internal/demo/register/onboarding_process.go | 1 + .../demo/register/register_import_friend.go | 50 ++ internal/demo/register/set_password.go | 12 + internal/rpc/admin_cms/admin_cms.go | 49 ++ internal/rpc/group/group.go | 19 +- internal/rpc/message_cms/message_cms.go | 2 +- pkg/cms_api_struct/admin.go | 42 +- pkg/cms_api_struct/group.go | 16 +- pkg/common/db/model_struct.go | 8 + pkg/common/db/mysql.go | 7 +- .../mysql_model/im_mysql_model/demo_model.go | 35 + .../im_mysql_model/group_member_model.go | 8 - .../mysql_model/im_mysql_model/group_model.go | 127 +--- .../mysql_model/im_mysql_model/user_model.go | 6 + pkg/proto/admin_cms/admin_cms.pb.go | 689 ++++++++++++------ pkg/proto/admin_cms/admin_cms.proto | 33 + 20 files changed, 829 insertions(+), 380 deletions(-) create mode 100644 internal/demo/register/register_import_friend.go diff --git a/cmd/open_im_demo/main.go b/cmd/open_im_demo/main.go index b73fe7676..72eeee974 100644 --- a/cmd/open_im_demo/main.go +++ b/cmd/open_im_demo/main.go @@ -51,6 +51,7 @@ func main() { address = config.Config.CmsApi.ListenIP + ":" + strconv.Itoa(*ginPort) fmt.Println("start demo api server address: ", address) go register.OnboardingProcessRoutine() + go register.ImportFriendRoutine() err := r.Run(address) if err != nil { log.Error("", "run failed ", *ginPort, err.Error()) diff --git a/internal/cms_api/admin/admin.go b/internal/cms_api/admin/admin.go index a741c8016..81a900d02 100644 --- a/internal/cms_api/admin/admin.go +++ b/internal/cms_api/admin/admin.go @@ -8,6 +8,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbAdmin "Open_IM/pkg/proto/admin_cms" + pbCommon "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "github.com/minio/minio-go/v7" @@ -87,3 +88,94 @@ func AdminLogin(c *gin.Context) { resp.Token = respPb.Token openIMHttp.RespHttp200(c, constant.OK, resp) } + +func AddUserRegisterAddFriendIDList(c *gin.Context) { + var ( + req apiStruct.AddUserRegisterAddFriendIDListRequest + resp apiStruct.AddUserRegisterAddFriendIDListResponse + ) + if err := c.BindJSON(&req); err != nil { + log.NewInfo("0", utils.GetSelfFuncName(), err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, req.OperationID) + if etcdConn == nil { + errMsg := req.OperationID + "getcdv3.GetConn == nil" + log.NewError(req.OperationID, errMsg) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + client := pbAdmin.NewAdminCMSClient(etcdConn) + _, err := client.AddUserRegisterAddFriendIDList(context.Background(), &pbAdmin.AddUserRegisterAddFriendIDListReq{OperationID: req.OperationID, UserIDList: req.UserIDList}) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "rpc failed", err.Error()) + openIMHttp.RespHttp200(c, err, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, resp) +} + +func ReduceUserRegisterAddFriendIDList(c *gin.Context) { + var ( + req apiStruct.ReduceUserRegisterAddFriendIDListRequest + resp apiStruct.ReduceUserRegisterAddFriendIDListResponse + ) + if err := c.BindJSON(&req); err != nil { + log.NewInfo("0", utils.GetSelfFuncName(), err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, req.OperationID) + if etcdConn == nil { + errMsg := req.OperationID + "getcdv3.GetConn == nil" + log.NewError(req.OperationID, errMsg) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + client := pbAdmin.NewAdminCMSClient(etcdConn) + _, err := client.ReduceUserRegisterAddFriendIDList(context.Background(), &pbAdmin.ReduceUserRegisterAddFriendIDListReq{OperationID: req.OperationID, UserIDList: req.UserIDList, Operation: req.Operation}) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "rpc failed", err.Error()) + openIMHttp.RespHttp200(c, err, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, resp) +} + +func GetUserRegisterAddFriendIDList(c *gin.Context) { + var ( + req apiStruct.GetUserRegisterAddFriendIDListRequest + resp apiStruct.GetUserRegisterAddFriendIDListResponse + ) + if err := c.BindJSON(&req); err != nil { + log.NewInfo("0", utils.GetSelfFuncName(), err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, req.OperationID) + if etcdConn == nil { + errMsg := req.OperationID + "getcdv3.GetConn == nil" + log.NewError(req.OperationID, errMsg) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + client := pbAdmin.NewAdminCMSClient(etcdConn) + respPb, err := client.GetUserRegisterAddFriendIDList(context.Background(), &pbAdmin.GetUserRegisterAddFriendIDListReq{OperationID: req.OperationID, Pagination: &pbCommon.RequestPagination{ + PageNumber: int32(req.PageNumber), + ShowNumber: int32(req.ShowNumber), + }}) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "rpc failed", err.Error()) + openIMHttp.RespHttp200(c, err, nil) + return + } + resp.Users = respPb.UserInfoList + resp.ShowNumber = int(respPb.Pagination.ShowNumber) + resp.CurrentPage = int(respPb.Pagination.CurrentPage) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp) + openIMHttp.RespHttp200(c, constant.OK, resp) +} diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 058cd26ad..8edca6deb 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -20,6 +20,10 @@ func NewGinRouter() *gin.Engine { adminRouterGroup := router.Group("/admin") { adminRouterGroup.POST("/login", admin.AdminLogin) + adminRouterGroup.Use(middleware.JWTAuth()) + adminRouterGroup.POST("/add_user_register_add_friend_ID", admin.AddUserRegisterAddFriendIDList) + adminRouterGroup.POST("/reduce_user_register_reduce_friend_ID", admin.ReduceUserRegisterAddFriendIDList) + adminRouterGroup.POST("/get_user_register_reduce_friend_ID_list", admin.GetUserRegisterAddFriendIDList) } r2 := router.Group("") r2.Use(middleware.JWTAuth()) @@ -73,12 +77,6 @@ func NewGinRouter() *gin.Engine { userRouterGroup.POST("/delete_user", user.DeleteUser) userRouterGroup.GET("/get_users_by_name", user.GetUsersByName) } - friendRouterGroup := r2.Group("/friend") - { - friendRouterGroup.POST("/get_friends_by_id") - friendRouterGroup.POST("/set_friend") - friendRouterGroup.POST("/remove_friend") - } messageCMSRouterGroup := r2.Group("/message") { messageCMSRouterGroup.GET("/get_chat_logs", messageCMS.GetChatLogs) diff --git a/internal/cron_task/cron_task.go b/internal/cron_task/cron_task.go index d38b2b8a4..59a06fef1 100644 --- a/internal/cron_task/cron_task.go +++ b/internal/cron_task/cron_task.go @@ -15,7 +15,7 @@ import ( const cronTaskOperationID = "cronTaskOperationID-" func StartCronTask() { - log.NewPrivateLog("cron.log") + log.NewPrivateLog("cron") log.NewInfo(utils.OperationIDGenerator(), "start cron task") c := cron.New() fmt.Println("config", config.Config.Mongo.ChatRecordsClearTime) diff --git a/internal/demo/register/onboarding_process.go b/internal/demo/register/onboarding_process.go index 5a10b6ec0..53ae1f28b 100644 --- a/internal/demo/register/onboarding_process.go +++ b/internal/demo/register/onboarding_process.go @@ -9,6 +9,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" groupRpc "Open_IM/pkg/proto/group" + organizationRpc "Open_IM/pkg/proto/organization" commonPb "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" diff --git a/internal/demo/register/register_import_friend.go b/internal/demo/register/register_import_friend.go new file mode 100644 index 000000000..533168846 --- /dev/null +++ b/internal/demo/register/register_import_friend.go @@ -0,0 +1,50 @@ +package register + +import ( + "Open_IM/pkg/common/config" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbFriend "Open_IM/pkg/proto/friend" + "Open_IM/pkg/utils" + "context" + "strings" +) + +var ChImportFriend chan *pbFriend.ImportFriendReq + +func init() { + ChImportFriend = make(chan *pbFriend.ImportFriendReq, 1000) +} + +func ImportFriendRoutine() { + for { + req := <-ChImportFriend + go func() { + friendUserIDList, err := imdb.GetRegisterAddFriendList(0, 0) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), req, err.Error()) + return + } + if len(friendUserIDList) == 0 { + return + } + req.FriendUserIDList = friendUserIDList + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.OperationID) + if etcdConn == nil { + errMsg := req.OperationID + "getcdv3.GetConn == nil" + log.NewError(req.OperationID, errMsg) + return + } + client := pbFriend.NewFriendClient(etcdConn) + rpcResp, err := client.ImportFriend(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, "ImportFriend failed ", err.Error(), req.String()) + return + } + if rpcResp.CommonResp.ErrCode != 0 { + log.NewError(req.OperationID, "ImportFriend failed ", rpcResp) + } + }() + } +} diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index a553a10cd..79636f7f7 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -8,6 +8,7 @@ import ( "Open_IM/pkg/common/db/mysql_model/im_mysql_model" http2 "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" + pbFriend "Open_IM/pkg/proto/friend" "Open_IM/pkg/utils" "encoding/json" "math/big" @@ -132,6 +133,17 @@ func SetPassword(c *gin.Context) { log.NewWarn(params.OperationID, utils.GetSelfFuncName(), "to ch timeOut") } } + + select { + case ChImportFriend <- &pbFriend.ImportFriendReq{ + OperationID: params.OperationID, + FromUserID: userID, + OpUserID: userID, + }: + case <-time.After(time.Second * 2): + log.NewWarn(params.OperationID, utils.GetSelfFuncName(), "to ChImportFriend timeOut") + } + c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "", "data": openIMRegisterResp.UserToken}) return } diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index 4a97f94e1..f74d64eed 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -3,11 +3,13 @@ package admin_cms import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" openIMHttp "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbAdminCMS "Open_IM/pkg/proto/admin_cms" + server_api_params "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "net" @@ -100,3 +102,50 @@ func (s *adminCMSServer) AdminLogin(_ context.Context, req *pbAdminCMS.AdminLogi log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil } + +func (s *adminCMSServer) AddUserRegisterAddFriendIDList(_ context.Context, req *pbAdminCMS.AddUserRegisterAddFriendIDListReq) (*pbAdminCMS.AddUserRegisterAddFriendIDListResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &pbAdminCMS.AddUserRegisterAddFriendIDListResp{} + if err := imdb.AddUserRegisterAddFriendIDList(req.UserIDList...); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserIDList) + return resp, openIMHttp.WrapError(constant.ErrDB) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", req.String()) + return resp, nil +} + +func (s *adminCMSServer) ReduceUserRegisterAddFriendIDList(_ context.Context, req *pbAdminCMS.ReduceUserRegisterAddFriendIDListReq) (*pbAdminCMS.ReduceUserRegisterAddFriendIDListResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &pbAdminCMS.ReduceUserRegisterAddFriendIDListResp{} + if req.Operation == 0 { + if err := imdb.ReduceUserRegisterAddFriendIDList(req.UserIDList...); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserIDList) + return resp, openIMHttp.WrapError(constant.ErrDB) + } + } else { + if err := imdb.DeleteAllRegisterAddFriendIDList(); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserIDList) + return resp, openIMHttp.WrapError(constant.ErrDB) + } + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", req.String()) + return resp, nil +} + +func (s *adminCMSServer) GetUserRegisterAddFriendIDList(_ context.Context, req *pbAdminCMS.GetUserRegisterAddFriendIDListReq) (*pbAdminCMS.GetUserRegisterAddFriendIDListResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &pbAdminCMS.GetUserRegisterAddFriendIDListResp{UserInfoList: []*server_api_params.UserInfo{}} + userIDList, err := imdb.GetRegisterAddFriendList(req.Pagination.ShowNumber, req.Pagination.ShowNumber) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + return resp, openIMHttp.WrapError(constant.ErrDB) + } + userList, err := imdb.GetUsersByUserIDList(userIDList) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), userIDList) + return resp, openIMHttp.WrapError(constant.ErrDB) + } + utils.CopyStructFields(&resp.UserInfoList, userList) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", req.String()) + return resp, nil +} diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index e97119854..39e68d38f 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -623,7 +623,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou continue } - err = imdb.RemoveGroupMember(req.GroupID, v) + err = imdb.DeleteGroupMemberByGroupIDAndUserID(req.GroupID, v) if err != nil { log.NewError(req.OperationID, "RemoveGroupMember failed ", err.Error(), req.GroupID, v) resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1}) @@ -1344,7 +1344,7 @@ func (s *groupServer) GetGroupByID(_ context.Context, req *pbGroup.GetGroupByIDR return resp, http.WrapError(constant.ErrDB) } utils.CopyStructFields(resp.CMSGroup.GroupInfo, group) - groupMember, err := imdb.GetGroupMaster(group.GroupID) + groupMember, err := imdb.GetGroupOwnerInfoByGroupID(group.GroupID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster", err.Error()) return resp, http.WrapError(constant.ErrDB) @@ -1388,11 +1388,12 @@ func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pb for _, v := range groups { group := &pbGroup.CMSGroup{GroupInfo: &open_im_sdk.GroupInfo{}} utils.CopyStructFields(group.GroupInfo, v) - groupMember, err := imdb.GetGroupMaster(v.GroupID) + groupMember, err := imdb.GetGroupOwnerInfoByGroupID(v.GroupID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster error", err.Error()) continue } + group.GroupInfo.CreateTime = uint32(v.CreateTime.Unix()) group.GroupOwnerUserID = groupMember.UserID group.GroupOwnerUserName = groupMember.Nickname @@ -1419,17 +1420,11 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* for _, v := range groups { group := &pbGroup.CMSGroup{GroupInfo: &open_im_sdk.GroupInfo{}} utils.CopyStructFields(group.GroupInfo, v) - groupMember, err := imdb.GetGroupMaster(v.GroupID) + groupMember, err := imdb.GetGroupOwnerInfoByGroupID(v.GroupID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster failed", err.Error(), v) continue } - //groupCountNum, err := imdb.GetGroupsCountNum(v) - //if err != nil { - // log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsCountNum failed", err.Error(), v) - // continue - //} - //group.GroupInfo.MemberCount = uint32(groupCountNum) group.GroupInfo.CreateTime = uint32(v.CreateTime.Unix()) group.GroupOwnerUserID = groupMember.UserID group.GroupOwnerUserName = groupMember.Nickname @@ -1442,7 +1437,7 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* func (s *groupServer) OperateUserRole(_ context.Context, req *pbGroup.OperateUserRoleReq) (*pbGroup.OperateUserRoleResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) resp := &pbGroup.OperateUserRoleResp{} - oldOwnerUserID, err := imdb.GetGroupMaster(req.GroupID) + oldOwnerUserID, err := imdb.GetGroupOwnerInfoByGroupID(req.GroupID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster failed", err.Error()) return resp, http.WrapError(constant.ErrDB) @@ -1504,7 +1499,7 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) resp := &pbGroup.RemoveGroupMembersCMSResp{} for _, userId := range req.UserIDList { - err := imdb.RemoveGroupMember(req.GroupID, userId) + err := imdb.DeleteGroupMemberByGroupIDAndUserID(req.GroupID, userId) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) resp.Failed = append(resp.Failed, userId) diff --git a/internal/rpc/message_cms/message_cms.go b/internal/rpc/message_cms/message_cms.go index 44fdca1e4..f0757e421 100644 --- a/internal/rpc/message_cms/message_cms.go +++ b/internal/rpc/message_cms/message_cms.go @@ -150,7 +150,7 @@ func (s *messageCMSServer) GetChatLogs(_ context.Context, req *pbMessageCMS.GetC pbChatLog.ReciverNickName = recvUser.Nickname case constant.GroupChatType: - group, err := imdb.GetGroupById(chatLog.RecvID) + group, err := imdb.GetGroupInfoByGroupID(chatLog.RecvID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupById failed") continue diff --git a/pkg/cms_api_struct/admin.go b/pkg/cms_api_struct/admin.go index 02463f6e5..504ed02cc 100644 --- a/pkg/cms_api_struct/admin.go +++ b/pkg/cms_api_struct/admin.go @@ -1,8 +1,6 @@ package cms_api_struct -import ( - apiStruct "Open_IM/pkg/base_info" -) +import server_api_params "Open_IM/pkg/proto/sdk_ws" type AdminLoginRequest struct { AdminName string `json:"admin_name" binding:"required"` @@ -13,31 +11,29 @@ type AdminLoginResponse struct { Token string `json:"token"` } -type UploadUpdateAppReq struct { - OperationID string `form:"operationID" binding:"required"` - Type int `form:"type" binding:"required"` - Version string `form:"version" binding:"required"` - //File *multipart.FileHeader `form:"file" binding:"required"` - //Yaml *multipart.FileHeader `form:"yaml" binding:"required"` - ForceUpdate bool `form:"forceUpdate" binding:"required"` +type AddUserRegisterAddFriendIDListRequest struct { + OperationID string `json:"operationID" binding:"required"` + UserIDList []string `json:"userIDList" binding:"required"` } -type UploadUpdateAppResp struct { - apiStruct.CommResp +type AddUserRegisterAddFriendIDListResponse struct { } -type GetDownloadURLReq struct { +type ReduceUserRegisterAddFriendIDListRequest struct { + OperationID string `json:"operationID" binding:"required"` + UserIDList []string `json:"userIDList" binding:"required"` + Operation int32 `json:"operation" binding:"required"` +} + +type ReduceUserRegisterAddFriendIDListResponse struct { +} + +type GetUserRegisterAddFriendIDListRequest struct { OperationID string `json:"operationID" binding:"required"` - Type int `json:"type" binding:"required"` - Version string `json:"version" binding:"required"` + RequestPagination } -type GetDownloadURLResp struct { - apiStruct.CommResp - Data struct { - HasNewVersion bool `json:"hasNewVersion"` - ForceUpdate bool `json:"forceUpdate"` - FileURL string `json:"fileURL"` - YamlURL string `json:"yamlURL"` - } `json:"data"` +type GetUserRegisterAddFriendIDListResponse struct { + Users []*server_api_params.UserInfo `json:"Users"` + ResponsePagination } diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index 7546312df..5296478b6 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -4,14 +4,14 @@ type GroupResponse struct { GroupOwnerName string `json:"GroupOwnerName"` GroupOwnerID string `json:"GroupOwnerID"` //*server_api_params.GroupInfo - GroupID string `json:"groupID"` - GroupName string `json:"groupName"` - Notification string `json:"notification"` - Introduction string `json:"introduction"` - FaceURL string `json:"faceURL"` - OwnerUserID string `json:"ownerUserID"` - CreateTime uint32 `json:"createTime"` - //MemberCount uint32 `json:"memberCount"` + GroupID string `json:"groupID"` + GroupName string `json:"groupName"` + Notification string `json:"notification"` + Introduction string `json:"introduction"` + FaceURL string `json:"faceURL"` + OwnerUserID string `json:"ownerUserID"` + CreateTime uint32 `json:"createTime"` + MemberCount uint32 `json:"memberCount"` Ex string `json:"ex"` Status int32 `json:"status"` CreatorUserID string `json:"creatorUserID"` diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index ea2c0734d..bc33aec7e 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -325,3 +325,11 @@ type AppVersion struct { func (AppVersion) TableName() string { return "app_version" } + +type RegisterAddFriend struct { + UserID string `gorm:"column:user_id;size:64"` +} + +func (RegisterAddFriend) TableName() string { + return "register_add_friend" +} diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 58f651d94..105065f91 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -78,7 +78,7 @@ func initMysqlDB() { &GroupMember{}, &GroupRequest{}, &User{}, - &Black{}, &ChatLog{}, &Register{}, &Conversation{}, &AppVersion{}, &Department{}, &BlackList{}, &IpLimit{}, &UserIpLimit{}, &Invitation{}) + &Black{}, &ChatLog{}, &Register{}, &Conversation{}, &AppVersion{}, &Department{}, &BlackList{}, &IpLimit{}, &UserIpLimit{}, &Invitation{}, &RegisterAddFriend{}) db.Set("gorm:table_options", "CHARSET=utf8") db.Set("gorm:table_options", "collation=utf8_unicode_ci") @@ -154,6 +154,11 @@ func initMysqlDB() { fmt.Println("CreateTable UserIpLimit") db.Migrator().CreateTable(&UserIpLimit{}) } + + if !db.Migrator().HasTable(&RegisterAddFriend{}) { + fmt.Println("CreateTable RegisterAddFriend") + db.Migrator().CreateTable(&RegisterAddFriend{}) + } DB.MysqlDB.db = db return } diff --git a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go index 8668026d7..8184b5a6e 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go @@ -28,3 +28,38 @@ func ResetPassword(account, password string) error { } return db.DB.MysqlDB.DefaultGormDB().Table("registers").Where("account = ?", account).Updates(&r).Error } + +func GetRegisterAddFriendList(showNumber, pageNumber int32) ([]string, error) { + var IDList []string + var err error + model := db.DB.MysqlDB.DefaultGormDB().Model(&db.RegisterAddFriend{}) + if showNumber == 0 { + err = model.Pluck("user_id", &IDList).Error + } else { + err = model.Limit(int(showNumber)).Offset(int(showNumber*(pageNumber-1))).Pluck("user_id", &IDList).Error + } + return IDList, err +} + +func AddUserRegisterAddFriendIDList(userIDList ...string) error { + var list []db.RegisterAddFriend + for _, v := range userIDList { + list = append(list, db.RegisterAddFriend{UserID: v}) + } + err := db.DB.MysqlDB.DefaultGormDB().Create(list).Error + return err +} + +func ReduceUserRegisterAddFriendIDList(userIDList ...string) error { + var list []db.RegisterAddFriend + for _, v := range userIDList { + list = append(list, db.RegisterAddFriend{UserID: v}) + } + err := db.DB.MysqlDB.DefaultGormDB().Delete(list).Error + return err +} + +func DeleteAllRegisterAddFriendIDList() error { + err := db.DB.MysqlDB.DefaultGormDB().Where("1 = 1").Delete(&db.RegisterAddFriend{}).Error + return err +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 0a4780011..89526b9de 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -140,14 +140,6 @@ func IsExistGroupMember(groupID, userID string) bool { return true } -func RemoveGroupMember(groupID string, UserID string) error { - return DeleteGroupMemberByGroupIDAndUserID(groupID, UserID) -} - -func GetMemberInfoByID(groupID string, userID string) (*db.GroupMember, error) { - return GetGroupMemberInfoByGroupIDAndUserID(groupID, userID) -} - func GetGroupMemberByGroupID(groupID string, filter int32, begin int32, maxNumber int32) ([]db.GroupMember, error) { var memberList []db.GroupMember var err error diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 34d420b52..aa4ef29b9 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -1,12 +1,9 @@ package im_mysql_model import ( - "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/utils" - "errors" "fmt" - "gorm.io/gorm" "time" ) @@ -36,32 +33,35 @@ func InsertIntoGroup(groupInfo db.Group) error { if err != nil { return err } - return nil } -func GetGroupInfoByGroupID(groupId string) (*db.Group, error) { +func GetGroupInfoByGroupID(groupID string) (*db.Group, error) { var groupInfo db.Group - err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Where("group_id=?", groupId).Take(&groupInfo).Error - if err != nil { - return nil, err - } - return &groupInfo, nil + err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Where("group_id=?", groupID).Take(&groupInfo).Error + return &groupInfo, err } func SetGroupInfo(groupInfo db.Group) error { return db.DB.MysqlDB.DefaultGormDB().Table("groups").Where("group_id=?", groupInfo.GroupID).Updates(&groupInfo).Error } -func GetGroupsByName(groupName string, pageNumber, showNumber int32) ([]db.Group, error) { - var groups []db.Group - err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Where(fmt.Sprintf(" name like '%%%s%%' ", groupName)).Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))).Find(&groups).Error +type GroupWithNum struct { + db.Group + MemberCount int `gorm:"column:num"` +} + +func GetGroupsByName(groupName string, pageNumber, showNumber int32) ([]GroupWithNum, error) { + var groups []GroupWithNum + err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Select("groups.*, (select count(*) from group_members where group_members.group_id=groups.group_id) as num"). + Where(fmt.Sprintf(" name like '%%%s%%' ", groupName)).Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))).Find(&groups).Error return groups, err } -func GetGroups(pageNumber, showNumber int) ([]db.Group, error) { - var groups []db.Group - if err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groups).Error; err != nil { +func GetGroups(pageNumber, showNumber int) ([]GroupWithNum, error) { + var groups []GroupWithNum + if err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Select("groups.*, (select count(*) from group_members where group_members.group_id=groups.group_id) as num"). + Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groups).Error; err != nil { return groups, err } return groups, nil @@ -78,77 +78,6 @@ func OperateGroupStatus(groupId string, groupStatus int32) error { return nil } -func DeleteGroup(groupId string) error { - var group db.Group - var groupMembers []db.GroupMember - if err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Where("group_id=?", groupId).Delete(&group).Error; err != nil { - return err - } - if err := db.DB.MysqlDB.DefaultGormDB().Table("group_members").Where("group_id=?", groupId).Delete(groupMembers).Error; err != nil { - return err - } - return nil -} - -func OperateGroupRole(userId, groupId string, roleLevel int32) (string, string, error) { - groupMember := db.GroupMember{ - UserID: userId, - GroupID: groupId, - } - updateInfo := db.GroupMember{ - RoleLevel: roleLevel, - } - groupMaster := db.GroupMember{} - var err error - switch roleLevel { - case constant.GroupOwner: - err = db.DB.MysqlDB.DefaultGormDB().Transaction(func(tx *gorm.DB) error { - result := db.DB.MysqlDB.DefaultGormDB().Table("group_members").Where("group_id = ? and role_level = ?", groupId, constant.GroupOwner).First(&groupMaster).Updates(&db.GroupMember{ - RoleLevel: constant.GroupOrdinaryUsers, - }) - if result.Error != nil { - return result.Error - } - if result.RowsAffected == 0 { - return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) - } - - result = db.DB.MysqlDB.DefaultGormDB().Table("group_members").First(&groupMember).Updates(updateInfo) - if result.Error != nil { - return result.Error - } - if result.RowsAffected == 0 { - return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) - } - return nil - }) - - case constant.GroupOrdinaryUsers: - err = db.DB.MysqlDB.DefaultGormDB().Transaction(func(tx *gorm.DB) error { - result := db.DB.MysqlDB.DefaultGormDB().Table("group_members").Where("group_id = ? and role_level = ?", groupId, constant.GroupOwner).First(&groupMaster) - if result.Error != nil { - return result.Error - } - if result.RowsAffected == 0 { - return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) - } - if groupMaster.UserID == userId { - return errors.New(fmt.Sprintf("user %s is master of %s, cant set to ordinary user", userId, groupId)) - } else { - result = db.DB.MysqlDB.DefaultGormDB().Table("group_members").Find(&groupMember).Updates(updateInfo) - if result.Error != nil { - return result.Error - } - if result.RowsAffected == 0 { - return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) - } - } - return nil - }) - } - return "", "", err -} - func GetGroupsCountNum(group db.Group) (int32, error) { var count int64 if err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Where(fmt.Sprintf(" name like '%%%s%%' ", group.GroupName)).Count(&count).Error; err != nil { @@ -157,34 +86,10 @@ func GetGroupsCountNum(group db.Group) (int32, error) { return int32(count), nil } -func GetGroupById(groupId string) (db.Group, error) { - group := db.Group{ - GroupID: groupId, - } - if err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Find(&group).Error; err != nil { - return group, err - } - return group, nil -} - -func GetGroupMaster(groupId string) (db.GroupMember, error) { - groupMember := db.GroupMember{} - if err := db.DB.MysqlDB.DefaultGormDB().Table("group_members").Where("role_level=? and group_id=?", constant.GroupOwner, groupId).Find(&groupMember).Error; err != nil { - return groupMember, err - } - return groupMember, nil -} - func UpdateGroupInfoDefaultZero(groupID string, args map[string]interface{}) error { return db.DB.MysqlDB.DefaultGormDB().Table("groups").Where("group_id = ? ", groupID).Updates(args).Error } -func GetAllGroupIDList() ([]string, error) { - var groupIDList []string - err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Pluck("group_id", &groupIDList).Error - return groupIDList, err -} - func GetGroupIDListByGroupType(groupType int) ([]string, error) { var groupIDList []string if err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Where("group_type = ? ", groupType).Pluck("group_id", &groupIDList).Error; err != nil { diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index 6e8a1d280..059c43d55 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -72,6 +72,12 @@ func GetUserByUserID(userID string) (*db.User, error) { return &user, nil } +func GetUsersByUserIDList(userIDList []string) ([]*db.User, error) { + var userList []*db.User + err := db.DB.MysqlDB.DefaultGormDB().Table("users").Where("user_id in (?)", userIDList).Find(&userList).Error + return userList, err +} + func GetUserNameByUserID(userID string) (string, error) { var user db.User err := db.DB.MysqlDB.DefaultGormDB().Table("users").Select("name").Where("user_id=?", userID).First(&user).Error diff --git a/pkg/proto/admin_cms/admin_cms.pb.go b/pkg/proto/admin_cms/admin_cms.pb.go index 890f409a9..06522567a 100644 --- a/pkg/proto/admin_cms/admin_cms.pb.go +++ b/pkg/proto/admin_cms/admin_cms.pb.go @@ -1,284 +1,452 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.27.1 -// protoc v3.15.5 // source: admin_cms/admin_cms.proto -package admin_cms +package admin_cms // import "./admin_cms" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import sdk_ws "Open_IM/pkg/proto/sdk_ws" import ( - context "context" + context "golang.org/x/net/context" grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - 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) -) +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type AdminLoginReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - AdminID string `protobuf:"bytes,2,opt,name=AdminID,proto3" json:"AdminID,omitempty"` - Secret string `protobuf:"bytes,3,opt,name=Secret,proto3" json:"Secret,omitempty"` + OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` + AdminID string `protobuf:"bytes,2,opt,name=AdminID" json:"AdminID,omitempty"` + Secret string `protobuf:"bytes,3,opt,name=Secret" json:"Secret,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *AdminLoginReq) Reset() { - *x = AdminLoginReq{} - if protoimpl.UnsafeEnabled { - mi := &file_admin_cms_admin_cms_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AdminLoginReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AdminLoginReq) ProtoMessage() {} - -func (x *AdminLoginReq) ProtoReflect() protoreflect.Message { - mi := &file_admin_cms_admin_cms_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 AdminLoginReq.ProtoReflect.Descriptor instead. +func (m *AdminLoginReq) Reset() { *m = AdminLoginReq{} } +func (m *AdminLoginReq) String() string { return proto.CompactTextString(m) } +func (*AdminLoginReq) ProtoMessage() {} func (*AdminLoginReq) Descriptor() ([]byte, []int) { - return file_admin_cms_admin_cms_proto_rawDescGZIP(), []int{0} + return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{0} +} +func (m *AdminLoginReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdminLoginReq.Unmarshal(m, b) +} +func (m *AdminLoginReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdminLoginReq.Marshal(b, m, deterministic) +} +func (dst *AdminLoginReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdminLoginReq.Merge(dst, src) +} +func (m *AdminLoginReq) XXX_Size() int { + return xxx_messageInfo_AdminLoginReq.Size(m) +} +func (m *AdminLoginReq) XXX_DiscardUnknown() { + xxx_messageInfo_AdminLoginReq.DiscardUnknown(m) } -func (x *AdminLoginReq) GetOperationID() string { - if x != nil { - return x.OperationID +var xxx_messageInfo_AdminLoginReq proto.InternalMessageInfo + +func (m *AdminLoginReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *AdminLoginReq) GetAdminID() string { - if x != nil { - return x.AdminID +func (m *AdminLoginReq) GetAdminID() string { + if m != nil { + return m.AdminID } return "" } -func (x *AdminLoginReq) GetSecret() string { - if x != nil { - return x.Secret +func (m *AdminLoginReq) GetSecret() string { + if m != nil { + return m.Secret } return "" } type AdminLoginResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *AdminLoginResp) Reset() { - *x = AdminLoginResp{} - if protoimpl.UnsafeEnabled { - mi := &file_admin_cms_admin_cms_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AdminLoginResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AdminLoginResp) ProtoMessage() {} - -func (x *AdminLoginResp) ProtoReflect() protoreflect.Message { - mi := &file_admin_cms_admin_cms_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 AdminLoginResp.ProtoReflect.Descriptor instead. +func (m *AdminLoginResp) Reset() { *m = AdminLoginResp{} } +func (m *AdminLoginResp) String() string { return proto.CompactTextString(m) } +func (*AdminLoginResp) ProtoMessage() {} func (*AdminLoginResp) Descriptor() ([]byte, []int) { - return file_admin_cms_admin_cms_proto_rawDescGZIP(), []int{1} + return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{1} +} +func (m *AdminLoginResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdminLoginResp.Unmarshal(m, b) +} +func (m *AdminLoginResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdminLoginResp.Marshal(b, m, deterministic) +} +func (dst *AdminLoginResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdminLoginResp.Merge(dst, src) +} +func (m *AdminLoginResp) XXX_Size() int { + return xxx_messageInfo_AdminLoginResp.Size(m) +} +func (m *AdminLoginResp) XXX_DiscardUnknown() { + xxx_messageInfo_AdminLoginResp.DiscardUnknown(m) } -func (x *AdminLoginResp) GetToken() string { - if x != nil { - return x.Token +var xxx_messageInfo_AdminLoginResp proto.InternalMessageInfo + +func (m *AdminLoginResp) GetToken() string { + if m != nil { + return m.Token } return "" } -var File_admin_cms_admin_cms_proto protoreflect.FileDescriptor - -var file_admin_cms_admin_cms_proto_rawDesc = []byte{ - 0x0a, 0x19, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6d, 0x73, 0x2f, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x5f, 0x63, 0x6d, 0x73, 0x22, 0x63, 0x0a, 0x0d, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, - 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x26, 0x0a, 0x0e, 0x41, - 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x32, 0x4d, 0x0a, 0x08, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x43, 0x4d, 0x53, 0x12, - 0x41, 0x0a, 0x0a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x18, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, - 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, - 0x63, 0x6d, 0x73, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x42, 0x17, 0x5a, 0x15, 0x2e, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6d, - 0x73, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, +type AddUserRegisterAddFriendIDListReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + UserIDList []string `protobuf:"bytes,2,rep,name=userIDList" json:"userIDList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -var ( - file_admin_cms_admin_cms_proto_rawDescOnce sync.Once - file_admin_cms_admin_cms_proto_rawDescData = file_admin_cms_admin_cms_proto_rawDesc -) - -func file_admin_cms_admin_cms_proto_rawDescGZIP() []byte { - file_admin_cms_admin_cms_proto_rawDescOnce.Do(func() { - file_admin_cms_admin_cms_proto_rawDescData = protoimpl.X.CompressGZIP(file_admin_cms_admin_cms_proto_rawDescData) - }) - return file_admin_cms_admin_cms_proto_rawDescData +func (m *AddUserRegisterAddFriendIDListReq) Reset() { *m = AddUserRegisterAddFriendIDListReq{} } +func (m *AddUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } +func (*AddUserRegisterAddFriendIDListReq) ProtoMessage() {} +func (*AddUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{2} +} +func (m *AddUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddUserRegisterAddFriendIDListReq.Unmarshal(m, b) +} +func (m *AddUserRegisterAddFriendIDListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddUserRegisterAddFriendIDListReq.Marshal(b, m, deterministic) +} +func (dst *AddUserRegisterAddFriendIDListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddUserRegisterAddFriendIDListReq.Merge(dst, src) +} +func (m *AddUserRegisterAddFriendIDListReq) XXX_Size() int { + return xxx_messageInfo_AddUserRegisterAddFriendIDListReq.Size(m) +} +func (m *AddUserRegisterAddFriendIDListReq) XXX_DiscardUnknown() { + xxx_messageInfo_AddUserRegisterAddFriendIDListReq.DiscardUnknown(m) } -var file_admin_cms_admin_cms_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_admin_cms_admin_cms_proto_goTypes = []interface{}{ - (*AdminLoginReq)(nil), // 0: admin_cms.AdminLoginReq - (*AdminLoginResp)(nil), // 1: admin_cms.AdminLoginResp -} -var file_admin_cms_admin_cms_proto_depIdxs = []int32{ - 0, // 0: admin_cms.adminCMS.AdminLogin:input_type -> admin_cms.AdminLoginReq - 1, // 1: admin_cms.adminCMS.AdminLogin:output_type -> admin_cms.AdminLoginResp - 1, // [1:2] is the sub-list for method output_type - 0, // [0:1] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} +var xxx_messageInfo_AddUserRegisterAddFriendIDListReq proto.InternalMessageInfo -func init() { file_admin_cms_admin_cms_proto_init() } -func file_admin_cms_admin_cms_proto_init() { - if File_admin_cms_admin_cms_proto != nil { - return +func (m *AddUserRegisterAddFriendIDListReq) GetOperationID() string { + if m != nil { + return m.OperationID } - if !protoimpl.UnsafeEnabled { - file_admin_cms_admin_cms_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AdminLoginReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_admin_cms_admin_cms_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AdminLoginResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } + return "" +} + +func (m *AddUserRegisterAddFriendIDListReq) GetUserIDList() []string { + if m != nil { + return m.UserIDList } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_admin_cms_admin_cms_proto_rawDesc, - NumEnums: 0, - NumMessages: 2, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_admin_cms_admin_cms_proto_goTypes, - DependencyIndexes: file_admin_cms_admin_cms_proto_depIdxs, - MessageInfos: file_admin_cms_admin_cms_proto_msgTypes, - }.Build() - File_admin_cms_admin_cms_proto = out.File - file_admin_cms_admin_cms_proto_rawDesc = nil - file_admin_cms_admin_cms_proto_goTypes = nil - file_admin_cms_admin_cms_proto_depIdxs = nil + return nil +} + +type AddUserRegisterAddFriendIDListResp struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddUserRegisterAddFriendIDListResp) Reset() { *m = AddUserRegisterAddFriendIDListResp{} } +func (m *AddUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } +func (*AddUserRegisterAddFriendIDListResp) ProtoMessage() {} +func (*AddUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{3} +} +func (m *AddUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddUserRegisterAddFriendIDListResp.Unmarshal(m, b) +} +func (m *AddUserRegisterAddFriendIDListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddUserRegisterAddFriendIDListResp.Marshal(b, m, deterministic) +} +func (dst *AddUserRegisterAddFriendIDListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddUserRegisterAddFriendIDListResp.Merge(dst, src) +} +func (m *AddUserRegisterAddFriendIDListResp) XXX_Size() int { + return xxx_messageInfo_AddUserRegisterAddFriendIDListResp.Size(m) +} +func (m *AddUserRegisterAddFriendIDListResp) XXX_DiscardUnknown() { + xxx_messageInfo_AddUserRegisterAddFriendIDListResp.DiscardUnknown(m) +} + +var xxx_messageInfo_AddUserRegisterAddFriendIDListResp proto.InternalMessageInfo + +type ReduceUserRegisterAddFriendIDListReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + Operation int32 `protobuf:"varint,2,opt,name=operation" json:"operation,omitempty"` + UserIDList []string `protobuf:"bytes,3,rep,name=userIDList" json:"userIDList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ReduceUserRegisterAddFriendIDListReq) Reset() { *m = ReduceUserRegisterAddFriendIDListReq{} } +func (m *ReduceUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } +func (*ReduceUserRegisterAddFriendIDListReq) ProtoMessage() {} +func (*ReduceUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{4} +} +func (m *ReduceUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ReduceUserRegisterAddFriendIDListReq.Unmarshal(m, b) +} +func (m *ReduceUserRegisterAddFriendIDListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ReduceUserRegisterAddFriendIDListReq.Marshal(b, m, deterministic) +} +func (dst *ReduceUserRegisterAddFriendIDListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_ReduceUserRegisterAddFriendIDListReq.Merge(dst, src) +} +func (m *ReduceUserRegisterAddFriendIDListReq) XXX_Size() int { + return xxx_messageInfo_ReduceUserRegisterAddFriendIDListReq.Size(m) +} +func (m *ReduceUserRegisterAddFriendIDListReq) XXX_DiscardUnknown() { + xxx_messageInfo_ReduceUserRegisterAddFriendIDListReq.DiscardUnknown(m) +} + +var xxx_messageInfo_ReduceUserRegisterAddFriendIDListReq proto.InternalMessageInfo + +func (m *ReduceUserRegisterAddFriendIDListReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *ReduceUserRegisterAddFriendIDListReq) GetOperation() int32 { + if m != nil { + return m.Operation + } + return 0 +} + +func (m *ReduceUserRegisterAddFriendIDListReq) GetUserIDList() []string { + if m != nil { + return m.UserIDList + } + return nil +} + +type ReduceUserRegisterAddFriendIDListResp struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ReduceUserRegisterAddFriendIDListResp) Reset() { *m = ReduceUserRegisterAddFriendIDListResp{} } +func (m *ReduceUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } +func (*ReduceUserRegisterAddFriendIDListResp) ProtoMessage() {} +func (*ReduceUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{5} +} +func (m *ReduceUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ReduceUserRegisterAddFriendIDListResp.Unmarshal(m, b) +} +func (m *ReduceUserRegisterAddFriendIDListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ReduceUserRegisterAddFriendIDListResp.Marshal(b, m, deterministic) +} +func (dst *ReduceUserRegisterAddFriendIDListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_ReduceUserRegisterAddFriendIDListResp.Merge(dst, src) +} +func (m *ReduceUserRegisterAddFriendIDListResp) XXX_Size() int { + return xxx_messageInfo_ReduceUserRegisterAddFriendIDListResp.Size(m) +} +func (m *ReduceUserRegisterAddFriendIDListResp) XXX_DiscardUnknown() { + xxx_messageInfo_ReduceUserRegisterAddFriendIDListResp.DiscardUnknown(m) +} + +var xxx_messageInfo_ReduceUserRegisterAddFriendIDListResp proto.InternalMessageInfo + +type GetUserRegisterAddFriendIDListReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserRegisterAddFriendIDListReq) Reset() { *m = GetUserRegisterAddFriendIDListReq{} } +func (m *GetUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } +func (*GetUserRegisterAddFriendIDListReq) ProtoMessage() {} +func (*GetUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{6} +} +func (m *GetUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserRegisterAddFriendIDListReq.Unmarshal(m, b) +} +func (m *GetUserRegisterAddFriendIDListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserRegisterAddFriendIDListReq.Marshal(b, m, deterministic) +} +func (dst *GetUserRegisterAddFriendIDListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserRegisterAddFriendIDListReq.Merge(dst, src) +} +func (m *GetUserRegisterAddFriendIDListReq) XXX_Size() int { + return xxx_messageInfo_GetUserRegisterAddFriendIDListReq.Size(m) +} +func (m *GetUserRegisterAddFriendIDListReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserRegisterAddFriendIDListReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserRegisterAddFriendIDListReq proto.InternalMessageInfo + +func (m *GetUserRegisterAddFriendIDListReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *GetUserRegisterAddFriendIDListReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination + } + return nil +} + +type GetUserRegisterAddFriendIDListResp struct { + UserInfoList []*sdk_ws.UserInfo `protobuf:"bytes,1,rep,name=UserInfoList" json:"UserInfoList,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserRegisterAddFriendIDListResp) Reset() { *m = GetUserRegisterAddFriendIDListResp{} } +func (m *GetUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } +func (*GetUserRegisterAddFriendIDListResp) ProtoMessage() {} +func (*GetUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{7} +} +func (m *GetUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserRegisterAddFriendIDListResp.Unmarshal(m, b) +} +func (m *GetUserRegisterAddFriendIDListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserRegisterAddFriendIDListResp.Marshal(b, m, deterministic) +} +func (dst *GetUserRegisterAddFriendIDListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserRegisterAddFriendIDListResp.Merge(dst, src) +} +func (m *GetUserRegisterAddFriendIDListResp) XXX_Size() int { + return xxx_messageInfo_GetUserRegisterAddFriendIDListResp.Size(m) +} +func (m *GetUserRegisterAddFriendIDListResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserRegisterAddFriendIDListResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserRegisterAddFriendIDListResp proto.InternalMessageInfo + +func (m *GetUserRegisterAddFriendIDListResp) GetUserInfoList() []*sdk_ws.UserInfo { + if m != nil { + return m.UserInfoList + } + return nil +} + +func (m *GetUserRegisterAddFriendIDListResp) GetPagination() *sdk_ws.ResponsePagination { + if m != nil { + return m.Pagination + } + return nil +} + +func init() { + proto.RegisterType((*AdminLoginReq)(nil), "admin_cms.AdminLoginReq") + proto.RegisterType((*AdminLoginResp)(nil), "admin_cms.AdminLoginResp") + proto.RegisterType((*AddUserRegisterAddFriendIDListReq)(nil), "admin_cms.AddUserRegisterAddFriendIDListReq") + proto.RegisterType((*AddUserRegisterAddFriendIDListResp)(nil), "admin_cms.AddUserRegisterAddFriendIDListResp") + proto.RegisterType((*ReduceUserRegisterAddFriendIDListReq)(nil), "admin_cms.ReduceUserRegisterAddFriendIDListReq") + proto.RegisterType((*ReduceUserRegisterAddFriendIDListResp)(nil), "admin_cms.ReduceUserRegisterAddFriendIDListResp") + proto.RegisterType((*GetUserRegisterAddFriendIDListReq)(nil), "admin_cms.GetUserRegisterAddFriendIDListReq") + proto.RegisterType((*GetUserRegisterAddFriendIDListResp)(nil), "admin_cms.GetUserRegisterAddFriendIDListResp") } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConnInterface +var _ grpc.ClientConn // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 +const _ = grpc.SupportPackageIsVersion4 + +// Client API for AdminCMS service -// AdminCMSClient is the client API for AdminCMS service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type AdminCMSClient interface { AdminLogin(ctx context.Context, in *AdminLoginReq, opts ...grpc.CallOption) (*AdminLoginResp, error) + AddUserRegisterAddFriendIDList(ctx context.Context, in *AddUserRegisterAddFriendIDListReq, opts ...grpc.CallOption) (*AddUserRegisterAddFriendIDListResp, error) + ReduceUserRegisterAddFriendIDList(ctx context.Context, in *ReduceUserRegisterAddFriendIDListReq, opts ...grpc.CallOption) (*ReduceUserRegisterAddFriendIDListResp, error) + GetUserRegisterAddFriendIDList(ctx context.Context, in *GetUserRegisterAddFriendIDListReq, opts ...grpc.CallOption) (*GetUserRegisterAddFriendIDListResp, error) } type adminCMSClient struct { - cc grpc.ClientConnInterface + cc *grpc.ClientConn } -func NewAdminCMSClient(cc grpc.ClientConnInterface) AdminCMSClient { +func NewAdminCMSClient(cc *grpc.ClientConn) AdminCMSClient { return &adminCMSClient{cc} } func (c *adminCMSClient) AdminLogin(ctx context.Context, in *AdminLoginReq, opts ...grpc.CallOption) (*AdminLoginResp, error) { out := new(AdminLoginResp) - err := c.cc.Invoke(ctx, "/admin_cms.adminCMS/AdminLogin", in, out, opts...) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/AdminLogin", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -// AdminCMSServer is the server API for AdminCMS service. +func (c *adminCMSClient) AddUserRegisterAddFriendIDList(ctx context.Context, in *AddUserRegisterAddFriendIDListReq, opts ...grpc.CallOption) (*AddUserRegisterAddFriendIDListResp, error) { + out := new(AddUserRegisterAddFriendIDListResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/AddUserRegisterAddFriendIDList", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) ReduceUserRegisterAddFriendIDList(ctx context.Context, in *ReduceUserRegisterAddFriendIDListReq, opts ...grpc.CallOption) (*ReduceUserRegisterAddFriendIDListResp, error) { + out := new(ReduceUserRegisterAddFriendIDListResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/ReduceUserRegisterAddFriendIDList", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) GetUserRegisterAddFriendIDList(ctx context.Context, in *GetUserRegisterAddFriendIDListReq, opts ...grpc.CallOption) (*GetUserRegisterAddFriendIDListResp, error) { + out := new(GetUserRegisterAddFriendIDListResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/GetUserRegisterAddFriendIDList", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for AdminCMS service + type AdminCMSServer interface { AdminLogin(context.Context, *AdminLoginReq) (*AdminLoginResp, error) -} - -// UnimplementedAdminCMSServer can be embedded to have forward compatible implementations. -type UnimplementedAdminCMSServer struct { -} - -func (*UnimplementedAdminCMSServer) AdminLogin(context.Context, *AdminLoginReq) (*AdminLoginResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method AdminLogin not implemented") + AddUserRegisterAddFriendIDList(context.Context, *AddUserRegisterAddFriendIDListReq) (*AddUserRegisterAddFriendIDListResp, error) + ReduceUserRegisterAddFriendIDList(context.Context, *ReduceUserRegisterAddFriendIDListReq) (*ReduceUserRegisterAddFriendIDListResp, error) + GetUserRegisterAddFriendIDList(context.Context, *GetUserRegisterAddFriendIDListReq) (*GetUserRegisterAddFriendIDListResp, error) } func RegisterAdminCMSServer(s *grpc.Server, srv AdminCMSServer) { @@ -303,6 +471,60 @@ func _AdminCMS_AdminLogin_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _AdminCMS_AddUserRegisterAddFriendIDList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddUserRegisterAddFriendIDListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).AddUserRegisterAddFriendIDList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/AddUserRegisterAddFriendIDList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).AddUserRegisterAddFriendIDList(ctx, req.(*AddUserRegisterAddFriendIDListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_ReduceUserRegisterAddFriendIDList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReduceUserRegisterAddFriendIDListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).ReduceUserRegisterAddFriendIDList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/ReduceUserRegisterAddFriendIDList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).ReduceUserRegisterAddFriendIDList(ctx, req.(*ReduceUserRegisterAddFriendIDListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_GetUserRegisterAddFriendIDList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserRegisterAddFriendIDListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).GetUserRegisterAddFriendIDList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/GetUserRegisterAddFriendIDList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).GetUserRegisterAddFriendIDList(ctx, req.(*GetUserRegisterAddFriendIDListReq)) + } + return interceptor(ctx, in, info, handler) +} + var _AdminCMS_serviceDesc = grpc.ServiceDesc{ ServiceName: "admin_cms.adminCMS", HandlerType: (*AdminCMSServer)(nil), @@ -311,7 +533,56 @@ var _AdminCMS_serviceDesc = grpc.ServiceDesc{ MethodName: "AdminLogin", Handler: _AdminCMS_AdminLogin_Handler, }, + { + MethodName: "AddUserRegisterAddFriendIDList", + Handler: _AdminCMS_AddUserRegisterAddFriendIDList_Handler, + }, + { + MethodName: "ReduceUserRegisterAddFriendIDList", + Handler: _AdminCMS_ReduceUserRegisterAddFriendIDList_Handler, + }, + { + MethodName: "GetUserRegisterAddFriendIDList", + Handler: _AdminCMS_GetUserRegisterAddFriendIDList_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "admin_cms/admin_cms.proto", } + +func init() { + proto.RegisterFile("admin_cms/admin_cms.proto", fileDescriptor_admin_cms_e0cc6ee28c5c634b) +} + +var fileDescriptor_admin_cms_e0cc6ee28c5c634b = []byte{ + // 460 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0xcd, 0x6e, 0xd3, 0x40, + 0x10, 0xc7, 0xe5, 0x5a, 0x2d, 0x64, 0x02, 0x1c, 0x56, 0x7c, 0xb8, 0x01, 0x55, 0xc9, 0x2a, 0x85, + 0x1c, 0xc0, 0x46, 0xe1, 0xc8, 0x01, 0x05, 0x02, 0xc8, 0x52, 0xab, 0xa2, 0xad, 0xb8, 0x70, 0xb1, + 0x4c, 0x3c, 0x44, 0x56, 0x94, 0xdd, 0xed, 0xce, 0x86, 0x9e, 0xb8, 0xf6, 0xc2, 0xab, 0xf0, 0x38, + 0x3c, 0x10, 0xea, 0x26, 0x8d, 0x6d, 0xea, 0xd6, 0xad, 0x72, 0xf3, 0x7c, 0xfc, 0x77, 0x7f, 0x1e, + 0xfd, 0x67, 0x61, 0x37, 0xcd, 0xe6, 0xb9, 0x4c, 0x26, 0x73, 0x8a, 0xd6, 0x5f, 0xa1, 0x36, 0xca, + 0x2a, 0xd6, 0x5a, 0x27, 0x3a, 0xbd, 0x23, 0x8d, 0x32, 0x89, 0x0f, 0x23, 0x3d, 0x9b, 0x46, 0xae, + 0x1a, 0x51, 0x36, 0x4b, 0x4e, 0x29, 0x3a, 0x5d, 0x75, 0xf3, 0x09, 0xdc, 0x1f, 0x9d, 0xf7, 0x1f, + 0xa8, 0x69, 0x2e, 0x05, 0x9e, 0xb0, 0x2e, 0xb4, 0x8f, 0x34, 0x9a, 0xd4, 0xe6, 0x4a, 0xc6, 0xe3, + 0xc0, 0xeb, 0x7a, 0x83, 0x96, 0x28, 0xa7, 0x58, 0x00, 0x77, 0x9c, 0x24, 0x1e, 0x07, 0x5b, 0xae, + 0x7a, 0x11, 0xb2, 0xc7, 0xb0, 0x73, 0x8c, 0x13, 0x83, 0x36, 0xf0, 0x5d, 0x61, 0x15, 0xf1, 0xe7, + 0xf0, 0xa0, 0x7c, 0x09, 0x69, 0xf6, 0x10, 0xb6, 0xad, 0x9a, 0xa1, 0x5c, 0x9d, 0xbf, 0x0c, 0x38, + 0x42, 0x6f, 0x94, 0x65, 0x5f, 0x09, 0x8d, 0xc0, 0x69, 0x4e, 0x16, 0xcd, 0x28, 0xcb, 0x3e, 0x99, + 0x1c, 0x65, 0x16, 0x8f, 0x0f, 0x72, 0xb2, 0x2b, 0x40, 0x75, 0x19, 0xb0, 0x94, 0x62, 0x7b, 0x00, + 0x0b, 0x42, 0xb3, 0x94, 0x04, 0x5b, 0x5d, 0x7f, 0xd0, 0x12, 0xa5, 0x0c, 0xef, 0x03, 0x6f, 0xba, + 0x86, 0x34, 0x3f, 0xf3, 0xa0, 0x2f, 0x30, 0x5b, 0x4c, 0x70, 0x63, 0xa0, 0x67, 0xd0, 0x5a, 0x87, + 0x6e, 0x66, 0xdb, 0xa2, 0x48, 0xfc, 0x87, 0xeb, 0x5f, 0xc2, 0x7d, 0x01, 0xfb, 0x37, 0xe0, 0x20, + 0xcd, 0x7f, 0x7b, 0xd0, 0xfb, 0x8c, 0x76, 0x63, 0xdc, 0x31, 0xc0, 0x97, 0x74, 0x9a, 0xcb, 0x82, + 0xb7, 0x3d, 0xec, 0x87, 0x84, 0xe6, 0x27, 0x9a, 0x24, 0xd5, 0x79, 0xa2, 0x53, 0x93, 0xce, 0x29, + 0x14, 0x78, 0xb2, 0x40, 0xb2, 0x45, 0xaf, 0x28, 0xe9, 0xf8, 0x1f, 0x0f, 0x78, 0x13, 0x0d, 0x69, + 0xf6, 0x0e, 0xee, 0x9d, 0xb7, 0xc4, 0xf2, 0x87, 0x72, 0xff, 0xef, 0x75, 0xfd, 0x41, 0x7b, 0xf8, + 0xb4, 0xe6, 0xba, 0x8b, 0x36, 0x51, 0x11, 0xb0, 0x8f, 0x35, 0xb4, 0xfb, 0xb5, 0xb4, 0xa4, 0x95, + 0x24, 0xac, 0xc7, 0x1d, 0xfe, 0xf5, 0xe1, 0xae, 0xdb, 0x9c, 0x0f, 0x87, 0xc7, 0x6c, 0x04, 0x50, + 0x18, 0x96, 0x05, 0x61, 0xb1, 0x63, 0x95, 0x65, 0xe9, 0xec, 0x5e, 0x51, 0x21, 0xcd, 0x7e, 0xc1, + 0xde, 0xf5, 0x26, 0x63, 0x2f, 0x2b, 0xe2, 0x06, 0xdb, 0x77, 0x5e, 0xdd, 0xa2, 0x9b, 0x34, 0x3b, + 0xf3, 0xa0, 0xd7, 0xe8, 0x1a, 0x16, 0x95, 0x0e, 0xbd, 0x89, 0xd7, 0x3b, 0xaf, 0x6f, 0x27, 0x58, + 0xce, 0xe1, 0x7a, 0x17, 0x54, 0xe6, 0xd0, 0x68, 0xdf, 0xca, 0x1c, 0x9a, 0xed, 0xf5, 0xfe, 0xc9, + 0xb7, 0x47, 0x61, 0xf1, 0x44, 0xbe, 0x5d, 0x7f, 0x7d, 0xdf, 0x71, 0xef, 0xdf, 0x9b, 0x7f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x99, 0xbe, 0x8e, 0x2a, 0x4a, 0x05, 0x00, 0x00, +} diff --git a/pkg/proto/admin_cms/admin_cms.proto b/pkg/proto/admin_cms/admin_cms.proto index 6759268ed..acee32324 100644 --- a/pkg/proto/admin_cms/admin_cms.proto +++ b/pkg/proto/admin_cms/admin_cms.proto @@ -1,5 +1,6 @@ syntax = "proto3"; option go_package = "./admin_cms;admin_cms"; +import "Open_IM/pkg/proto/sdk_ws/ws.proto"; package admin_cms; message AdminLoginReq { @@ -13,6 +14,38 @@ message AdminLoginResp { string token = 1; } +message AddUserRegisterAddFriendIDListReq { + string operationID = 1; + repeated string userIDList = 2; +} + +message AddUserRegisterAddFriendIDListResp { + +} + +message ReduceUserRegisterAddFriendIDListReq { + string operationID = 1; + int32 operation = 2; + repeated string userIDList = 3; +} + +message ReduceUserRegisterAddFriendIDListResp { + +} + +message GetUserRegisterAddFriendIDListReq { + string operationID = 1; + server_api_params.RequestPagination Pagination = 2; +} + +message GetUserRegisterAddFriendIDListResp { + repeated server_api_params.UserInfo UserInfoList = 1; + server_api_params.ResponsePagination Pagination = 2; +} + service adminCMS { rpc AdminLogin(AdminLoginReq) returns(AdminLoginResp); + rpc AddUserRegisterAddFriendIDList(AddUserRegisterAddFriendIDListReq) returns(AddUserRegisterAddFriendIDListResp); + rpc ReduceUserRegisterAddFriendIDList(ReduceUserRegisterAddFriendIDListReq) returns(ReduceUserRegisterAddFriendIDListResp); + rpc GetUserRegisterAddFriendIDList(GetUserRegisterAddFriendIDListReq) returns(GetUserRegisterAddFriendIDListResp); } \ No newline at end of file From 9b130ae56c012fc0a15feb2b584ce46d3002b301 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 12 Aug 2022 19:13:08 +0800 Subject: [PATCH 116/230] fix log --- internal/cms_api/admin/admin.go | 8 ++++---- internal/cms_api/router.go | 6 +++--- pkg/cms_api_struct/admin.go | 6 +++--- pkg/cms_api_struct/common.go | 9 +++++++-- pkg/common/db/model_struct.go | 2 +- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/internal/cms_api/admin/admin.go b/internal/cms_api/admin/admin.go index 81a900d02..4583afd2c 100644 --- a/internal/cms_api/admin/admin.go +++ b/internal/cms_api/admin/admin.go @@ -64,7 +64,7 @@ func AdminLogin(c *gin.Context) { reqPb pbAdmin.AdminLoginReq ) if err := c.BindJSON(&req); err != nil { - log.NewInfo("0", utils.GetSelfFuncName(), err.Error()) + log.NewError("0", utils.GetSelfFuncName(), err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -95,7 +95,7 @@ func AddUserRegisterAddFriendIDList(c *gin.Context) { resp apiStruct.AddUserRegisterAddFriendIDListResponse ) if err := c.BindJSON(&req); err != nil { - log.NewInfo("0", utils.GetSelfFuncName(), err.Error()) + log.NewError("0", utils.GetSelfFuncName(), err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -123,7 +123,7 @@ func ReduceUserRegisterAddFriendIDList(c *gin.Context) { resp apiStruct.ReduceUserRegisterAddFriendIDListResponse ) if err := c.BindJSON(&req); err != nil { - log.NewInfo("0", utils.GetSelfFuncName(), err.Error()) + log.NewError("0", utils.GetSelfFuncName(), err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -151,7 +151,7 @@ func GetUserRegisterAddFriendIDList(c *gin.Context) { resp apiStruct.GetUserRegisterAddFriendIDListResponse ) if err := c.BindJSON(&req); err != nil { - log.NewInfo("0", utils.GetSelfFuncName(), err.Error()) + log.NewError("0", utils.GetSelfFuncName(), err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 8edca6deb..b21e4a2a0 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -21,9 +21,9 @@ func NewGinRouter() *gin.Engine { { adminRouterGroup.POST("/login", admin.AdminLogin) adminRouterGroup.Use(middleware.JWTAuth()) - adminRouterGroup.POST("/add_user_register_add_friend_ID", admin.AddUserRegisterAddFriendIDList) - adminRouterGroup.POST("/reduce_user_register_reduce_friend_ID", admin.ReduceUserRegisterAddFriendIDList) - adminRouterGroup.POST("/get_user_register_reduce_friend_ID_list", admin.GetUserRegisterAddFriendIDList) + adminRouterGroup.POST("/add_user_register_add_friend_id", admin.AddUserRegisterAddFriendIDList) + adminRouterGroup.POST("/reduce_user_register_reduce_friend_id", admin.ReduceUserRegisterAddFriendIDList) + adminRouterGroup.POST("/get_user_register_reduce_friend_id_list", admin.GetUserRegisterAddFriendIDList) } r2 := router.Group("") r2.Use(middleware.JWTAuth()) diff --git a/pkg/cms_api_struct/admin.go b/pkg/cms_api_struct/admin.go index 504ed02cc..81048719b 100644 --- a/pkg/cms_api_struct/admin.go +++ b/pkg/cms_api_struct/admin.go @@ -22,7 +22,7 @@ type AddUserRegisterAddFriendIDListResponse struct { type ReduceUserRegisterAddFriendIDListRequest struct { OperationID string `json:"operationID" binding:"required"` UserIDList []string `json:"userIDList" binding:"required"` - Operation int32 `json:"operation" binding:"required"` + Operation int32 `json:"operation"` } type ReduceUserRegisterAddFriendIDListResponse struct { @@ -30,10 +30,10 @@ type ReduceUserRegisterAddFriendIDListResponse struct { type GetUserRegisterAddFriendIDListRequest struct { OperationID string `json:"operationID" binding:"required"` - RequestPagination + RequestPaginationBody } type GetUserRegisterAddFriendIDListResponse struct { - Users []*server_api_params.UserInfo `json:"Users"` + Users []*server_api_params.UserInfo `json:"users"` ResponsePagination } diff --git a/pkg/cms_api_struct/common.go b/pkg/cms_api_struct/common.go index 7d160f543..812e212ab 100644 --- a/pkg/cms_api_struct/common.go +++ b/pkg/cms_api_struct/common.go @@ -5,7 +5,12 @@ type RequestPagination struct { ShowNumber int `form:"show_number" binding:"required"` } +type RequestPaginationBody struct { + PageNumber int `json:"pageNumber" binding:"required"` + ShowNumber int `json:"showNumber" binding:"required"` +} + type ResponsePagination struct { CurrentPage int `json:"current_number" binding:"required"` - ShowNumber int `json:"show_number" binding:"required"` -} \ No newline at end of file + ShowNumber int `json:"show_number" binding:"required"` +} diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index bc33aec7e..c6e2dbf92 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -327,7 +327,7 @@ func (AppVersion) TableName() string { } type RegisterAddFriend struct { - UserID string `gorm:"column:user_id;size:64"` + UserID string `gorm:"column:user_id;primary_key;size:64"` } func (RegisterAddFriend) TableName() string { From 9c7ae3b0ef23402776b7d7dd99f1ca2465368092 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 12 Aug 2022 19:24:30 +0800 Subject: [PATCH 117/230] mark message --- internal/push/logic/push_handler.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/push/logic/push_handler.go b/internal/push/logic/push_handler.go index ccc00b480..f91d5507c 100644 --- a/internal/push/logic/push_handler.go +++ b/internal/push/logic/push_handler.go @@ -59,6 +59,7 @@ func (ms *PushConsumerHandler) ConsumeClaim(sess sarama.ConsumerGroupSession, for msg := range claim.Messages() { log.NewDebug("", "kafka get info to mysql", "msgTopic", msg.Topic, "msgPartition", msg.Partition, "msg", string(msg.Value)) ms.msgHandle[msg.Topic](msg.Value) + sess.MarkMessage(msg, "") } return nil } From 5b248c82f5f2fa8ecc2a80887d48bdedbad4de0a Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 12 Aug 2022 19:37:45 +0800 Subject: [PATCH 118/230] fix log --- internal/rpc/admin_cms/admin_cms.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index f74d64eed..19e2dc46b 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -135,7 +135,7 @@ func (s *adminCMSServer) ReduceUserRegisterAddFriendIDList(_ context.Context, re func (s *adminCMSServer) GetUserRegisterAddFriendIDList(_ context.Context, req *pbAdminCMS.GetUserRegisterAddFriendIDListReq) (*pbAdminCMS.GetUserRegisterAddFriendIDListResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbAdminCMS.GetUserRegisterAddFriendIDListResp{UserInfoList: []*server_api_params.UserInfo{}} - userIDList, err := imdb.GetRegisterAddFriendList(req.Pagination.ShowNumber, req.Pagination.ShowNumber) + userIDList, err := imdb.GetRegisterAddFriendList(req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) return resp, openIMHttp.WrapError(constant.ErrDB) @@ -145,6 +145,11 @@ func (s *adminCMSServer) GetUserRegisterAddFriendIDList(_ context.Context, req * log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), userIDList) return resp, openIMHttp.WrapError(constant.ErrDB) } + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), userList, userIDList) + resp.Pagination = &server_api_params.ResponsePagination{ + CurrentPage: req.Pagination.PageNumber, + ShowNumber: req.Pagination.ShowNumber, + } utils.CopyStructFields(&resp.UserInfoList, userList) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", req.String()) return resp, nil From 82777d641cd2adcabb26874bd9d49ca7582e4f97 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 12 Aug 2022 19:47:06 +0800 Subject: [PATCH 119/230] fix log --- internal/demo/register/register_import_friend.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/demo/register/register_import_friend.go b/internal/demo/register/register_import_friend.go index 533168846..01e3e7d16 100644 --- a/internal/demo/register/register_import_friend.go +++ b/internal/demo/register/register_import_friend.go @@ -26,7 +26,9 @@ func ImportFriendRoutine() { log.NewError(req.OperationID, utils.GetSelfFuncName(), req, err.Error()) return } + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "ImportFriendRoutine IDList", friendUserIDList) if len(friendUserIDList) == 0 { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "len==0") return } req.FriendUserIDList = friendUserIDList From 7caccce907b7ce15902da44c6fa1d4c4c37adc11 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 12 Aug 2022 19:51:23 +0800 Subject: [PATCH 120/230] fix log --- internal/demo/register/set_password.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 79636f7f7..da58d4d92 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -138,7 +138,7 @@ func SetPassword(c *gin.Context) { case ChImportFriend <- &pbFriend.ImportFriendReq{ OperationID: params.OperationID, FromUserID: userID, - OpUserID: userID, + OpUserID: config.Config.Manager.AppManagerUid[0], }: case <-time.After(time.Second * 2): log.NewWarn(params.OperationID, utils.GetSelfFuncName(), "to ChImportFriend timeOut") From b8aa54a15982cbdd22a1417399b7f8dd2a772834 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 12 Aug 2022 20:05:01 +0800 Subject: [PATCH 121/230] mark message --- internal/push/logic/push_handler.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/push/logic/push_handler.go b/internal/push/logic/push_handler.go index f91d5507c..f137c09d6 100644 --- a/internal/push/logic/push_handler.go +++ b/internal/push/logic/push_handler.go @@ -13,6 +13,7 @@ import ( "Open_IM/pkg/common/log" pbChat "Open_IM/pkg/proto/msg" pbPush "Open_IM/pkg/proto/push" + "Open_IM/pkg/utils" "github.com/Shopify/sarama" "github.com/golang/protobuf/proto" ) @@ -43,6 +44,11 @@ func (ms *PushConsumerHandler) handleMs2PsChat(msg []byte) { MsgData: msgFromMQ.MsgData, PushToUserID: msgFromMQ.PushToUserID, } + sec := msgFromMQ.MsgData.SendTime / 1000 + nowSec := utils.GetCurrentTimestampBySecond() + if nowSec-sec > 10 { + return + } switch msgFromMQ.MsgData.SessionType { case constant.SuperGroupChatType: MsgToSuperGroupUser(pbData) From 4e5c1606f31f13fe397b198a77820939853bff3f Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 12 Aug 2022 21:48:13 +0800 Subject: [PATCH 122/230] log --- cmd/open_im_api/main.go | 2 +- internal/msg_gateway/gate/ws_server.go | 2 +- internal/msg_transfer/logic/online_history_msg_handler.go | 5 ++--- pkg/base_info/group_api_struct.go | 2 +- pkg/common/db/RedisModel.go | 4 ++-- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index e63749da3..0f3307da8 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -41,7 +41,7 @@ func main() { gin.SetMode(gin.ReleaseMode) f, _ := os.Create("../logs/api.log") gin.DefaultWriter = io.MultiWriter(f) - gin.SetMode(gin.DebugMode) + // gin.SetMode(gin.DebugMode) r := gin.Default() r.Use(utils.CorsHandler()) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index a313b8c51..3698f6d60 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -237,7 +237,7 @@ func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int, newConn log.NewError(operationID, utils.GetSelfFuncName(), "callbackUserOffline failed", callbackResp) } } else { - log.NewWarn(operationID, "normal uid-conn ", uid, platformID, oldConnMap[platformID]) + log.Debug(operationID, "normal uid-conn ", uid, platformID, oldConnMap[platformID]) } } else { diff --git a/internal/msg_transfer/logic/online_history_msg_handler.go b/internal/msg_transfer/logic/online_history_msg_handler.go index 34f950320..a8d23c916 100644 --- a/internal/msg_transfer/logic/online_history_msg_handler.go +++ b/internal/msg_transfer/logic/online_history_msg_handler.go @@ -407,7 +407,7 @@ func (och *OnlineHistoryRedisConsumerHandler) ConsumeClaim(sess sarama.ConsumerG rwLock.Unlock() split := 1000 triggerID = utils.OperationIDGenerator() - log.NewWarn(triggerID, "timer trigger msg consumer start", len(ccMsg)) + log.Debug(triggerID, "timer trigger msg consumer start", len(ccMsg)) for i := 0; i < len(ccMsg)/split; i++ { //log.Debug() och.msgDistributionCh <- Cmd2Value{Cmd: ConsumerMsgs, Value: TriggerChannelValue{ @@ -419,9 +419,8 @@ func (och *OnlineHistoryRedisConsumerHandler) ConsumeClaim(sess sarama.ConsumerG } //sess.MarkMessage(ccMsg[len(cMsg)-1], "") - log.NewWarn(triggerID, "timer trigger msg consumer end", len(cMsg)) + log.Debug(triggerID, "timer trigger msg consumer end", len(cMsg)) } - } } diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 8918b852c..8f2eaccd4 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -203,7 +203,7 @@ type SetGroupInfoReq struct { FaceURL string `json:"faceURL"` Ex string `json:"ex"` OperationID string `json:"operationID" binding:"required"` - NeedVerification *int32 `json:"needVerification" ` + NeedVerification *int32 `json:"needVerification"` LookMemberInfo *int32 `json:"lookMemberInfo"` ApplyMemberFriend *int32 `json:"applyMemberFriend"` } diff --git a/pkg/common/db/RedisModel.go b/pkg/common/db/RedisModel.go index 8ad30f878..8c11279ef 100644 --- a/pkg/common/db/RedisModel.go +++ b/pkg/common/db/RedisModel.go @@ -185,14 +185,14 @@ func (d *DataBases) GetMessageListBySeq(userID string, seqList []uint32, operati if err != nil { errResult = err failedSeqList = append(failedSeqList, v) - log2.NewWarn(operationID, "redis get message error:", err.Error(), v) + log2.Debug(operationID, "redis get message error: ", err.Error(), v) } else { msg := pbCommon.MsgData{} err = jsonpb.UnmarshalString(result, &msg) if err != nil { errResult = err failedSeqList = append(failedSeqList, v) - log2.NewWarn(operationID, "Unmarshal err", result, err.Error()) + log2.NewWarn(operationID, "Unmarshal err ", result, err.Error()) } else { log2.NewDebug(operationID, "redis get msg is ", msg.String()) seqMsg = append(seqMsg, &msg) From 39606248a10b68601f05ab96383d82c822fb2d05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AC=A7=E9=98=B3=E6=B0=8F?= Date: Sat, 13 Aug 2022 10:41:10 +0800 Subject: [PATCH 123/230] =?UTF-8?q?=E9=82=80=E8=AF=B7=E7=A0=81=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、新增邀请码功能 needInvitationCode: false 改成 true 后生效 2、完善后台用户注册 修改相关 --- config/config.yaml | 1 + internal/api/auth/auth.go | 2 + internal/demo/register/send_code.go | 15 +- internal/demo/register/set_password.go | 9 + internal/rpc/auth/auth.go | 3 + pkg/base_info/public_struct.go | 29 +- pkg/cms_api_struct/user.go | 3 +- pkg/common/config/config.go | 1 + pkg/common/constant/error.go | 2 + pkg/common/db/model_struct.go | 6 +- pkg/common/db/mysql.go | 4 + .../im_mysql_model/invitation_model.go | 91 + .../mysql_model/im_mysql_model/user_model.go | 21 +- pkg/proto/sdk_ws/ws.pb.go | 1648 +++++++++-------- pkg/proto/sdk_ws/ws.proto | 1 + pkg/proto/user/user.pb.go | 453 ++--- pkg/proto/user/user.proto | 6 +- 17 files changed, 1233 insertions(+), 1062 deletions(-) create mode 100644 pkg/common/db/mysql_model/im_mysql_model/invitation_model.go diff --git a/config/config.yaml b/config/config.yaml index 400f6e6aa..357e120db 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -724,6 +724,7 @@ demo: verificationCodeTemplateCode: 2902877 enable: true superCode: 666666 #超级验证码,建议修改掉,收不到短信验证码时可以用此替代 + needInvitationCode: false # second codeTTL: 60 useSuperCode: true diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index eaf1af6fc..7fcd82684 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -69,6 +69,8 @@ func UserRegister(c *gin.Context) { log.NewError(req.OperationID, errMsg) if reply.CommonResp.ErrCode == constant.RegisterLimit { c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterLimit, "errMsg": "用户注册被限制"}) + } else if reply.CommonResp.ErrCode == constant.InvitationError { + c.JSON(http.StatusOK, gin.H{"errCode": constant.InvitationError, "errMsg": "邀请码错误"}) } else { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) } diff --git a/internal/demo/register/send_code.go b/internal/demo/register/send_code.go index c7fca46e6..a0e6f9c76 100644 --- a/internal/demo/register/send_code.go +++ b/internal/demo/register/send_code.go @@ -8,12 +8,12 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/common/utils" "fmt" - "github.com/gin-gonic/gin" - "gopkg.in/gomail.v2" "math/rand" "net/http" - "time" + + "github.com/gin-gonic/gin" + "gopkg.in/gomail.v2" ) var sms SMS @@ -73,6 +73,15 @@ func SendVerificationCode(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"errCode": constant.HasRegistered, "errMsg": "The phone number has been registered"}) return } + //需要邀请码 + if config.Config.Demo.NeedInvitationCode { + err = im_mysql_model.CheckInvitationCode(params.InvitationCode) + if err != nil { + log.NewError(params.OperationID, "邀请码错误", params) + c.JSON(http.StatusOK, gin.H{"errCode": constant.InvitationError, "errMsg": "邀请码错误"}) + return + } + } accountKey = accountKey + "_" + constant.VerificationCodeForRegisterSuffix ok, err := db.DB.JudgeAccountEXISTS(accountKey) if ok || err != nil { diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index da58d4d92..3f5d691cd 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -64,6 +64,12 @@ func SetPassword(c *gin.Context) { return } } + if config.Config.Demo.NeedInvitationCode { + err := im_mysql_model.CheckInvitationCode(params.InvitationCode) + if err != nil { + c.JSON(http.StatusOK, gin.H{"errCode": constant.InvitationError, "errMsg": "邀请码错误"}) + } + } } //userID := utils.Base64Encode(account) var userID string @@ -89,6 +95,7 @@ func SetPassword(c *gin.Context) { createIp = c.ClientIP() } openIMRegisterReq.CreateIp = createIp + openIMRegisterReq.InvitationCode = params.InvitationCode openIMRegisterResp := api.UserRegisterResp{} log.NewDebug(params.OperationID, utils.GetSelfFuncName(), "register req:", openIMRegisterReq) bMsg, err := http2.Post(url, openIMRegisterReq, 2) @@ -105,6 +112,8 @@ func SetPassword(c *gin.Context) { } if openIMRegisterResp.ErrCode == constant.RegisterLimit { c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterLimit, "errMsg": "用户注册被限制"}) + } else if openIMRegisterResp.ErrCode == constant.InvitationError { + c.JSON(http.StatusOK, gin.H{"errCode": constant.InvitationError, "errMsg": "邀请码错误"}) } else { c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register failed: " + openIMRegisterResp.ErrMsg}) } diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index 91692aaf4..399c5c567 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -39,6 +39,9 @@ func (rpc *rpcAuth) UserRegister(_ context.Context, req *pbAuth.UserRegisterReq) } err := imdb.UserRegister(user) if err != nil { + if err == constant.InvitationMsg { + return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.InvitationError, ErrMsg: "邀请码错误"}}, nil + } errMsg := req.OperationID + " imdb.UserRegister failed " + err.Error() + user.UserID log.NewError(req.OperationID, errMsg, user) return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}}, nil diff --git a/pkg/base_info/public_struct.go b/pkg/base_info/public_struct.go index 458af9da9..5df606b28 100644 --- a/pkg/base_info/public_struct.go +++ b/pkg/base_info/public_struct.go @@ -7,20 +7,21 @@ import ( ) type ApiUserInfo struct { - UserID string `json:"userID" binding:"required,min=1,max=64" swaggo:"true,用户ID,"` - Nickname string `json:"nickname" binding:"omitempty,min=1,max=64" swaggo:"true,my id,19"` - FaceURL string `json:"faceURL" binding:"omitempty,max=1024"` - Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"` - PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"` - Birth uint32 `json:"birth" binding:"omitempty"` - Email string `json:"email" binding:"omitempty,max=64"` - CreateIp string `json:"createIp" binding:"omitempty,max=15"` - CreateTime int64 `json:"createTime"` - LastLoginIp string `json:"LastLoginIp" binding:"omitempty,max=15"` - LastLoginTime int64 `json:"lastLoginTime"` - LoginTimes int32 `json:"loginTimes" binding:"omitempty"` - LoginLimit int32 `json:"loginLimit" binding:"omitempty"` - Ex string `json:"ex" binding:"omitempty,max=1024"` + UserID string `json:"userID" binding:"required,min=1,max=64" swaggo:"true,用户ID,"` + Nickname string `json:"nickname" binding:"omitempty,min=1,max=64" swaggo:"true,my id,19"` + FaceURL string `json:"faceURL" binding:"omitempty,max=1024"` + Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"` + PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"` + Birth uint32 `json:"birth" binding:"omitempty"` + Email string `json:"email" binding:"omitempty,max=64"` + CreateIp string `json:"createIp" binding:"omitempty,max=15"` + CreateTime int64 `json:"createTime"` + LastLoginIp string `json:"LastLoginIp" binding:"omitempty,max=15"` + LastLoginTime int64 `json:"lastLoginTime"` + LoginTimes int32 `json:"loginTimes" binding:"omitempty"` + LoginLimit int32 `json:"loginLimit" binding:"omitempty"` + Ex string `json:"ex" binding:"omitempty,max=1024"` + InvitationCode string `json:"invitationCode" binding:"omitempty"` } //type Conversation struct { diff --git a/pkg/cms_api_struct/user.go b/pkg/cms_api_struct/user.go index bf54cd765..d672283ff 100644 --- a/pkg/cms_api_struct/user.go +++ b/pkg/cms_api_struct/user.go @@ -56,8 +56,9 @@ type ResignUserResponse struct { type AlterUserRequest struct { UserId string `json:"user_id" binding:"required"` Nickname string `json:"nickname"` - PhoneNumber int `json:"phone_number" validate:"len=11"` + PhoneNumber string `json:"phone_number" validate:"len=11"` Email string `json:"email"` + Birth string `json:"birth"` } type AlterUserResponse struct { diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 53082d375..935231953 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -492,6 +492,7 @@ type config struct { } TestDepartMentID string `yaml:"testDepartMentID"` ImAPIURL string `yaml:"imAPIURL"` + NeedInvitationCode bool `yaml:"needInvitationCode"` OnboardProcess bool `yaml:"onboardProcess"` JoinDepartmentIDList []string `yaml:"joinDepartmentIDList"` JoinDepartmentGroups bool `yaml:"joinDepartmentGroups"` diff --git a/pkg/common/constant/error.go b/pkg/common/constant/error.go index b77fc1657..c621951b6 100644 --- a/pkg/common/constant/error.go +++ b/pkg/common/constant/error.go @@ -50,6 +50,7 @@ var ( DBMsg = errors.New("db failed") ArgsMsg = errors.New("args failed") CallBackMsg = errors.New("callback failed") + InvitationMsg = errors.New("invitationCode error") ThirdPartyMsg = errors.New("third party error") ) @@ -69,6 +70,7 @@ const ( ResetPasswordFailed = 10011 RegisterLimit = 10012 LoginLimit = 10013 + InvitationError = 10014 DatabaseError = 10002 ServerError = 10004 HttpError = 10005 diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index c6e2dbf92..8f01cfa3d 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -12,8 +12,11 @@ type Register struct { } type Invitation struct { - InvitationCode string `gorm:"column:invitation_code;primary_key;type:varchar(255)"` + InvitationCode string `gorm:"column:invitation_code;primary_key;type:varchar(32)"` CreateTime time.Time `gorm:"column:create_time"` + UserID string `gorm:"column:user_id"` + LastTime time.Time `gorm:"column:last_time"` + Status int32 `gorm:"column:status"` } // @@ -180,6 +183,7 @@ type User struct { LoginLimit int32 `gorm:"column:login_limit"` AppMangerLevel int32 `gorm:"column:app_manger_level"` GlobalRecvMsgOpt int32 `gorm:"column:global_recv_msg_opt"` + InvitationCode string `gorm:"column:invitation_code"` status int32 `gorm:"column:status"` } diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 105065f91..d238c7794 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -159,6 +159,10 @@ func initMysqlDB() { fmt.Println("CreateTable RegisterAddFriend") db.Migrator().CreateTable(&RegisterAddFriend{}) } + if !db.Migrator().HasTable(&Invitation{}) { + fmt.Println("CreateTable Invitation") + db.Migrator().CreateTable(&Invitation{}) + } DB.MysqlDB.db = db return } diff --git a/pkg/common/db/mysql_model/im_mysql_model/invitation_model.go b/pkg/common/db/mysql_model/im_mysql_model/invitation_model.go new file mode 100644 index 000000000..0f5c3d030 --- /dev/null +++ b/pkg/common/db/mysql_model/im_mysql_model/invitation_model.go @@ -0,0 +1,91 @@ +package im_mysql_model + +import ( + "Open_IM/pkg/common/db" + "errors" + "math/rand" + "time" +) + +/** + * 批量生成邀请码 + */ +func BatchCreateInvitationCodes(CodeNums int, CodeLen int) error { + i := CodeNums + for { + if i == 0 { + break + } + invitation := new(db.Invitation) + invitation.CreateTime = time.Now() + invitation.InvitationCode = CreateRandomString(CodeLen) + invitation.LastTime = time.Now() + invitation.Status = 0 + invitation.UserID = "" + result := db.DB.MysqlDB.DefaultGormDB().Table("invitations").Create(&invitation) + if result.Error != nil { + continue + } + if result.RowsAffected > 0 { + i = i - 1 + } + } + return nil +} + +/** + * 检查邀请码 + */ +func CheckInvitationCode(code string) error { + var invitationCode db.Invitation + err := db.DB.MysqlDB.DefaultGormDB().Table("invitations").Where("invitation_code=?", code).Take(&invitationCode).Error + if err != nil { + return err + } + if invitationCode.InvitationCode != code { + return errors.New("邀请码不存在") + } + if invitationCode.Status != 0 { + return errors.New("邀请码已经被使用") + } + return nil +} + +/** + * 尝试加锁模式解决邀请码抢占的问题 + */ +func TryLockInvitationCode(Code string, UserId string) bool { + Data := make(map[string]interface{}, 0) + Data["user_id"] = UserId + Data["status"] = 1 + Data["last_time"] = time.Now() + result := db.DB.MysqlDB.DefaultGormDB().Table("invitations").Where("invitation_code=? and user_id=? and status=?", Code, "", 0).Updates(Data) + if result.Error != nil { + return false + } + return result.RowsAffected > 0 +} + +/** + * 完成邀请码的状态 + */ +func FinishInvitationCode(Code string, UserId string) bool { + Data := make(map[string]interface{}, 0) + Data["status"] = 2 + result := db.DB.MysqlDB.DefaultGormDB().Table("invitations").Where("invitation_code=? and user_id=? and status=?", Code, UserId, 1).Updates(Data) + if result.Error != nil { + return false + } + return result.RowsAffected > 0 +} + +func CreateRandomString(strlen int) string { + str := "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + bytes := []byte(str) + result := []byte{} + r := rand.New(rand.NewSource(time.Now().UnixNano())) + for i := 0; i < strlen; i++ { + result = append(result, bytes[r.Intn(len(bytes))]) + } + return string(result) +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index 059c43d55..24fa60d20 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -45,10 +45,20 @@ func UserRegister(user db.User) error { user.LastLoginTime = time.Now() user.LoginTimes = 0 user.LastLoginIp = user.CreateIp + if config.Config.Demo.NeedInvitationCode { + //判断一下验证码的使用情况 + LockSucc := TryLockInvitationCode(user.InvitationCode, user.UserID) + if !LockSucc { + return constant.InvitationMsg + } + } err := db.DB.MysqlDB.DefaultGormDB().Table("users").Create(&user).Error if err != nil { return err } + if config.Config.Demo.NeedInvitationCode { + FinishInvitationCode(user.InvitationCode, user.UserID) + } return nil } @@ -125,11 +135,12 @@ func GetUsers(showNumber, pageNumber int32) ([]db.User, error) { func AddUser(userId, phoneNumber, name string) error { user := db.User{ - PhoneNumber: phoneNumber, - Birth: time.Now(), - CreateTime: time.Now(), - UserID: userId, - Nickname: name, + PhoneNumber: phoneNumber, + Birth: time.Now(), + CreateTime: time.Now(), + UserID: userId, + Nickname: name, + LastLoginTime: time.Now(), } result := db.DB.MysqlDB.DefaultGormDB().Table("users").Create(&user) return result.Error diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 924ee2c48..d8c7272e5 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -542,6 +542,7 @@ type UserInfo struct { LoginLimit int32 `protobuf:"varint,14,opt,name=LoginLimit,proto3" json:"LoginLimit,omitempty"` AppMangerLevel int32 `protobuf:"varint,15,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"` GlobalRecvMsgOpt int32 `protobuf:"varint,16,opt,name=globalRecvMsgOpt,proto3" json:"globalRecvMsgOpt,omitempty"` + InvitationCode string `protobuf:"bytes,17,opt,name=invitationCode,proto3" json:"invitationCode,omitempty"` } func (x *UserInfo) Reset() { @@ -688,6 +689,13 @@ func (x *UserInfo) GetGlobalRecvMsgOpt() int32 { return 0 } +func (x *UserInfo) GetInvitationCode() string { + if x != nil { + return x.InvitationCode + } + return "" +} + type FriendInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5902,7 +5910,7 @@ var file_sdk_ws_ws_proto_rawDesc = []byte{ 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, - 0x78, 0x22, 0xe6, 0x03, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, + 0x78, 0x22, 0x8e, 0x04, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, @@ -5932,457 +5940,389 @@ var file_sdk_ws_ws_proto_rawDesc = []byte{ 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, - 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x22, 0xf9, 0x01, 0x0a, 0x0a, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, - 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, - 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, - 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xec, 0x01, 0x0a, 0x09, 0x42, 0x6c, 0x61, 0x63, 0x6b, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x0d, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, - 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x97, 0x03, 0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, - 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x72, - 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, - 0x71, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x69, - 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6a, - 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, - 0xdb, 0x03, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, - 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x46, 0x61, 0x63, - 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, - 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x47, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x72, 0x6f, - 0x6d, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x4e, 0x69, 0x63, 0x6b, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, - 0x4c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, - 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, - 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x65, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xb2, 0x02, - 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, - 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, - 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x44, - 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x10, 0x73, 0x75, 0x62, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, - 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, - 0x75, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x65, 0x78, 0x22, 0xac, 0x02, 0x0a, 0x10, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, - 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x65, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, - 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x70, - 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x6c, 0x65, - 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, - 0x78, 0x22, 0xc0, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, - 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x65, 0x78, 0x22, 0xb8, 0x01, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x70, - 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4f, 0x0a, - 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x10, 0x6f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x4f, - 0x0a, 0x10, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x44, 0x65, 0x70, - 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x10, 0x64, - 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, - 0xbc, 0x01, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x57, 0x0a, 0x14, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x14, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xac, - 0x02, 0x0a, 0x17, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, - 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x60, - 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, - 0x1a, 0x5b, 0x0a, 0x11, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x73, 0x65, 0x71, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x23, 0x0a, - 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x0b, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x3c, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0xd0, 0x02, 0x0a, 0x18, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, - 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, - 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, - 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x2e, - 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, + 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x64, 0x65, 0x22, 0xf9, 0x01, 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x66, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x64, 0x64, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, + 0x0a, 0x02, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xec, + 0x01, 0x0a, 0x09, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x47, + 0x0a, 0x0d, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x64, 0x64, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, + 0x02, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x97, 0x03, + 0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x65, 0x71, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, + 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, + 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0xdb, 0x03, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, + 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, + 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x6f, + 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, + 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, + 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, + 0x6f, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x74, 0x6f, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x6f, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x74, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x47, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x6f, 0x47, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, + 0x4d, 0x73, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, + 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x4d, 0x73, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xb2, 0x02, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, + 0x55, 0x52, 0x4c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, + 0x52, 0x4c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x75, 0x62, 0x44, + 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xac, 0x02, 0x0a, 0x10, 0x4f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x67, 0x6c, 0x69, 0x73, + 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, + 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x69, + 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xc0, 0x01, 0x0a, 0x10, 0x44, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, + 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xb8, 0x01, 0x0a, + 0x14, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x10, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xbc, 0x01, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x10, + 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x10, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x57, 0x0a, + 0x14, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x52, 0x14, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xac, 0x02, 0x0a, 0x17, 0x50, 0x75, 0x6c, 0x6c, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, + 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x60, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, + 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x6d, - 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x6c, - 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x44, 0x61, - 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x63, 0x0a, - 0x15, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, - 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, - 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x70, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, - 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x3e, 0x0a, 0x0c, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, - 0x6e, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, - 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, - 0x6e, 0x53, 0x65, 0x71, 0x22, 0xcb, 0x02, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x41, - 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, + 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, + 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, + 0x71, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x5b, 0x0a, 0x11, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x23, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x0b, 0x4d, 0x73, + 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0b, 0x6d, 0x73, 0x67, + 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x44, + 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xd0, 0x02, 0x0a, 0x18, 0x50, 0x75, 0x6c, 0x6c, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x6d, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x41, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x63, 0x0a, 0x15, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, + 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x70, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, 0x65, 0x71, + 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x3e, 0x0a, 0x0c, + 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, - 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, - 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x6b, - 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, - 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, 0x65, 0x73, - 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, - 0x53, 0x65, 0x71, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x1a, 0x65, 0x0a, 0x16, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x61, 0x78, 0x41, 0x6e, - 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x71, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x73, 0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb6, 0x06, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x63, - 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, - 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x22, 0xcb, 0x02, 0x0a, + 0x13, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, + 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, + 0x6e, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x6b, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, + 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, + 0x53, 0x65, 0x71, 0x1a, 0x65, 0x0a, 0x16, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x41, + 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x71, 0x0a, 0x0f, 0x55, 0x73, + 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, - 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, - 0x65, 0x55, 0x52, 0x4c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, - 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, - 0x73, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x41, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, - 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, - 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, - 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, - 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, - 0x61, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, - 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, - 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x65, 0x78, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x95, - 0x01, 0x0a, 0x0f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x0e, 0x0a, 0x02, - 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, - 0x69, 0x4f, 0x53, 0x50, 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x69, 0x4f, 0x53, 0x50, 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, - 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x64, 0x0a, 0x08, 0x54, 0x69, 0x70, 0x73, 0x43, 0x6f, - 0x6d, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x69, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x6a, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0xc4, 0x02, 0x0a, - 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, - 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, - 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, + 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, + 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb6, 0x06, + 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, + 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, + 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x73, 0x67, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, + 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, + 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x41, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, + 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x53, 0x65, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x44, 0x61, + 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x95, 0x01, 0x0a, 0x0f, 0x4f, 0x66, 0x66, 0x6c, 0x69, + 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x64, 0x65, 0x73, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x4f, 0x53, 0x50, 0x75, 0x73, 0x68, 0x53, + 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x4f, 0x53, 0x50, + 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x4f, 0x53, 0x42, + 0x61, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x64, + 0x0a, 0x08, 0x54, 0x69, 0x70, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x69, 0x70, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x54, 0x69, 0x70, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x22, 0xc4, 0x02, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x75, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x75, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x4a, 0x6f, 0x69, - 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x09, 0x61, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, - 0x71, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, - 0x73, 0x67, 0x22, 0xae, 0x01, 0x0a, 0x0e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x51, 0x75, 0x69, - 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x42, 0x0a, 0x08, 0x71, 0x75, 0x69, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x71, 0x75, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, - 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x1c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, - 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0xb0, 0x01, 0x0a, 0x1c, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6a, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0x83, 0x02, 0x0a, 0x19, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, - 0x72, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x0d, 0x6e, - 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, - 0xfc, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4b, 0x69, 0x63, 0x6b, 0x65, 0x64, - 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0e, 0x6b, 0x69, 0x63, 0x6b, - 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x64, - 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xff, - 0x01, 0x0a, 0x11, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, - 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x22, 0xb5, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, - 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x72, - 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, + 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, - 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x12, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x46, 0x0a, + 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x0e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x10, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x74, 0x54, 0x69, 0x70, 0x73, + 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x75, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x08, 0x6d, 0x75, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x05, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, + 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x3f, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x22, 0xae, 0x01, 0x0a, 0x0e, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x51, 0x75, 0x69, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, + 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x42, 0x0a, 0x08, 0x71, 0x75, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x71, 0x75, 0x69, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x1c, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0xb0, + 0x01, 0x0a, 0x1c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, @@ -6390,66 +6330,114 @@ var file_sdk_ws_ws_proto_rawDesc = []byte{ 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, - 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x9a, 0x02, 0x0a, 0x14, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x54, 0x69, - 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, - 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x09, - 0x6d, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, - 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x53, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xfc, 0x01, 0x0a, 0x1a, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, - 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, - 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, + 0x67, 0x22, 0x83, 0x02, 0x0a, 0x19, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, + 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x4b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x4e, 0x0a, 0x0e, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0e, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x11, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x50, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x44, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x65, - 0x64, 0x55, 0x73, 0x65, 0x72, 0x22, 0xaa, 0x01, 0x0a, 0x0e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x75, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x6f, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb5, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x48, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x65, + 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x22, 0xae, 0x01, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, + 0x73, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x22, 0x9a, 0x02, 0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, + 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, + 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, + 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, - 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x09, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, + 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xfc, + 0x01, 0x0a, 0x1a, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, + 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, + 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, - 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x16, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x74, 0x54, 0x69, 0x70, 0x73, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x22, 0xaa, 0x01, + 0x0a, 0x0e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, @@ -6459,209 +6447,334 @@ var file_sdk_ws_ws_proto_rawDesc = []byte{ 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, - 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, - 0x55, 0x73, 0x65, 0x72, 0x22, 0x74, 0x0a, 0x17, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, - 0x33, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, - 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x6b, 0x0a, 0x11, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x61, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, - 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x57, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x64, 0x64, - 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x4a, 0x0a, 0x0c, 0x46, 0x72, 0x6f, 0x6d, 0x54, - 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, 0x6f, - 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x22, 0x5c, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, - 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x22, 0x82, 0x01, 0x0a, 0x1d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x54, - 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, - 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, - 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0x82, 0x01, 0x0a, 0x1d, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6a, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, - 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, - 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, - 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0xa9, 0x01, 0x0a, 0x0f, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, - 0x35, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, - 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x06, - 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x14, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x54, + 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xfc, 0x01, + 0x0a, 0x16, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x53, 0x65, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, + 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x22, 0x58, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, - 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x22, 0x55, 0x0a, 0x0e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, - 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, - 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, - 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x57, 0x0a, 0x10, 0x42, 0x6c, 0x61, 0x63, - 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, - 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x22, 0x5c, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, - 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, - 0x2d, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x60, - 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, - 0x22, 0x6a, 0x0a, 0x1a, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x1c, - 0x0a, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x61, 0x0a, 0x11, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x69, 0x70, - 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0x53, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x22, 0x56, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x9f, 0x03, 0x0a, - 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x06, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, - 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x51, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x06, 0x63, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x63, 0x63, - 0x65, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, - 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x22, 0x74, 0x0a, 0x17, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x22, 0x6b, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, + 0x4a, 0x0a, 0x0c, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x5c, 0x0a, 0x15, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, + 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, + 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x82, 0x01, 0x0a, 0x1d, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, + 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0x82, + 0x01, 0x0a, 0x1d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, + 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, + 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x4d, 0x73, 0x67, 0x22, 0xa9, 0x01, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x64, + 0x64, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x35, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x24, + 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x22, + 0x58, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, + 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, + 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x55, 0x0a, 0x0e, 0x42, 0x6c, 0x61, + 0x63, 0x6b, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, + 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x22, 0x57, 0x0a, 0x10, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, + 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, + 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x5c, 0x0a, 0x15, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x69, + 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, + 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, + 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x60, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x70, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6a, 0x0a, 0x1a, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x22, 0x61, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x69, 0x70, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, + 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x53, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x56, 0x0a, 0x12, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x50, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0x9f, 0x03, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, + 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x12, 0x51, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x68, - 0x75, 0x6e, 0x67, 0x55, 0x70, 0x12, 0x3c, 0x0a, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6a, - 0x65, 0x63, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xac, - 0x03, 0x0a, 0x0a, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3e, 0x0a, - 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x12, + 0x3c, 0x0a, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, + 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x12, 0x3c, 0x0a, + 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x53, 0x0a, - 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, - 0x65, 0x70, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, - 0x70, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, - 0x67, 0x55, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x67, - 0x55, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6a, 0x65, - 0x63, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xd4, 0x02, - 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x20, - 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, - 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a, 0x09, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x50, 0x0a, 0x0f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, + 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, + 0x71, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xac, 0x03, 0x0a, 0x0a, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x53, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, + 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x88, 0x02, 0x0a, 0x0f, 0x53, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, + 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x06, 0x61, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x68, 0x75, + 0x6e, 0x67, 0x55, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x48, 0x00, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x72, 0x65, + 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xd4, 0x02, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2c, + 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, + 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe2, 0x01, 0x0a, + 0x13, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x50, 0x0a, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0x88, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, + 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x5b, 0x0a, 0x11, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, + 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0x8f, 0x02, 0x0a, 0x16, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, + 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x62, 0x0a, 0x18, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, + 0x88, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, + 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, + 0xb4, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, + 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, + 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x70, + 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x22, 0x5b, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, + 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, + 0x55, 0x52, 0x4c, 0x22, 0xbe, 0x01, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, + 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, + 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, + 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, + 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0xb4, 0x02, 0x0a, 0x0f, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, @@ -6677,128 +6790,25 @@ var file_sdk_ws_ws_proto_rawDesc = []byte{ 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, - 0x70, 0x61, 0x6e, 0x74, 0x22, 0x5b, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, - 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, - 0x4c, 0x22, 0x8f, 0x02, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, - 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, - 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, - 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x22, 0x62, 0x0a, 0x18, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, - 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0x88, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, - 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, - 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, - 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, - 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, - 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0xb4, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, - 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, - 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, - 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, - 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, - 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6f, 0x70, - 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x22, 0x5b, - 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, - 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, - 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0xbe, 0x01, 0x0a, 0x0f, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x71, 0x12, - 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, - 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, - 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, - 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, - 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, - 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x13, 0x0a, 0x11, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x22, 0xb4, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, - 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, + 0x70, 0x61, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x7f, 0x0a, - 0x0d, 0x44, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, - 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x42, - 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, - 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, - 0x73, 0x67, 0x42, 0x1c, 0x5a, 0x1a, 0x2e, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x3b, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x22, 0x13, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x7f, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, + 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x71, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x42, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x4d, 0x73, 0x67, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x42, 0x1c, 0x5a, 0x1a, 0x2e, 0x2f, + 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index b43ec2057..be603554c 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -80,6 +80,7 @@ message UserInfo{ int32 LoginLimit = 14; int32 appMangerLevel = 15; int32 globalRecvMsgOpt = 16; + string invitationCode = 17; } message FriendInfo{ diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index c77d3e4af..1da6547dc 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -2127,10 +2127,12 @@ type AlterUserReq struct { UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - PhoneNumber int64 `protobuf:"varint,3,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` + PhoneNumber string `protobuf:"bytes,3,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` Nickname string `protobuf:"bytes,4,opt,name=Nickname,proto3" json:"Nickname,omitempty"` Email string `protobuf:"bytes,5,opt,name=Email,proto3" json:"Email,omitempty"` - OpUserId string `protobuf:"bytes,6,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` + Gender string `protobuf:"bytes,6,opt,name=Gender,proto3" json:"Gender,omitempty"` + Birth string `protobuf:"bytes,7,opt,name=Birth,proto3" json:"Birth,omitempty"` + OpUserId string `protobuf:"bytes,8,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` } func (x *AlterUserReq) Reset() { @@ -2179,11 +2181,11 @@ func (x *AlterUserReq) GetOperationID() string { return "" } -func (x *AlterUserReq) GetPhoneNumber() int64 { +func (x *AlterUserReq) GetPhoneNumber() string { if x != nil { return x.PhoneNumber } - return 0 + return "" } func (x *AlterUserReq) GetNickname() string { @@ -2200,6 +2202,20 @@ func (x *AlterUserReq) GetEmail() string { return "" } +func (x *AlterUserReq) GetGender() string { + if x != nil { + return x.Gender + } + return "" +} + +func (x *AlterUserReq) GetBirth() string { + if x != nil { + return x.Birth + } + return "" +} + func (x *AlterUserReq) GetOpUserId() string { if x != nil { return x.OpUserId @@ -3501,232 +3517,235 @@ var file_user_user_proto_rawDesc = []byte{ 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0xb8, 0x01, 0x0a, + 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x0c, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x50, 0x68, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc3, - 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, - 0x72, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x98, 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, - 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x47, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc3, 0x01, 0x0a, + 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, + 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, + 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x73, 0x22, 0x98, 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3f, 0x0a, + 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8c, + 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, + 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, + 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x8c, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, - 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, - 0x41, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x66, 0x0a, 0x0e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, - 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0f, 0x55, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, - 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x9e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, + 0x22, 0x66, 0x0a, 0x0e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, - 0x22, 0x7f, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, - 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, - 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, - 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x50, 0x0a, - 0x13, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, - 0x64, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, - 0x45, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, - 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x22, 0x66, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x42, - 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x32, 0xf7, 0x0b, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5e, 0x0a, 0x17, - 0x53, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x20, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, - 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x53, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, - 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, - 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, - 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, - 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, - 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x43, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x40, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, - 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, - 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, - 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, - 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, - 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, - 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x1a, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, - 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, - 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x19, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, + 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0f, 0x55, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9e, 0x01, + 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x7f, + 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x04, 0x55, + 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x42, + 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0xd9, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x50, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, - 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x45, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x22, 0x66, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x0e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, + 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x32, 0xf7, 0x0b, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5e, 0x0a, 0x17, 0x53, 0x65, + 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x20, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, + 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, + 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x1a, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x13, + 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, + 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x1a, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x15, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, + 0x0d, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x16, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, + 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x14, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, + 0x64, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, + 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, + 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, + 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x19, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, + 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, + 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index de5367105..914bf039f 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -210,10 +210,12 @@ message GetUsersByNameResp { message AlterUserReq{ string UserId = 1; string OperationID = 2; - int64 PhoneNumber = 3; + string PhoneNumber = 3; string Nickname = 4; string Email = 5; - string OpUserId = 6; + string Gender = 6; + string Birth =7; + string OpUserId = 8; } message AlterUserResp{ From 1a2ea053612aa20a35c0eef778814563820d14fc Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 14 Aug 2022 14:09:31 +0800 Subject: [PATCH 124/230] fix bug --- internal/msg_gateway/gate/ws_server.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 3698f6d60..b2ea4c6eb 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -12,9 +12,10 @@ import ( "bytes" "context" "encoding/gob" + "strings" + go_redis "github.com/go-redis/redis/v8" "github.com/pkg/errors" - "strings" //"gopkg.in/errgo.v2/errors" "net/http" @@ -133,6 +134,7 @@ func (ws *WServer) MultiTerminalLoginRemoteChecker(userID string, platformID int resp, err := client.MultiTerminalLoginCheck(context.Background(), req) if err != nil { log.Error(operationID, "MultiTerminalLoginCheck failed ", err.Error()) + continue } if resp.ErrCode != 0 { log.Error(operationID, "MultiTerminalLoginCheck errCode, errMsg: ", resp.ErrCode, resp.ErrMsg) From ac7f905248bdd1b0931c21981c026b7a8ca85eb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AC=A7=E9=98=B3=E6=B0=8F?= Date: Sun, 14 Aug 2022 22:53:41 +0800 Subject: [PATCH 125/230] =?UTF-8?q?=E5=AE=8C=E5=96=84=20=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=20=E7=94=A8=E6=88=B7=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/rpc/user/user.go | 13 +- pkg/cms_api_struct/user.go | 6 + .../mysql_model/im_mysql_model/user_model.go | 32 ++++- pkg/proto/user/user.pb.go | 125 ++++++++++++------ pkg/proto/user/user.proto | 9 +- 5 files changed, 135 insertions(+), 50 deletions(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index f8d019838..639092581 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -19,6 +19,7 @@ import ( "net" "strconv" "strings" + "time" "google.golang.org/grpc" ) @@ -660,11 +661,19 @@ func (s *userServer) ResignUser(ctx context.Context, req *pbUser.ResignUserReq) func (s *userServer) AlterUser(ctx context.Context, req *pbUser.AlterUserReq) (*pbUser.AlterUserResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbUser.AlterUserResp{} + birth, _ := time.ParseInLocation("2006-01-02", req.Birth, time.Local) + gender, gendererr := strconv.Atoi(req.Gender) + if gendererr != nil { + gender = 0 + } user := db.User{ - PhoneNumber: strconv.FormatInt(req.PhoneNumber, 10), + PhoneNumber: req.PhoneNumber, Nickname: req.Nickname, Email: req.Email, UserID: req.UserId, + Gender: int32(gender), + FaceURL: req.Photo, + Birth: birth, } if err := imdb.UpdateUserInfo(user); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "UpdateUserInfo", err.Error()) @@ -678,7 +687,7 @@ func (s *userServer) AlterUser(ctx context.Context, req *pbUser.AlterUserReq) (* func (s *userServer) AddUser(ctx context.Context, req *pbUser.AddUserReq) (*pbUser.AddUserResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbUser.AddUserResp{} - err := imdb.AddUser(req.UserId, req.PhoneNumber, req.Name) + err := imdb.AddUser(req.UserId, req.PhoneNumber, req.Name, req.Email, req.Gender, req.Photo, req.Birth) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "AddUser", err.Error()) return resp, errors.WrapError(constant.ErrDB) diff --git a/pkg/cms_api_struct/user.go b/pkg/cms_api_struct/user.go index d672283ff..d4902c97a 100644 --- a/pkg/cms_api_struct/user.go +++ b/pkg/cms_api_struct/user.go @@ -59,6 +59,8 @@ type AlterUserRequest struct { PhoneNumber string `json:"phone_number" validate:"len=11"` Email string `json:"email"` Birth string `json:"birth"` + Gender string `json:"gender"` + Photo string `json:"photo"` } type AlterUserResponse struct { @@ -68,6 +70,10 @@ type AddUserRequest struct { PhoneNumber string `json:"phone_number" binding:"required"` UserId string `json:"user_id" binding:"required"` Name string `json:"name" binding:"required"` + Email string `json:"email"` + Birth string `json:"birth"` + Gender string `json:"gender"` + Photo string `json:"photo"` } type AddUserResponse struct { diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index 24fa60d20..c91444259 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -6,6 +6,7 @@ import ( "Open_IM/pkg/common/db" "Open_IM/pkg/utils" "fmt" + "strconv" "time" ) @@ -133,14 +134,31 @@ func GetUsers(showNumber, pageNumber int32) ([]db.User, error) { return users, err } -func AddUser(userId, phoneNumber, name string) error { +func AddUser(userId string, phoneNumber string, name string, email string, gender string, photo string, birth string) error { + _gender, _err := strconv.Atoi(gender) + if _err != nil { + _gender = 0 + } + _birth, _err := time.ParseInLocation("2006-01-02", birth, time.Local) + if _err != nil { + _birth = time.Now() + } user := db.User{ - PhoneNumber: phoneNumber, - Birth: time.Now(), - CreateTime: time.Now(), - UserID: userId, - Nickname: name, - LastLoginTime: time.Now(), + UserID: userId, + Nickname: name, + FaceURL: photo, + Gender: int32(_gender), + PhoneNumber: phoneNumber, + Birth: _birth, + Email: email, + Ex: "", + CreateTime: time.Now(), + CreateIp: "", + LastLoginTime: time.Now(), + LastLoginIp: "", + LoginTimes: 0, + LoginLimit: 0, + InvitationCode: "", } result := db.DB.MysqlDB.DefaultGormDB().Table("users").Create(&user) return result.Error diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 1da6547dc..560faee77 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -2132,7 +2132,8 @@ type AlterUserReq struct { Email string `protobuf:"bytes,5,opt,name=Email,proto3" json:"Email,omitempty"` Gender string `protobuf:"bytes,6,opt,name=Gender,proto3" json:"Gender,omitempty"` Birth string `protobuf:"bytes,7,opt,name=Birth,proto3" json:"Birth,omitempty"` - OpUserId string `protobuf:"bytes,8,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` + Photo string `protobuf:"bytes,8,opt,name=Photo,proto3" json:"Photo,omitempty"` + OpUserId string `protobuf:"bytes,9,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` } func (x *AlterUserReq) Reset() { @@ -2216,6 +2217,13 @@ func (x *AlterUserReq) GetBirth() string { return "" } +func (x *AlterUserReq) GetPhoto() string { + if x != nil { + return x.Photo + } + return "" +} + func (x *AlterUserReq) GetOpUserId() string { if x != nil { return x.OpUserId @@ -2413,7 +2421,11 @@ type AddUserReq struct { PhoneNumber string `protobuf:"bytes,2,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` - OpUserId string `protobuf:"bytes,5,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` + Email string `protobuf:"bytes,5,opt,name=Email,proto3" json:"Email,omitempty"` + Gender string `protobuf:"bytes,6,opt,name=Gender,proto3" json:"Gender,omitempty"` + Birth string `protobuf:"bytes,7,opt,name=Birth,proto3" json:"Birth,omitempty"` + Photo string `protobuf:"bytes,8,opt,name=Photo,proto3" json:"Photo,omitempty"` + OpUserId string `protobuf:"bytes,9,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` } func (x *AddUserReq) Reset() { @@ -2476,6 +2488,34 @@ func (x *AddUserReq) GetName() string { return "" } +func (x *AddUserReq) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *AddUserReq) GetGender() string { + if x != nil { + return x.Gender + } + return "" +} + +func (x *AddUserReq) GetBirth() string { + if x != nil { + return x.Birth + } + return "" +} + +func (x *AddUserReq) GetPhoto() string { + if x != nil { + return x.Photo + } + return "" +} + func (x *AddUserReq) GetOpUserId() string { if x != nil { return x.OpUserId @@ -3517,7 +3557,7 @@ var file_user_user_proto_rawDesc = []byte{ 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0xe6, 0x01, 0x0a, + 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0xfc, 0x01, 0x0a, 0x0c, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, @@ -3530,43 +3570,50 @@ var file_user_user_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc3, 0x01, 0x0a, - 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, - 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, - 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x28, 0x09, 0x52, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x68, 0x6f, + 0x74, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, + 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x41, + 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x91, + 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, + 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, - 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, - 0x6d, 0x73, 0x22, 0x98, 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x05, 0x20, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, + 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0xf2, 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a, + 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x50, + 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x68, 0x6f, 0x74, + 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 914bf039f..2f400473a 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -215,7 +215,8 @@ message AlterUserReq{ string Email = 5; string Gender = 6; string Birth =7; - string OpUserId = 8; + string Photo = 8; + string OpUserId = 9; } message AlterUserResp{ @@ -240,7 +241,11 @@ message AddUserReq{ string PhoneNumber = 2; string UserId = 3; string name = 4; - string OpUserId = 5; + string Email = 5; + string Gender = 6; + string Birth =7; + string Photo = 8; + string OpUserId = 9; } message AddUserResp{ From d5239365be8af63b6aa9ef7ba7721b0b5a400c85 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 14 Aug 2022 23:34:51 +0800 Subject: [PATCH 126/230] hide jwt not active yet --- pkg/common/token_verify/jwt_token.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/common/token_verify/jwt_token.go b/pkg/common/token_verify/jwt_token.go index 476c26a70..3f9e64fdf 100644 --- a/pkg/common/token_verify/jwt_token.go +++ b/pkg/common/token_verify/jwt_token.go @@ -6,9 +6,10 @@ import ( commonDB "Open_IM/pkg/common/db" "Open_IM/pkg/common/log" "Open_IM/pkg/utils" + "time" + go_redis "github.com/go-redis/redis/v8" "github.com/golang-jwt/jwt/v4" - "time" ) //var ( @@ -103,7 +104,9 @@ func GetClaimFromToken(tokensString string) (*Claims, error) { } else if ve.Errors&jwt.ValidationErrorExpired != 0 { return nil, constant.ErrTokenExpired } else if ve.Errors&jwt.ValidationErrorNotValidYet != 0 { - return nil, constant.ErrTokenNotValidYet + log.Error("", "ParseToken failed, ", err.Error(), token) + return nil, nil + // return nil, constant.ErrTokenNotValidYet } else { return nil, constant.ErrTokenUnknown } From be69ee8b1d3caa1e0f34f7a91547a175f242862f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 15 Aug 2022 11:16:37 +0800 Subject: [PATCH 127/230] fcm update --- internal/api/third/fcm_update_token.go | 23 ++++++++++------------- pkg/base_info/third_api_struct.go | 13 +++++++++++++ 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/internal/api/third/fcm_update_token.go b/internal/api/third/fcm_update_token.go index d9c5f03ff..000deaabb 100644 --- a/internal/api/third/fcm_update_token.go +++ b/internal/api/third/fcm_update_token.go @@ -1,6 +1,7 @@ package apiThird import ( + api "Open_IM/pkg/base_info" "Open_IM/pkg/common/db" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" @@ -10,18 +11,10 @@ import ( "github.com/gin-gonic/gin" ) -/** - * FCM第三方上报Token - */ -type FcmUpdateTokenReq struct { - OperationID string `json:"operationID"` - Platform int `json:"platform" binding:"required,min=1,max=2"` //only for ios + android - FcmToken string `json:"fcmToken"` -} - func FcmUpdateToken(c *gin.Context) { var ( - req FcmUpdateTokenReq + req api.FcmUpdateTokenReq + resp api.FcmUpdateTokenResp ) if err := c.Bind(&req); err != nil { log.NewError("0", utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) @@ -34,7 +27,9 @@ func FcmUpdateToken(c *gin.Context) { if !ok { errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") log.NewError(req.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + resp.ErrCode = 500 + resp.ErrMsg = errMsg + c.JSON(http.StatusInternalServerError, resp) return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req, UserId) @@ -43,10 +38,12 @@ func FcmUpdateToken(c *gin.Context) { if err != nil { errMsg := req.OperationID + " " + "SetFcmToken failed " + err.Error() + " token:" + c.Request.Header.Get("token") log.NewError(req.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + resp.ErrCode = 500 + resp.ErrMsg = errMsg + c.JSON(http.StatusInternalServerError, resp) return } //逻辑处理完毕 - c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": ""}) + c.JSON(http.StatusOK, resp) return } diff --git a/pkg/base_info/third_api_struct.go b/pkg/base_info/third_api_struct.go index ddf9291ec..3933572ce 100644 --- a/pkg/base_info/third_api_struct.go +++ b/pkg/base_info/third_api_struct.go @@ -99,3 +99,16 @@ type GetRTCInvitationInfoStartAppReq struct { type GetRTCInvitationInfoStartAppResp struct { GetRTCInvitationInfoResp } + +/** + * FCM第三方上报Token + */ +type FcmUpdateTokenReq struct { + OperationID string `json:"operationID" binding:"required"` + Platform int `json:"platform" binding:"required,min=1,max=2"` //only for ios + android + FcmToken string `json:"fcmToken" binding:"required"` +} + +type FcmUpdateTokenResp struct { + CommResp +} From 073b6d200a751a4f9ea0c4a46226f4e850dbb2d9 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 15 Aug 2022 15:40:36 +0800 Subject: [PATCH 128/230] Set the token activity time to five minutes ago --- pkg/common/config/config.go | 3 +-- pkg/common/token_verify/jwt_token.go | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 53082d375..bee127d25 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -524,7 +524,7 @@ func init() { if err != nil { bytes, err = ioutil.ReadFile(filepath.Join(Root, "config", "config.yaml")) if err != nil { - panic(err.Error()) + panic(err.Error() + " config: " + filepath.Join(cfgName, "config", "config.yaml")) } } else { Root = cfgName @@ -541,5 +541,4 @@ func init() { panic(err.Error()) } } - } diff --git a/pkg/common/token_verify/jwt_token.go b/pkg/common/token_verify/jwt_token.go index 3f9e64fdf..04379364f 100644 --- a/pkg/common/token_verify/jwt_token.go +++ b/pkg/common/token_verify/jwt_token.go @@ -28,13 +28,14 @@ type Claims struct { func BuildClaims(uid, platform string, ttl int64) Claims { now := time.Now() + before := now.Add(-time.Minute * 5) return Claims{ UID: uid, Platform: platform, RegisteredClaims: jwt.RegisteredClaims{ ExpiresAt: jwt.NewNumericDate(now.Add(time.Duration(ttl*24) * time.Hour)), //Expiration time IssuedAt: jwt.NewNumericDate(now), //Issuing time - NotBefore: jwt.NewNumericDate(now), //Begin Effective time + NotBefore: jwt.NewNumericDate(before), //Begin Effective time }} } From 5e3a3c61f32045f5f1c3fd816c6609d137c5e5f4 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 15 Aug 2022 15:47:26 +0800 Subject: [PATCH 129/230] Set the token activity time to five minutes ago --- pkg/common/token_verify/jwt_token.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/pkg/common/token_verify/jwt_token.go b/pkg/common/token_verify/jwt_token.go index 04379364f..20942faf2 100644 --- a/pkg/common/token_verify/jwt_token.go +++ b/pkg/common/token_verify/jwt_token.go @@ -101,25 +101,22 @@ func GetClaimFromToken(tokensString string) (*Claims, error) { if err != nil { if ve, ok := err.(*jwt.ValidationError); ok { if ve.Errors&jwt.ValidationErrorMalformed != 0 { - return nil, constant.ErrTokenMalformed + return nil, utils.Wrap(constant.ErrTokenMalformed, "") } else if ve.Errors&jwt.ValidationErrorExpired != 0 { - return nil, constant.ErrTokenExpired + return nil, utils.Wrap(constant.ErrTokenExpired, "") } else if ve.Errors&jwt.ValidationErrorNotValidYet != 0 { - log.Error("", "ParseToken failed, ", err.Error(), token) - return nil, nil - // return nil, constant.ErrTokenNotValidYet + return nil, utils.Wrap(constant.ErrTokenNotValidYet, "") } else { - return nil, constant.ErrTokenUnknown + return nil, utils.Wrap(constant.ErrTokenUnknown, "") } } else { - return nil, constant.ErrTokenNotValidYet + return nil, utils.Wrap(constant.ErrTokenNotValidYet, "") } } else { if claims, ok := token.Claims.(*Claims); ok && token.Valid { - //log.NewDebug("", claims.UID, claims.Platform) return claims, nil } - return nil, constant.ErrTokenNotValidYet + return nil, utils.Wrap(constant.ErrTokenNotValidYet, "") } } From 7d1707ca7cac2c41eaa2c9596570d63adf133bf9 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 16:51:41 +0800 Subject: [PATCH 130/230] fix log --- cmd/open_im_demo/main.go | 8 +- internal/demo/register/invitation_code.go | 112 ++++++++++++++ internal/demo/register/ip_limit.go | 137 ++++++++++++++++++ internal/demo/register/set_password.go | 26 +++- internal/rpc/auth/auth.go | 7 - pkg/base_info/pagination.go | 6 + .../mysql_model/im_mysql_model/demo_model.go | 7 +- .../im_mysql_model/invitation_model.go | 32 +++- .../db/mysql_model/im_mysql_model/ip_model.go | 40 +++++ .../mysql_model/im_mysql_model/user_model.go | 37 ----- script/check_all.sh | 2 +- 11 files changed, 359 insertions(+), 55 deletions(-) create mode 100644 internal/demo/register/invitation_code.go create mode 100644 internal/demo/register/ip_limit.go create mode 100644 pkg/base_info/pagination.go create mode 100644 pkg/common/db/mysql_model/im_mysql_model/ip_model.go diff --git a/cmd/open_im_demo/main.go b/cmd/open_im_demo/main.go index 72eeee974..90d225fa0 100644 --- a/cmd/open_im_demo/main.go +++ b/cmd/open_im_demo/main.go @@ -40,8 +40,14 @@ func main() { demoRouterGroup.POST("/login", register.Login) demoRouterGroup.POST("/reset_password", register.ResetPassword) } + cmsRouterGroup := r.Group("/cms") + { + cmsRouterGroup.POST("/generate_invitation_code", register.GenerateInvitationCode) + cmsRouterGroup.POST("/query_invitation_code", register.QueryInvitationCode) + cmsRouterGroup.POST("/get_invitation_codes", register.GetInvitationCodes) + } defaultPorts := config.Config.Demo.Port - ginPort := flag.Int("port", defaultPorts[0], "get ginServerPort from cmd,default 42233 as port") + ginPort := flag.Int("port", defaultPorts[0], "get ginServerPort from cmd,default 10004 as port") flag.Parse() fmt.Println("start demo api server, port: ", *ginPort) address := "0.0.0.0:" + strconv.Itoa(*ginPort) diff --git a/internal/demo/register/invitation_code.go b/internal/demo/register/invitation_code.go new file mode 100644 index 000000000..51aac1aa3 --- /dev/null +++ b/internal/demo/register/invitation_code.go @@ -0,0 +1,112 @@ +package register + +import ( + apiStruct "Open_IM/pkg/base_info" + "Open_IM/pkg/common/constant" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" + "github.com/gin-gonic/gin" + "net/http" + "time" +) + +type InvitationCode struct { + InvitationCode string `json:"invitationCode"` + CreateTime time.Time `json:"createTime"` + UserID string `json:"userID"` + LastTime time.Time `json:"lastTime"` + Status int32 `json:"status"` +} + +type GenerateInvitationCodeReq struct { + CodesNum int `json:"codesNum" binding:"required"` + CodeLen int `json:"codeLen" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} + +type GenerateInvitationCodeResp struct { + Codes []string `json:"codes"` +} + +func GenerateInvitationCode(c *gin.Context) { + req := GenerateInvitationCodeReq{} + resp := GenerateInvitationCodeResp{} + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + return + } + var err error + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) + resp.Codes, err = imdb.BatchCreateInvitationCodes(req.CodesNum, req.CodeLen) + if err != nil { + log.NewError(req.OperationID, "BatchCreateInvitationCodes failed", req.CodesNum, req.CodeLen) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "Verification code error!"}) + return + } + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) +} + +type QueryInvitationCodeReq struct { + Code string `json:"code" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} + +type QueryInvitationCodeResp struct { + InvitationCode +} + +func QueryInvitationCode(c *gin.Context) { + req := QueryInvitationCodeReq{} + resp := QueryInvitationCodeResp{} + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) + invitation, err := imdb.GetInvitationCode(req.Code) + if err != nil { + log.NewError(req.OperationID, "GetInvitationCode failed", req.Code) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "Verification code error!"}) + return + } + resp.UserID = invitation.UserID + resp.CreateTime = invitation.CreateTime + resp.Status = invitation.Status + resp.LastTime = invitation.LastTime + resp.InvitationCode.InvitationCode = invitation.InvitationCode + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp:", resp) + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) +} + +type GetInvitationCodesReq struct { + Status int32 `json:"status" binding:"required"` + OperationID string `json:"operationID" binding:"required"` + apiStruct.Pagination +} + +type GetInvitationCodesResp struct { + apiStruct.Pagination + codes []InvitationCode +} + +func GetInvitationCodes(c *gin.Context) { + req := GetInvitationCodesReq{} + resp := GetInvitationCodesResp{} + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) + codes, err := imdb.GetInvitationCodes(req.ShowNumber, req.PageNumber, req.Status) + if err != nil { + log.NewError(req.OperationID, "GetInvitationCode failed", req.ShowNumber, req.PageNumber, req.Status) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "Verification code error!"}) + return + } + resp.Pagination.PageNumber = req.PageNumber + resp.Pagination.ShowNumber = req.ShowNumber + utils.CopyStructFields(codes, resp.codes) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp:", resp) + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) +} diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go new file mode 100644 index 000000000..9e4e42eee --- /dev/null +++ b/internal/demo/register/ip_limit.go @@ -0,0 +1,137 @@ +package register + +import ( + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" + "github.com/gin-gonic/gin" + "net/http" + "time" +) + +type QueryIPReq struct { + OperationID string `json:"operationID"` + IP string `json:"ip"` +} + +type QueryIPResp struct { + IP string `json:"ip"` + RegisterNum int `json:"num"` + UserIDList []string `json:"userIDList"` + Status int +} + +func QueryIP(c *gin.Context) { + req := QueryIPReq{} + resp := QueryIPResp{} + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) + ips, err := imdb.QueryUserIPLimits(req.IP) + if err != nil { + log.NewError(req.OperationID, "GetInvitationCode failed", req.IP) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "QueryUserIPLimits error!"}) + return + } + resp.IP = req.IP + resp.RegisterNum = len(ips) + for _, ip := range ips { + resp.UserIDList = append(resp.UserIDList, ip.UserID) + } + b, _ := imdb.IsLimitLoginIp(req.IP) + if b == true { + resp.Status = 1 + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp:", resp) + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) +} + +type GetIPListReq struct { +} + +type GetIPListResp struct { +} + +func GetIPList(c *gin.Context) { + +} + +type AddIPLimitReq struct { + OperationID string `json:"operationID"` + IP string `json:"ip"` + LimitTime int32 `json:"limitTime"` +} + +type AddIPLimitResp struct { +} + +func AddIPLimit(c *gin.Context) { + req := AddIPLimitReq{} + //resp := AddIPLimitResp{} + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) + if err := imdb.InsertOneIntoIpLimits(db.IpLimit{ + Ip: req.IP, + LimitRegister: 1, + LimitLogin: 1, + CreateTime: time.Now(), + LimitTime: time.Time{}, + }); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.IP, req.LimitTime) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "InsertOneIntoIpLimits error!"}) + return + } + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": ""}) +} + +type RemoveIPLimitReq struct { +} + +type RemoveIPLimitResp struct { +} + +func RemoveIPLimit(c *gin.Context) { + +} + +// ===========================================sk 写 + +type QueryUserIDIPLimitReq struct { + UserID string `json:"userID" binding:"required"` +} + +type QueryUserIDIPLimitResp struct { +} + +func QueryUserIDIPLimit(c *gin.Context) { + +} + +type AddUserIPLimitReq struct { +} + +type AddUserIPLimitResp struct { +} + +// 添加ip 特定用户才能登录 user_ip_limits 表 +func AddUserIPLimit(c *gin.Context) { + +} + +type RemoveUserIPLimitReq struct { +} + +type RemoveUserIPLimitResp struct { +} + +// 删除ip 特定用户才能登录 user_ip_limits 表 +func RemoveUserIPLimit(c *gin.Context) { + +} diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 3f5d691cd..79c74a261 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -5,9 +5,10 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" http2 "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" + pbAuth "Open_IM/pkg/proto/auth" pbFriend "Open_IM/pkg/proto/friend" "Open_IM/pkg/utils" "encoding/json" @@ -41,6 +42,17 @@ func SetPassword(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) return } + + var ip string + Limited, LimitError := imdb.IsLimitRegisterIp(ip) + if LimitError != nil { + log.Error(params.OperationID, utils.GetSelfFuncName(), LimitError, ip) + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + } + if Limited { + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + } + var account string if params.Email != "" { account = params.Email @@ -65,7 +77,7 @@ func SetPassword(c *gin.Context) { } } if config.Config.Demo.NeedInvitationCode { - err := im_mysql_model.CheckInvitationCode(params.InvitationCode) + err := imdb.CheckInvitationCode(params.InvitationCode) if err != nil { c.JSON(http.StatusOK, gin.H{"errCode": constant.InvitationError, "errMsg": "邀请码错误"}) } @@ -120,12 +132,20 @@ func SetPassword(c *gin.Context) { return } log.Info(params.OperationID, "begin store mysql", account, params.Password, "info", params.FaceURL, params.Nickname) - err = im_mysql_model.SetPassword(account, params.Password, params.Ex, userID, params.AreaCode) + err = imdb.SetPassword(account, params.Password, params.Ex, userID, params.AreaCode) if err != nil { log.NewError(params.OperationID, "set phone number password error", account, "err", err.Error()) c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": err.Error()}) return } + if config.Config.Demo.NeedInvitationCode { + //判断一下验证码的使用情况 + LockSucc := imdb.TryLockInvitationCode(params.InvitationCode, userID) + if LockSucc { + imdb.FinishInvitationCode(params.InvitationCode, userID) + } + } + log.Info(params.OperationID, "end setPassword", account, params.Password) // demo onboarding if params.UserID == "" && config.Config.Demo.OnboardProcess { diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index 399c5c567..6bdedd091 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -30,13 +30,6 @@ func (rpc *rpcAuth) UserRegister(_ context.Context, req *pbAuth.UserRegisterReq) user.Birth = utils.UnixSecondToTime(int64(req.UserInfo.Birth)) } log.Debug(req.OperationID, "copy ", user, req.UserInfo) - Limited, LimitError := imdb.IsLimitRegisterIp(req.UserInfo.CreateIp) - if LimitError != nil { - return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: LimitError.Error()}}, nil - } - if Limited { - return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.RegisterLimit, ErrMsg: "Register Limit"}}, nil - } err := imdb.UserRegister(user) if err != nil { if err == constant.InvitationMsg { diff --git a/pkg/base_info/pagination.go b/pkg/base_info/pagination.go new file mode 100644 index 000000000..d73725632 --- /dev/null +++ b/pkg/base_info/pagination.go @@ -0,0 +1,6 @@ +package base_info + +type Pagination struct { + PageNumber int32 `json:"pageNumber" binding:"required"` + ShowNumber int32 `json:"showNumber" binding:"required"` +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go index 8184b5a6e..4c5b25b4a 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go @@ -2,6 +2,7 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" + "errors" _ "gorm.io/gorm" ) @@ -46,7 +47,11 @@ func AddUserRegisterAddFriendIDList(userIDList ...string) error { for _, v := range userIDList { list = append(list, db.RegisterAddFriend{UserID: v}) } - err := db.DB.MysqlDB.DefaultGormDB().Create(list).Error + result := db.DB.MysqlDB.DefaultGormDB().Create(list) + if int(result.RowsAffected) < len(userIDList) { + return errors.New("some line insert failed") + } + err := result.Error return err } diff --git a/pkg/common/db/mysql_model/im_mysql_model/invitation_model.go b/pkg/common/db/mysql_model/im_mysql_model/invitation_model.go index 0f5c3d030..56e22dd34 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/invitation_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/invitation_model.go @@ -3,6 +3,7 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" "errors" + "github.com/jinzhu/gorm" "math/rand" "time" ) @@ -10,15 +11,17 @@ import ( /** * 批量生成邀请码 */ -func BatchCreateInvitationCodes(CodeNums int, CodeLen int) error { +func BatchCreateInvitationCodes(CodeNums int, CodeLen int) ([]string, error) { i := CodeNums + var codes []string for { if i == 0 { break } + code := CreateRandomString(CodeLen) invitation := new(db.Invitation) invitation.CreateTime = time.Now() - invitation.InvitationCode = CreateRandomString(CodeLen) + invitation.InvitationCode = code invitation.LastTime = time.Now() invitation.Status = 0 invitation.UserID = "" @@ -29,8 +32,9 @@ func BatchCreateInvitationCodes(CodeNums int, CodeLen int) error { if result.RowsAffected > 0 { i = i - 1 } + codes = append(codes, code) } - return nil + return codes, nil } /** @@ -54,9 +58,9 @@ func CheckInvitationCode(code string) error { /** * 尝试加锁模式解决邀请码抢占的问题 */ -func TryLockInvitationCode(Code string, UserId string) bool { +func TryLockInvitationCode(Code string, UserID string) bool { Data := make(map[string]interface{}, 0) - Data["user_id"] = UserId + Data["user_id"] = UserID Data["status"] = 1 Data["last_time"] = time.Now() result := db.DB.MysqlDB.DefaultGormDB().Table("invitations").Where("invitation_code=? and user_id=? and status=?", Code, "", 0).Updates(Data) @@ -79,6 +83,17 @@ func FinishInvitationCode(Code string, UserId string) bool { return result.RowsAffected > 0 } +func GetInvitationCode(code string) (*db.Invitation, error) { + invitation := &db.Invitation{ + InvitationCode: code, + } + err := db.DB.MysqlDB.DefaultGormDB().Model(invitation).Find(invitation).Error + if gorm.IsRecordNotFoundError(err) { + return invitation, nil + } + return invitation, err +} + func CreateRandomString(strlen int) string { str := "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" bytes := []byte(str) @@ -89,3 +104,10 @@ func CreateRandomString(strlen int) string { } return string(result) } + +func GetInvitationCodes(pageNumber, showNumber, status int32) ([]db.Invitation, error) { + var invitationList []db.Invitation + err := db.DB.MysqlDB.DefaultGormDB().Model(db.Invitation{}).Limit(int(showNumber)).Offset(int(showNumber*(pageNumber-1))).Where("status=?", status). + Order("create_time desc").Find(&invitationList).Error + return invitationList, err +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go new file mode 100644 index 000000000..e5a09f238 --- /dev/null +++ b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go @@ -0,0 +1,40 @@ +package im_mysql_model + +import "Open_IM/pkg/common/db" + +func IsLimitRegisterIp(RegisterIp string) (bool, error) { + //如果已经存在则限制 + var count int64 + if err := db.DB.MysqlDB.DefaultGormDB().Table("ip_limits").Where("ip=? and limit_register=? and limit_time>now()", RegisterIp, 1).Count(&count).Error; err != nil { + return false, err + } + return count > 0, nil +} + +func IsLimitLoginIp(LoginIp string) (bool, error) { + //如果已经存在则限制 + var count int64 + if err := db.DB.MysqlDB.DefaultGormDB().Table("ip_limits").Where("ip=? and limit_login=? and limit_time>now()", LoginIp, 1).Count(&count).Error; err != nil { + return false, err + } + return count > 0, nil +} + +func IsLimitUserLoginIp(userID string, LoginIp string) (bool, error) { + //如果已经存在则放行 + var count int64 + if err := db.DB.MysqlDB.DefaultGormDB().Table("user_ip_limits").Where("ip=? and user_id=?", LoginIp, userID).Count(&count).Error; err != nil { + return false, err + } + return count == 0, nil +} + +func QueryUserIPLimits(ip string) ([]db.UserIpLimit, error) { + var ips []db.UserIpLimit + err := db.DB.MysqlDB.DefaultGormDB().Model(&db.UserIpLimit{}).Where("ip=?", ip).Find(&ips).Error + return ips, err +} + +func InsertOneIntoIpLimits(ipLimits db.IpLimit) error { + return db.DB.MysqlDB.DefaultGormDB().Model(&db.IpLimit{}).Create(ipLimits).Error +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index c91444259..c8a5d603e 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -46,20 +46,10 @@ func UserRegister(user db.User) error { user.LastLoginTime = time.Now() user.LoginTimes = 0 user.LastLoginIp = user.CreateIp - if config.Config.Demo.NeedInvitationCode { - //判断一下验证码的使用情况 - LockSucc := TryLockInvitationCode(user.InvitationCode, user.UserID) - if !LockSucc { - return constant.InvitationMsg - } - } err := db.DB.MysqlDB.DefaultGormDB().Table("users").Create(&user).Error if err != nil { return err } - if config.Config.Demo.NeedInvitationCode { - FinishInvitationCode(user.InvitationCode, user.UserID) - } return nil } @@ -288,30 +278,3 @@ func GetBlockUsersNumCount() (int32, error) { } return int32(count), nil } - -func IsLimitRegisterIp(RegisterIp string) (bool, error) { - //如果已经存在则限制 - var count int64 - if err := db.DB.MysqlDB.DefaultGormDB().Table("ip_limits").Where("ip=? and limit_register=? and limit_time>now()", RegisterIp, 1).Count(&count).Error; err != nil { - return false, err - } - return count > 0, nil -} - -func IsLimitLoginIp(LoginIp string) (bool, error) { - //如果已经存在则限制 - var count int64 - if err := db.DB.MysqlDB.DefaultGormDB().Table("ip_limits").Where("ip=? and limit_login=? and limit_time>now()", LoginIp, 1).Count(&count).Error; err != nil { - return false, err - } - return count > 0, nil -} - -func IsLimitUserLoginIp(userID string, LoginIp string) (bool, error) { - //如果已经存在则放行 - var count int64 - if err := db.DB.MysqlDB.DefaultGormDB().Table("user_ip_limits").Where("ip=? and user_id=?", LoginIp, userID).Count(&count).Error; err != nil { - return false, err - } - return count == 0, nil -} diff --git a/script/check_all.sh b/script/check_all.sh index 6dbe2c9d1..522230813 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -58,7 +58,7 @@ fi check=$(ps aux | grep -w ./${cron_task_name} | grep -v grep | wc -l) if [ $check -ge 1 ]; then - echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is cron_task_name"${COLOR_SUFFIX} + echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is openImCronTask"${COLOR_SUFFIX} else echo -e ${RED_PREFIX}"cron_task_name service does not start normally"${COLOR_SUFFIX} echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} From 8b857f9980ef09efe5af1625077d7780bf68945d Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 15 Aug 2022 17:52:45 +0800 Subject: [PATCH 131/230] Restrict user login with IP --- cmd/open_im_demo/main.go | 3 + internal/demo/register/ip_limit.go | 74 +++++++++++++++---- .../db/mysql_model/im_mysql_model/ip_model.go | 21 +++++- 3 files changed, 83 insertions(+), 15 deletions(-) diff --git a/cmd/open_im_demo/main.go b/cmd/open_im_demo/main.go index 90d225fa0..b482f6c66 100644 --- a/cmd/open_im_demo/main.go +++ b/cmd/open_im_demo/main.go @@ -45,6 +45,9 @@ func main() { cmsRouterGroup.POST("/generate_invitation_code", register.GenerateInvitationCode) cmsRouterGroup.POST("/query_invitation_code", register.QueryInvitationCode) cmsRouterGroup.POST("/get_invitation_codes", register.GetInvitationCodes) + cmsRouterGroup.POST("/query_user_ip_limit_login", register.QueryUserIPLimitLogin) + cmsRouterGroup.POST("/add_user_ip_limit_login", register.AddUserIPLimitLogin) + cmsRouterGroup.POST("/remove_user_ip_limit_login", register.RemoveUserIPLimitLogin) } defaultPorts := config.Config.Demo.Port ginPort := flag.Int("port", defaultPorts[0], "get ginServerPort from cmd,default 10004 as port") diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index 9e4e42eee..bcd84d489 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -101,37 +101,83 @@ func RemoveIPLimit(c *gin.Context) { } -// ===========================================sk 写 +// ===========================================sk ========================== -type QueryUserIDIPLimitReq struct { - UserID string `json:"userID" binding:"required"` +type QueryUserIDIPLimitLoginReq struct { + UserID string `json:"userID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` } -type QueryUserIDIPLimitResp struct { +//type QueryUserIDIPLimitLoginResp struct { +// UserIpLimit []db.UserIpLimit `json:"userIpLimit"` +//} + +func QueryUserIPLimitLogin(c *gin.Context) { + req := QueryUserIDIPLimitLoginReq{} + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) + resp, err := imdb.GetIpLimitsLoginByUserID(req.UserID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserID) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "GetIpLimitsByUserID error!"}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp:", resp) + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) } -func QueryUserIDIPLimit(c *gin.Context) { - +type AddUserIPLimitLoginReq struct { + UserID string `json:"userID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` + IP string `json:"ip"` } -type AddUserIPLimitReq struct { -} - -type AddUserIPLimitResp struct { +type AddUserIPLimitLoginResp struct { } // 添加ip 特定用户才能登录 user_ip_limits 表 -func AddUserIPLimit(c *gin.Context) { - +func AddUserIPLimitLogin(c *gin.Context) { + req := AddUserIPLimitLoginReq{} + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) + userIp := db.UserIpLimit{UserID: req.UserID, Ip: req.IP} + err := imdb.InsertUserIpLimitsLogin(&userIp) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserID) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "InsertUserIpLimitsLogin error!"}) + return + } + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": ""}) } type RemoveUserIPLimitReq struct { + UserID string `json:"userID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` + IP string `json:"ip"` } type RemoveUserIPLimitResp struct { } // 删除ip 特定用户才能登录 user_ip_limits 表 -func RemoveUserIPLimit(c *gin.Context) { - +func RemoveUserIPLimitLogin(c *gin.Context) { + req := RemoveUserIPLimitReq{} + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) + err := imdb.DeleteUserIpLimitsLogin(req.UserID, req.IP) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserID) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "DeleteUserIpLimitsLogin error!"}) + return + } + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": ""}) } diff --git a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go index e5a09f238..5bb1636f4 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go @@ -1,6 +1,9 @@ package im_mysql_model -import "Open_IM/pkg/common/db" +import ( + "Open_IM/pkg/common/db" + "time" +) func IsLimitRegisterIp(RegisterIp string) (bool, error) { //如果已经存在则限制 @@ -38,3 +41,19 @@ func QueryUserIPLimits(ip string) ([]db.UserIpLimit, error) { func InsertOneIntoIpLimits(ipLimits db.IpLimit) error { return db.DB.MysqlDB.DefaultGormDB().Model(&db.IpLimit{}).Create(ipLimits).Error } + +func GetIpLimitsLoginByUserID(userID string) ([]db.UserIpLimit, error) { + var ips []db.UserIpLimit + err := db.DB.MysqlDB.DefaultGormDB().Model(&db.UserIpLimit{}).Where("user_id=?", userID).Take(&ips).Error + return ips, err +} + +func InsertUserIpLimitsLogin(userIp *db.UserIpLimit) error { + userIp.CreateTime = time.Now() + return db.DB.MysqlDB.DefaultGormDB().Model(&db.UserIpLimit{}).Create(userIp).Error +} + +func DeleteUserIpLimitsLogin(userID, ip string) error { + userIp := db.UserIpLimit{UserID: userID, Ip: ip} + return db.DB.MysqlDB.DefaultGormDB().Model(&db.UserIpLimit{}).Delete(&userIp).Error +} From 8b491f4c94d170a83cc170309975829857503319 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 15 Aug 2022 17:59:52 +0800 Subject: [PATCH 132/230] retry function --- pkg/tools/retry/retry.go | 184 +++++++++++++++++++++++++++++++++++++ pkg/tools/retry/stratey.go | 56 +++++++++++ 2 files changed, 240 insertions(+) create mode 100644 pkg/tools/retry/retry.go create mode 100644 pkg/tools/retry/stratey.go diff --git a/pkg/tools/retry/retry.go b/pkg/tools/retry/retry.go new file mode 100644 index 000000000..8877dd0a5 --- /dev/null +++ b/pkg/tools/retry/retry.go @@ -0,0 +1,184 @@ +package retry + +import ( + "context" + "errors" + "fmt" + "runtime/debug" + "time" +) + +var ( + ErrorAbort = errors.New("stop retry") + ErrorTimeout = errors.New("retry timeout") + ErrorContextDeadlineExceed = errors.New("context deadline exceeded") + ErrorEmptyRetryFunc = errors.New("empty retry function") + ErrorTimeFormat = errors.New("time out err") +) + +type RetriesFunc func() error +type Option func(c *Config) +type HookFunc func() +type RetriesChecker func(err error) (needRetry bool) +type Config struct { + MaxRetryTimes int + Timeout time.Duration + RetryChecker RetriesChecker + Strategy Strategy + RecoverPanic bool + BeforeTry HookFunc + AfterTry HookFunc +} + +var ( + DefaultMaxRetryTimes = 3 + DefaultTimeout = time.Minute + DefaultInterval = time.Second * 2 + DefaultRetryChecker = func(err error) bool { + return !errors.Is(err, ErrorAbort) // not abort error, should continue retry + } +) + +func newDefaultConfig() *Config { + return &Config{ + MaxRetryTimes: DefaultMaxRetryTimes, + RetryChecker: DefaultRetryChecker, + Timeout: DefaultTimeout, + Strategy: NewLinear(DefaultInterval), + BeforeTry: func() {}, + AfterTry: func() {}, + } +} + +func WithTimeout(timeout time.Duration) Option { + return func(c *Config) { + c.Timeout = timeout + } +} + +func WithMaxRetryTimes(times int) Option { + return func(c *Config) { + c.MaxRetryTimes = times + } +} + +func WithRecoverPanic() Option { + return func(c *Config) { + c.RecoverPanic = true + } +} + +func WithBeforeHook(hook HookFunc) Option { + return func(c *Config) { + c.BeforeTry = hook + } +} + +func WithAfterHook(hook HookFunc) Option { + return func(c *Config) { + c.AfterTry = hook + } +} + +func WithRetryChecker(checker RetriesChecker) Option { + return func(c *Config) { + c.RetryChecker = checker + } +} + +func WithBackOffStrategy(s BackoffStrategy, duration time.Duration) Option { + return func(c *Config) { + switch s { + case StrategyConstant: + c.Strategy = NewConstant(duration) + case StrategyLinear: + c.Strategy = NewLinear(duration) + case StrategyFibonacci: + c.Strategy = NewFibonacci(duration) + } + } +} + +func WithCustomStrategy(s Strategy) Option { + return func(c *Config) { + c.Strategy = s + } +} + +func Do(ctx context.Context, fn RetriesFunc, opts ...Option) error { + if fn == nil { + return ErrorEmptyRetryFunc + } + var ( + abort = make(chan struct{}, 1) // caller choose to abort retry + run = make(chan error, 1) + panicInfoChan = make(chan string, 1) + + timer *time.Timer + runErr error + ) + config := newDefaultConfig() + for _, o := range opts { + o(config) + } + if config.Timeout > 0 { + timer = time.NewTimer(config.Timeout) + } else { + return ErrorTimeFormat + } + go func() { + var err error + defer func() { + if e := recover(); e == nil { + return + } else { + panicInfoChan <- fmt.Sprintf("retry function panic has occured, err=%v, stack:%s", e, string(debug.Stack())) + } + }() + for i := 0; i < config.MaxRetryTimes; i++ { + config.BeforeTry() + err = fn() + config.AfterTry() + if err == nil { + run <- nil + return + } + // check whether to retry + if config.RetryChecker != nil { + needRetry := config.RetryChecker(err) + if !needRetry { + abort <- struct{}{} + return + } + } + if config.Strategy != nil { + interval := config.Strategy.Sleep(i + 1) + <-time.After(interval) + } + } + run <- err + }() + select { + case <-ctx.Done(): + // context deadline exceed + return ErrorContextDeadlineExceed + case <-timer.C: + // timeout + return ErrorTimeout + case <-abort: + // caller abort + return ErrorAbort + case msg := <-panicInfoChan: + // panic occurred + if !config.RecoverPanic { + panic(msg) + } + runErr = fmt.Errorf("panic occurred=%s", msg) + case e := <-run: + // normal run + if e != nil { + runErr = fmt.Errorf("retry failed, err=%w", e) + } + } + return runErr +} diff --git a/pkg/tools/retry/stratey.go b/pkg/tools/retry/stratey.go new file mode 100644 index 000000000..e045684e8 --- /dev/null +++ b/pkg/tools/retry/stratey.go @@ -0,0 +1,56 @@ +package retry + +import "time" + +type BackoffStrategy int + +const ( + StrategyConstant BackoffStrategy = iota + StrategyLinear + StrategyFibonacci +) + +type Strategy interface { + Sleep(times int) time.Duration +} +type Constant struct { + startInterval time.Duration +} + +func NewConstant(d time.Duration) *Constant { + return &Constant{startInterval: d} +} + +type Linear struct { + startInterval time.Duration +} + +func NewLinear(d time.Duration) *Linear { + return &Linear{startInterval: d} +} + +type Fibonacci struct { + startInterval time.Duration +} + +func NewFibonacci(d time.Duration) *Fibonacci { + return &Fibonacci{startInterval: d} +} + +func (c *Constant) Sleep(_ int) time.Duration { + return c.startInterval +} +func (l *Linear) Sleep(times int) time.Duration { + return l.startInterval * time.Duration(times) + +} +func (f *Fibonacci) Sleep(times int) time.Duration { + return f.startInterval * time.Duration(fibonacciNumber(times)) + +} +func fibonacciNumber(n int) int { + if n == 0 || n == 1 { + return n + } + return fibonacciNumber(n-1) + fibonacciNumber(n-2) +} From 24e7076423fcff0134ab346bff5d328d4a5284e5 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 15 Aug 2022 18:28:04 +0800 Subject: [PATCH 133/230] Restrict user login with IP --- internal/demo/register/set_password.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 79c74a261..632254383 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -8,7 +8,6 @@ import ( imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" http2 "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" - pbAuth "Open_IM/pkg/proto/auth" pbFriend "Open_IM/pkg/proto/friend" "Open_IM/pkg/utils" "encoding/json" @@ -47,10 +46,10 @@ func SetPassword(c *gin.Context) { Limited, LimitError := imdb.IsLimitRegisterIp(ip) if LimitError != nil { log.Error(params.OperationID, utils.GetSelfFuncName(), LimitError, ip) - c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": LimitError.Error()}) } if Limited { - c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": "limited"}) } var account string From 44e4c59493c233f11f3685c69f0b50dbbc49c3fb Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 15 Aug 2022 18:34:03 +0800 Subject: [PATCH 134/230] Restrict user login with IP --- internal/demo/register/ip_limit.go | 6 +++--- internal/demo/register/set_password.go | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index bcd84d489..c2bdd6d07 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -34,7 +34,7 @@ func QueryIP(c *gin.Context) { ips, err := imdb.QueryUserIPLimits(req.IP) if err != nil { log.NewError(req.OperationID, "GetInvitationCode failed", req.IP) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "QueryUserIPLimits error!"}) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": "QueryUserIPLimits error!"}) return } resp.IP = req.IP @@ -85,7 +85,7 @@ func AddIPLimit(c *gin.Context) { LimitTime: time.Time{}, }); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.IP, req.LimitTime) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "InsertOneIntoIpLimits error!"}) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": "InsertOneIntoIpLimits error!"}) return } c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": ""}) @@ -122,7 +122,7 @@ func QueryUserIPLimitLogin(c *gin.Context) { resp, err := imdb.GetIpLimitsLoginByUserID(req.UserID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserID) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "GetIpLimitsByUserID error!"}) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": "GetIpLimitsByUserID error!"}) return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp:", resp) diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 632254383..def5b8c16 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -47,9 +47,11 @@ func SetPassword(c *gin.Context) { if LimitError != nil { log.Error(params.OperationID, utils.GetSelfFuncName(), LimitError, ip) c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": LimitError.Error()}) + return } if Limited { c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": "limited"}) + return } var account string From 05d45c94d50f86e5abee5c063f7f9061ab24f981 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 18:39:34 +0800 Subject: [PATCH 135/230] ip limit --- internal/demo/register/invitation_code.go | 2 +- internal/demo/register/ip_limit.go | 30 ++++++------------- .../db/mysql_model/im_mysql_model/ip_model.go | 5 ++++ 3 files changed, 15 insertions(+), 22 deletions(-) diff --git a/internal/demo/register/invitation_code.go b/internal/demo/register/invitation_code.go index 51aac1aa3..b0fb3004d 100644 --- a/internal/demo/register/invitation_code.go +++ b/internal/demo/register/invitation_code.go @@ -80,7 +80,7 @@ func QueryInvitationCode(c *gin.Context) { } type GetInvitationCodesReq struct { - Status int32 `json:"status" binding:"required"` + Status int32 `json:"status"` OperationID string `json:"operationID" binding:"required"` apiStruct.Pagination } diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index 9e4e42eee..3cd9393cb 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -1,6 +1,7 @@ package register import ( + api "Open_IM/pkg/base_info" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" @@ -11,21 +12,21 @@ import ( "time" ) -type QueryIPReq struct { +type QueryIPRegisterReq struct { OperationID string `json:"operationID"` IP string `json:"ip"` } -type QueryIPResp struct { +type QueryIPRegisterResp struct { IP string `json:"ip"` RegisterNum int `json:"num"` UserIDList []string `json:"userIDList"` - Status int + Status int `json:"status"` } -func QueryIP(c *gin.Context) { - req := QueryIPReq{} - resp := QueryIPResp{} +func QueryIPRegister(c *gin.Context) { + req := QueryIPRegisterReq{} + resp := QueryIPRegisterResp{} if err := c.BindJSON(&req); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) return @@ -42,24 +43,11 @@ func QueryIP(c *gin.Context) { for _, ip := range ips { resp.UserIDList = append(resp.UserIDList, ip.UserID) } - b, _ := imdb.IsLimitLoginIp(req.IP) - if b == true { - resp.Status = 1 - } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp:", resp) c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) } -type GetIPListReq struct { -} - -type GetIPListResp struct { -} - -func GetIPList(c *gin.Context) { - -} - type AddIPLimitReq struct { OperationID string `json:"operationID"` IP string `json:"ip"` @@ -98,7 +86,7 @@ type RemoveIPLimitResp struct { } func RemoveIPLimit(c *gin.Context) { - + //DeleteOneFromIpLimits } // ===========================================sk 写 diff --git a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go index e5a09f238..6bd3dd8db 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go @@ -38,3 +38,8 @@ func QueryUserIPLimits(ip string) ([]db.UserIpLimit, error) { func InsertOneIntoIpLimits(ipLimits db.IpLimit) error { return db.DB.MysqlDB.DefaultGormDB().Model(&db.IpLimit{}).Create(ipLimits).Error } + +func DeleteOneFromIpLimits(ip string) error { + ipLimits := &db.IpLimit{} + return db.DB.MysqlDB.DefaultGormDB().Model(ipLimits).Where("ip=?", ip).Delete(ipLimits).Error +} From 630fef29a2b487020e894341d48dba1638070d9a Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 15 Aug 2022 18:43:12 +0800 Subject: [PATCH 136/230] Restrict user login with IP --- internal/demo/register/ip_limit.go | 8 ++++++-- pkg/common/db/mysql_model/im_mysql_model/ip_model.go | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index c2bdd6d07..27b0542f3 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -125,8 +125,12 @@ func QueryUserIPLimitLogin(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": "GetIpLimitsByUserID error!"}) return } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp:", resp) - c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) + if len(resp) > 0 { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp:", resp) + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) + return + } + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": "[]"}) } type AddUserIPLimitLoginReq struct { diff --git a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go index 5bb1636f4..0a83af65b 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go @@ -44,7 +44,7 @@ func InsertOneIntoIpLimits(ipLimits db.IpLimit) error { func GetIpLimitsLoginByUserID(userID string) ([]db.UserIpLimit, error) { var ips []db.UserIpLimit - err := db.DB.MysqlDB.DefaultGormDB().Model(&db.UserIpLimit{}).Where("user_id=?", userID).Take(&ips).Error + err := db.DB.MysqlDB.DefaultGormDB().Model(&db.UserIpLimit{}).Where("user_id=?", userID).Find(&ips).Error return ips, err } From d5b873b70b04c776831349e6aac57f8bfaa8e553 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 19:01:57 +0800 Subject: [PATCH 137/230] Merge branch 'del' of github.com:OpenIMSDK/Open-IM-Server into del # Conflicts: # pkg/common/db/mysql_model/im_mysql_model/ip_model.go --- internal/demo/register/ip_limit.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index afc4f01f9..c562f15ae 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -1,7 +1,7 @@ package register import ( - api "Open_IM/pkg/base_info" + //api "Open_IM/pkg/base_info" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" From 9aa7ba77f5e7dd58e246246f9106ab02653a4d79 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 19:19:22 +0800 Subject: [PATCH 138/230] fix code --- internal/demo/register/invitation_code.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/internal/demo/register/invitation_code.go b/internal/demo/register/invitation_code.go index b0fb3004d..c74fc1d30 100644 --- a/internal/demo/register/invitation_code.go +++ b/internal/demo/register/invitation_code.go @@ -87,7 +87,7 @@ type GetInvitationCodesReq struct { type GetInvitationCodesResp struct { apiStruct.Pagination - codes []InvitationCode + Codes []InvitationCode `json:"codes"` } func GetInvitationCodes(c *gin.Context) { @@ -106,7 +106,15 @@ func GetInvitationCodes(c *gin.Context) { } resp.Pagination.PageNumber = req.PageNumber resp.Pagination.ShowNumber = req.ShowNumber - utils.CopyStructFields(codes, resp.codes) + for _, v := range codes { + resp.Codes = append(resp.Codes, InvitationCode{ + InvitationCode: v.InvitationCode, + CreateTime: v.CreateTime, + UserID: v.UserID, + LastTime: v.LastTime, + Status: v.Status, + }) + } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp:", resp) c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) } From b705ac24fadb6fb939cff83af056780ff7995dbb Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 19:27:23 +0800 Subject: [PATCH 139/230] fix code --- cmd/open_im_demo/main.go | 1 + pkg/common/db/mysql_model/im_mysql_model/invitation_model.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/open_im_demo/main.go b/cmd/open_im_demo/main.go index 76bc6b04a..3e1a73dc5 100644 --- a/cmd/open_im_demo/main.go +++ b/cmd/open_im_demo/main.go @@ -45,6 +45,7 @@ func main() { cmsRouterGroup.POST("/generate_invitation_code", register.GenerateInvitationCode) cmsRouterGroup.POST("/query_invitation_code", register.QueryInvitationCode) cmsRouterGroup.POST("/get_invitation_codes", register.GetInvitationCodes) + cmsRouterGroup.POST("/query_user_ip_limit_login", register.QueryUserIPLimitLogin) cmsRouterGroup.POST("/add_user_ip_limit_login", register.AddUserIPLimitLogin) cmsRouterGroup.POST("/remove_user_ip_limit_login", register.RemoveUserIPLimitLogin) diff --git a/pkg/common/db/mysql_model/im_mysql_model/invitation_model.go b/pkg/common/db/mysql_model/im_mysql_model/invitation_model.go index 56e22dd34..3da3d778f 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/invitation_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/invitation_model.go @@ -105,7 +105,7 @@ func CreateRandomString(strlen int) string { return string(result) } -func GetInvitationCodes(pageNumber, showNumber, status int32) ([]db.Invitation, error) { +func GetInvitationCodes(showNumber, pageNumber, status int32) ([]db.Invitation, error) { var invitationList []db.Invitation err := db.DB.MysqlDB.DefaultGormDB().Model(db.Invitation{}).Limit(int(showNumber)).Offset(int(showNumber*(pageNumber-1))).Where("status=?", status). Order("create_time desc").Find(&invitationList).Error From 919e2543cac34d7d8c85e8885ee3712240efbc77 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 19:50:13 +0800 Subject: [PATCH 140/230] fix code --- cmd/open_im_demo/main.go | 2 +- internal/demo/register/ip_limit.go | 14 +++++++------- .../db/mysql_model/im_mysql_model/ip_model.go | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cmd/open_im_demo/main.go b/cmd/open_im_demo/main.go index 3e1a73dc5..f0639fc6d 100644 --- a/cmd/open_im_demo/main.go +++ b/cmd/open_im_demo/main.go @@ -46,7 +46,7 @@ func main() { cmsRouterGroup.POST("/query_invitation_code", register.QueryInvitationCode) cmsRouterGroup.POST("/get_invitation_codes", register.GetInvitationCodes) - cmsRouterGroup.POST("/query_user_ip_limit_login", register.QueryUserIPLimitLogin) + cmsRouterGroup.POST("/query_user_ip_limit_login", register.QueryUserIDLimitLogin) cmsRouterGroup.POST("/add_user_ip_limit_login", register.AddUserIPLimitLogin) cmsRouterGroup.POST("/remove_user_ip_limit_login", register.RemoveUserIPLimitLogin) diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index c562f15ae..c63bbcfb0 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -43,7 +43,7 @@ func QueryIPRegister(c *gin.Context) { resp.UserIDList = userIDList ipLimits, err := imdb.QueryIPLimits(req.IP) if err != nil { - log.NewError(req.OperationID, "QueryIPLimits failed", req.IP) + log.NewError(req.OperationID, "QueryIPLimits failed", req.IP, err.Error()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": "QueryIPLimits error!"}) return } @@ -76,7 +76,7 @@ func AddIPLimit(c *gin.Context) { LimitRegister: 1, LimitLogin: 1, CreateTime: time.Now(), - LimitTime: time.Time{}, + LimitTime: utils.UnixSecondToTime(int64(req.LimitTime)), }); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.IP, req.LimitTime) c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": "InsertOneIntoIpLimits error!"}) @@ -94,15 +94,15 @@ type RemoveIPLimitResp struct { } func RemoveIPLimit(c *gin.Context) { - req := AddIPLimitReq{} + req := RemoveIPLimitReq{} //resp := AddIPLimitResp{} if err := c.BindJSON(&req); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.ErrArgs, "errMsg": err.Error()}) return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) if err := imdb.DeleteOneFromIpLimits(req.IP); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.IP, req.LimitTime) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.IP) c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": "InsertOneIntoIpLimits error!"}) return } @@ -120,7 +120,7 @@ type QueryUserIDIPLimitLoginReq struct { // UserIpLimit []db.UserIpLimit `json:"userIpLimit"` //} -func QueryUserIPLimitLogin(c *gin.Context) { +func QueryUserIDLimitLogin(c *gin.Context) { req := QueryUserIDIPLimitLoginReq{} if err := c.BindJSON(&req); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) @@ -138,7 +138,7 @@ func QueryUserIPLimitLogin(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) return } - c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": "[]"}) + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) } type AddUserIPLimitLoginReq struct { diff --git a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go index a65b8a1e5..1b5abdb0f 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go @@ -53,7 +53,7 @@ func InsertOneIntoIpLimits(ipLimits db.IpLimit) error { } func DeleteOneFromIpLimits(ip string) error { - ipLimits := &db.IpLimit{} + ipLimits := &db.IpLimit{Ip: ip} return db.DB.MysqlDB.DefaultGormDB().Model(ipLimits).Where("ip=?", ip).Delete(ipLimits).Error } From c6b669eb9d2530b2cb7e66b77d2c75057f06b2c8 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 20:09:02 +0800 Subject: [PATCH 141/230] fix code --- internal/demo/register/ip_limit.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index c63bbcfb0..4908a2ca8 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -47,6 +47,7 @@ func QueryIPRegister(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": "QueryIPLimits error!"}) return } + if ipLimits.Ip != "" { resp.Status = 1 } From cb10df7c9f4b5a9e3ac9a968da0a12905030c061 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 20:11:08 +0800 Subject: [PATCH 142/230] fix code --- pkg/common/db/mysql_model/im_mysql_model/ip_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go index 1b5abdb0f..cd1b1fa09 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go @@ -37,7 +37,7 @@ func QueryIPLimits(ip string) (*db.IpLimit, error) { var ipLimit db.IpLimit err := db.DB.MysqlDB.DefaultGormDB().Model(&db.IpLimit{}).Where("ip=?", ip).Take(&ip).Error if gorm.IsRecordNotFoundError(err) { - return nil, nil + return &ipLimit, nil } return &ipLimit, err } From dfee8891d3422f9eefab9b7b912fbc2d8ee97dfc Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 20:16:15 +0800 Subject: [PATCH 143/230] fix code --- internal/demo/register/ip_limit.go | 18 +++++++++++------- .../db/mysql_model/im_mysql_model/ip_model.go | 6 +----- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index 4908a2ca8..be9a33b1a 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -8,6 +8,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "github.com/gin-gonic/gin" + "github.com/jinzhu/gorm" "net/http" "time" ) @@ -41,16 +42,19 @@ func QueryIPRegister(c *gin.Context) { resp.IP = req.IP resp.RegisterNum = len(userIDList) resp.UserIDList = userIDList - ipLimits, err := imdb.QueryIPLimits(req.IP) + _, err = imdb.QueryIPLimits(req.IP) if err != nil { - log.NewError(req.OperationID, "QueryIPLimits failed", req.IP, err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": "QueryIPLimits error!"}) - return - } - - if ipLimits.Ip != "" { + if gorm.IsRecordNotFoundError(err) { + resp.Status = 0 + } else { + log.NewError(req.OperationID, "QueryIPLimits failed", req.IP, err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": "QueryIPLimits error!"}) + return + } + } else { resp.Status = 1 } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp:", resp) c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) } diff --git a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go index cd1b1fa09..cad838a50 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go @@ -2,7 +2,6 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" - "github.com/jinzhu/gorm" "time" ) @@ -35,10 +34,7 @@ func IsLimitUserLoginIp(userID string, LoginIp string) (bool, error) { func QueryIPLimits(ip string) (*db.IpLimit, error) { var ipLimit db.IpLimit - err := db.DB.MysqlDB.DefaultGormDB().Model(&db.IpLimit{}).Where("ip=?", ip).Take(&ip).Error - if gorm.IsRecordNotFoundError(err) { - return &ipLimit, nil - } + err := db.DB.MysqlDB.DefaultGormDB().Model(&db.IpLimit{}).Where("ip=?", ip).First(&ip).Error return &ipLimit, err } From 1747ae8984c2e5e725856d69c812f75c148b2b2e Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 20:21:06 +0800 Subject: [PATCH 144/230] fix code --- internal/demo/register/set_password.go | 8 ++++++-- .../db/mysql_model/im_mysql_model/demo_model.go | 13 +++++++------ .../db/mysql_model/im_mysql_model/ip_model.go | 2 +- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 603d77647..3cc113b79 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -42,7 +42,11 @@ func SetPassword(c *gin.Context) { return } - var ip string + ip := c.Request.Header.Get("X-Forward-For") + if ip == "" { + ip = c.ClientIP() + } + log.NewDebug(params.OperationID, utils.GetSelfFuncName(), "ip:", ip) Limited, LimitError := imdb.IsLimitRegisterIp(ip) if LimitError != nil { log.Error(params.OperationID, utils.GetSelfFuncName(), LimitError, ip) @@ -133,7 +137,7 @@ func SetPassword(c *gin.Context) { return } log.Info(params.OperationID, "begin store mysql", account, params.Password, "info", params.FaceURL, params.Nickname) - err = imdb.SetPassword(account, params.Password, params.Ex, userID, params.AreaCode) + err = imdb.SetPassword(account, params.Password, params.Ex, userID, params.AreaCode, ip) if err != nil { log.NewError(params.OperationID, "set phone number password error", account, "err", err.Error()) c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": err.Error()}) diff --git a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go index 4c5b25b4a..fe3a17292 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go @@ -12,13 +12,14 @@ func GetRegister(account, areaCode, userID string) (*db.Register, error) { userID, "", account, account, areaCode).Take(&r).Error } -func SetPassword(account, password, ex, userID, areaCode string) error { +func SetPassword(account, password, ex, userID, areaCode, ip string) error { r := db.Register{ - Account: account, - Password: password, - Ex: ex, - UserID: userID, - AreaCode: areaCode, + Account: account, + Password: password, + Ex: ex, + UserID: userID, + RegisterIP: ip, + AreaCode: areaCode, } return db.DB.MysqlDB.DefaultGormDB().Table("registers").Create(&r).Error } diff --git a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go index cad838a50..b1727eddb 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go @@ -34,7 +34,7 @@ func IsLimitUserLoginIp(userID string, LoginIp string) (bool, error) { func QueryIPLimits(ip string) (*db.IpLimit, error) { var ipLimit db.IpLimit - err := db.DB.MysqlDB.DefaultGormDB().Model(&db.IpLimit{}).Where("ip=?", ip).First(&ip).Error + err := db.DB.MysqlDB.DefaultGormDB().Model(&db.IpLimit{}).Where("ip=?", ip).Find(&ip).Error return &ipLimit, err } From 37193c48d9cbb28aef9a6b5e74c792978fc11444 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 20:31:03 +0800 Subject: [PATCH 145/230] fix code --- internal/demo/register/ip_limit.go | 7 ++++--- internal/demo/register/login.go | 5 +++++ internal/demo/register/set_password.go | 7 ++----- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index be9a33b1a..aab0c407c 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -42,7 +42,7 @@ func QueryIPRegister(c *gin.Context) { resp.IP = req.IP resp.RegisterNum = len(userIDList) resp.UserIDList = userIDList - _, err = imdb.QueryIPLimits(req.IP) + ipLimit, err := imdb.QueryIPLimits(req.IP) if err != nil { if gorm.IsRecordNotFoundError(err) { resp.Status = 0 @@ -52,9 +52,10 @@ func QueryIPRegister(c *gin.Context) { return } } else { - resp.Status = 1 + if ipLimit.Ip != "" { + resp.Status = 1 + } } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp:", resp) c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) } diff --git a/internal/demo/register/login.go b/internal/demo/register/login.go index 4f0ae811c..89c1a770b 100644 --- a/internal/demo/register/login.go +++ b/internal/demo/register/login.go @@ -57,12 +57,17 @@ func Login(c *gin.Context) { } else { userID = r.Account } + ip := c.Request.Header.Get("X-Forward-For") + if ip == "" { + ip = c.ClientIP() + } url := fmt.Sprintf("http://%s:%d/auth/user_token", utils.ServerIP, config.Config.Api.GinPort[0]) openIMGetUserToken := api.UserTokenReq{} openIMGetUserToken.OperationID = params.OperationID openIMGetUserToken.Platform = params.Platform openIMGetUserToken.Secret = config.Config.Secret openIMGetUserToken.UserID = userID + openIMGetUserToken.LoginIp = ip loginIp := c.Request.Header.Get("X-Forward-For") if loginIp == "" { loginIp = c.ClientIP() diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 3cc113b79..b768a90d0 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -107,11 +107,8 @@ func SetPassword(c *gin.Context) { openIMRegisterReq.Nickname = params.Nickname openIMRegisterReq.Secret = config.Config.Secret openIMRegisterReq.FaceURL = params.FaceURL - createIp := c.Request.Header.Get("X-Forward-For") - if createIp == "" { - createIp = c.ClientIP() - } - openIMRegisterReq.CreateIp = createIp + openIMRegisterReq.CreateIp = ip + openIMRegisterReq.LastLoginIp = ip openIMRegisterReq.InvitationCode = params.InvitationCode openIMRegisterResp := api.UserRegisterResp{} log.NewDebug(params.OperationID, utils.GetSelfFuncName(), "register req:", openIMRegisterReq) From 7b9d0b4f1f8521b307fab727da0cf168c1957530 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AC=A7=E9=98=B3=E6=B0=8F?= Date: Mon, 15 Aug 2022 20:33:09 +0800 Subject: [PATCH 146/230] =?UTF-8?q?=E5=B0=81=E7=A6=81=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/cms_api/user/user.go | 4 ++++ internal/rpc/user/user.go | 8 ++++++++ .../db/mysql_model/im_mysql_model/user_model.go | 16 ++++++++++++---- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index 09513a98e..cf23dd3bc 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -323,6 +323,10 @@ func GetBlockUsers(c *gin.Context) { ProfilePhoto: v.User.ProfilePhoto, Nickname: v.User.Nickname, IsBlock: v.User.IsBlock, + Birth: v.User.Birth, + PhoneNumber: v.User.PhoneNumber, + Email: v.User.Email, + Gender: int(v.User.Gender), CreateTime: v.User.CreateTime, }, BeginDisableTime: v.BeginDisableTime, diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 639092581..26dea695b 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -732,6 +732,10 @@ func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUser Nickname: v.User.Nickname, UserId: v.User.UserID, IsBlock: true, + Birth: v.User.Birth.Format("2006-01-02"), + PhoneNumber: v.User.PhoneNumber, + Email: v.User.Email, + Gender: v.User.Gender, }, BeginDisableTime: (v.BeginDisableTime).String(), EndDisableTime: (v.EndDisableTime).String(), @@ -764,6 +768,10 @@ func (s *userServer) GetBlockUserById(_ context.Context, req *pbUser.GetBlockUse Nickname: user.User.Nickname, UserId: user.User.UserID, IsBlock: true, + Birth: user.User.Birth.Format("2006-01-02"), + PhoneNumber: user.User.PhoneNumber, + Email: user.User.Email, + Gender: user.User.Gender, }, BeginDisableTime: (user.BeginDisableTime).String(), EndDisableTime: (user.EndDisableTime).String(), diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index c8a5d603e..9e132ad03 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -227,8 +227,12 @@ func GetBlockUserById(userId string) (BlockUserInfo, error) { return blockUserInfo, err } blockUserInfo.User.UserID = user.UserID - blockUserInfo.User.FaceURL = user.UserID + blockUserInfo.User.FaceURL = user.FaceURL blockUserInfo.User.Nickname = user.Nickname + blockUserInfo.User.Birth = user.Birth + blockUserInfo.User.PhoneNumber = user.PhoneNumber + blockUserInfo.User.Email = user.Email + blockUserInfo.User.Gender = user.Gender blockUserInfo.BeginDisableTime = blockUser.BeginDisableTime blockUserInfo.EndDisableTime = blockUser.EndDisableTime return blockUserInfo, nil @@ -245,9 +249,13 @@ func GetBlockUsers(showNumber, pageNumber int32) ([]BlockUserInfo, error) { if err := db.DB.MysqlDB.DefaultGormDB().Table("users").Where("user_id=?", blockUser.UserId).First(&user).Error; err == nil { blockUserInfos = append(blockUserInfos, BlockUserInfo{ User: db.User{ - UserID: user.UserID, - Nickname: user.Nickname, - FaceURL: user.FaceURL, + UserID: user.UserID, + Nickname: user.Nickname, + FaceURL: user.FaceURL, + Birth: user.Birth, + PhoneNumber: user.PhoneNumber, + Email: user.Email, + Gender: user.Gender, }, BeginDisableTime: blockUser.BeginDisableTime, EndDisableTime: blockUser.EndDisableTime, From 7f252909fc5c805c658a8da2e9dadab1fb03d329 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 20:36:16 +0800 Subject: [PATCH 147/230] fix code --- internal/demo/register/ip_limit.go | 15 ++++++--------- .../db/mysql_model/im_mysql_model/ip_model.go | 2 +- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index aab0c407c..ae842e66e 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -44,17 +44,14 @@ func QueryIPRegister(c *gin.Context) { resp.UserIDList = userIDList ipLimit, err := imdb.QueryIPLimits(req.IP) if err != nil { - if gorm.IsRecordNotFoundError(err) { - resp.Status = 0 - } else { - log.NewError(req.OperationID, "QueryIPLimits failed", req.IP, err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": "QueryIPLimits error!"}) - return - } + log.NewError(req.OperationID, "QueryIPLimits failed", req.IP, err.Error()) } else { - if ipLimit.Ip != "" { - resp.Status = 1 + if ipLimit != nil { + if ipLimit.Ip != "" { + resp.Status = 1 + } } + } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp:", resp) c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) diff --git a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go index b1727eddb..cad838a50 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go @@ -34,7 +34,7 @@ func IsLimitUserLoginIp(userID string, LoginIp string) (bool, error) { func QueryIPLimits(ip string) (*db.IpLimit, error) { var ipLimit db.IpLimit - err := db.DB.MysqlDB.DefaultGormDB().Model(&db.IpLimit{}).Where("ip=?", ip).Find(&ip).Error + err := db.DB.MysqlDB.DefaultGormDB().Model(&db.IpLimit{}).Where("ip=?", ip).First(&ip).Error return &ipLimit, err } From 0683352c4b57f80340778a6873fb573aa0c63282 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 20:38:33 +0800 Subject: [PATCH 148/230] fix code --- internal/demo/register/ip_limit.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index ae842e66e..9535d2f9a 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -8,7 +8,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "github.com/gin-gonic/gin" - "github.com/jinzhu/gorm" + //"github.com/jinzhu/gorm" "net/http" "time" ) From ad1015c8b062412f4e2c6aa962375cb7a26b6710 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 20:41:46 +0800 Subject: [PATCH 149/230] fix code --- pkg/common/db/mysql_model/im_mysql_model/ip_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go index cad838a50..cea844496 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go @@ -34,7 +34,7 @@ func IsLimitUserLoginIp(userID string, LoginIp string) (bool, error) { func QueryIPLimits(ip string) (*db.IpLimit, error) { var ipLimit db.IpLimit - err := db.DB.MysqlDB.DefaultGormDB().Model(&db.IpLimit{}).Where("ip=?", ip).First(&ip).Error + err := db.DB.MysqlDB.DefaultGormDB().Model(&db.IpLimit{}).Where("ip=?", ip).First(&ipLimit).Error return &ipLimit, err } From 4e54cb56e53da569ae38c1bbcbf62997fc28d6d1 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 21:09:21 +0800 Subject: [PATCH 150/230] fix code --- internal/demo/register/set_password.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index b768a90d0..03c78451f 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -126,12 +126,14 @@ func SetPassword(c *gin.Context) { } if openIMRegisterResp.ErrCode == constant.RegisterLimit { c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterLimit, "errMsg": "用户注册被限制"}) + return } else if openIMRegisterResp.ErrCode == constant.InvitationError { c.JSON(http.StatusOK, gin.H{"errCode": constant.InvitationError, "errMsg": "邀请码错误"}) + return } else { c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register failed: " + openIMRegisterResp.ErrMsg}) + return } - return } log.Info(params.OperationID, "begin store mysql", account, params.Password, "info", params.FaceURL, params.Nickname) err = imdb.SetPassword(account, params.Password, params.Ex, userID, params.AreaCode, ip) From 15e2d172a42f984e105172759f0841c48d07e509 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 21:27:05 +0800 Subject: [PATCH 151/230] fix code --- internal/demo/register/ip_limit.go | 11 ++++++++++- internal/demo/register/set_password.go | 5 +++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index 9535d2f9a..3d5be928d 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -162,7 +162,16 @@ func AddUserIPLimitLogin(c *gin.Context) { } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) userIp := db.UserIpLimit{UserID: req.UserID, Ip: req.IP} - err := imdb.InsertUserIpLimitsLogin(&userIp) + err := imdb.UpdateUserInfo(db.User{ + UserID: req.UserID, + LoginLimit: 1, + }) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserID) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "InsertUserIpLimitsLogin error!"}) + return + } + err = imdb.InsertUserIpLimitsLogin(&userIp) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserID) c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "InsertUserIpLimitsLogin error!"}) diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 03c78451f..5b7deae4f 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -81,10 +81,11 @@ func SetPassword(c *gin.Context) { return } } - if config.Config.Demo.NeedInvitationCode { + if config.Config.Demo.NeedInvitationCode && params.InvitationCode != "" { err := imdb.CheckInvitationCode(params.InvitationCode) if err != nil { c.JSON(http.StatusOK, gin.H{"errCode": constant.InvitationError, "errMsg": "邀请码错误"}) + return } } } @@ -142,7 +143,7 @@ func SetPassword(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": err.Error()}) return } - if config.Config.Demo.NeedInvitationCode { + if config.Config.Demo.NeedInvitationCode && params.InvitationCode != "" { //判断一下验证码的使用情况 LockSucc := imdb.TryLockInvitationCode(params.InvitationCode, userID) if LockSucc { From 3be284c1299201639c9729caae4b5571ee506650 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 21:30:47 +0800 Subject: [PATCH 152/230] fix code --- internal/demo/register/ip_limit.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index 3d5be928d..36fcf753e 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -203,5 +203,21 @@ func RemoveUserIPLimitLogin(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "DeleteUserIpLimitsLogin error!"}) return } + ips, err := imdb.GetIpLimitsLoginByUserID(req.UserID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserID) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "GetIpLimitsLoginByUserID error!"}) + return + } + if len(ips) == 0 { + err := imdb.UpdateUserInfoByMap(db.User{ + UserID: req.UserID, + }, map[string]interface{}{"limit_login": 0}) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserID) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "UpdateUserInfo error!"}) + return + } + } c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": ""}) } From da8755fcb7d34587d38f402624a546efe902c64b Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 21:37:38 +0800 Subject: [PATCH 153/230] fix code --- internal/demo/register/ip_limit.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index 36fcf753e..17a53795d 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -212,7 +212,7 @@ func RemoveUserIPLimitLogin(c *gin.Context) { if len(ips) == 0 { err := imdb.UpdateUserInfoByMap(db.User{ UserID: req.UserID, - }, map[string]interface{}{"limit_login": 0}) + }, map[string]interface{}{"login_limit": 0}) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserID) c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "UpdateUserInfo error!"}) From a72e4226849c32273d28555d43be9bfef5881a99 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 15 Aug 2022 21:51:00 +0800 Subject: [PATCH 154/230] fix code --- script/check_all.sh | 20 ++++++++++---------- script/start_all.sh | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/script/check_all.sh b/script/check_all.sh index 522230813..2ec2b8270 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -56,13 +56,13 @@ else fi -check=$(ps aux | grep -w ./${cron_task_name} | grep -v grep | wc -l) -if [ $check -ge 1 ]; then - echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is openImCronTask"${COLOR_SUFFIX} -else - echo -e ${RED_PREFIX}"cron_task_name service does not start normally"${COLOR_SUFFIX} - echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} - exit -1 -fi - -echo -e ${YELLOW_PREFIX}"all services launch success"${COLOR_SUFFIX} +#check=$(ps aux | grep -w ./${cron_task_name} | grep -v grep | wc -l) +#if [ $check -ge 1 ]; then +# echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is openImCronTask"${COLOR_SUFFIX} +#else +# echo -e ${RED_PREFIX}"cron_task_name service does not start normally"${COLOR_SUFFIX} +# echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} +# exit -1 +#fi +# +#echo -e ${YELLOW_PREFIX}"all services launch success"${COLOR_SUFFIX} diff --git a/script/start_all.sh b/script/start_all.sh index 4a5f7d65e..223187973 100644 --- a/script/start_all.sh +++ b/script/start_all.sh @@ -10,7 +10,7 @@ need_to_start_server_shell=( sdk_svr_start.sh msg_gateway_start.sh demo_svr_start.sh - start_cron.sh +# start_cron.sh ) time=`date +"%Y-%m-%d %H:%M:%S"` echo "==========================================================">>../logs/openIM.log 2>&1 & From 5a6f96f84bbc835c5467d2a7aa20c4e47a2c9973 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 16 Aug 2022 11:49:20 +0800 Subject: [PATCH 155/230] update orgnization after update user --- internal/rpc/user/user.go | 44 ++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index f8d019838..7ea4ee37d 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -12,6 +12,7 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbFriend "Open_IM/pkg/proto/friend" + pbOrganization "Open_IM/pkg/proto/organization" sdkws "Open_IM/pkg/proto/sdk_ws" pbUser "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" @@ -431,21 +432,34 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI if req.UserInfo.Nickname != "" { go s.SyncJoinedGroupMemberNickname(req.UserInfo.UserID, req.UserInfo.Nickname, oldNickname, req.OperationID, req.OpUserID) } - //updateUserInfoToCacheReq := &cache.UpdateUserInfoToCacheReq{ - // OperationID: req.OperationID, - // UserInfoList: []*sdkws.UserInfo{req.UserInfo}, - //} - //cacheEtcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName) - //cacheClient := cache.NewCacheClient(cacheEtcdConn) - //resp, err := cacheClient.UpdateUserInfoToCache(context.Background(), updateUserInfoToCacheReq) - //if err != nil { - // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), updateUserInfoToCacheReq.String()) - // return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrServer.ErrCode, ErrMsg: err.Error()}}, nil - //} - //if resp.CommonResp.ErrCode != 0 { - // log.NewError(req.OperationID, utils.GetSelfFuncName(), resp.String()) - // return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrServer.ErrCode, ErrMsg: resp.CommonResp.ErrMsg}}, nil - //} + + clientOrg := pbOrganization.NewOrganizationClient(etcdConn) + out, err := clientOrg.UpdateOrganizationUser(context.Background(), &pbOrganization.UpdateOrganizationUserReq{ + OrganizationUser: &sdkws.OrganizationUser{ + UserID: req.UserInfo.UserID, + Nickname: req.UserInfo.Nickname, + EnglishName: req.UserInfo.Nickname, + FaceURL: req.UserInfo.FaceURL, + Gender: req.UserInfo.Gender, + Mobile: req.UserInfo.PhoneNumber, + Telephone: req.UserInfo.PhoneNumber, + Birth: req.UserInfo.Birth, + Email: req.UserInfo.Email, + Ex: req.UserInfo.Ex, + }, + OperationID: req.OperationID, + OpUserID: req.OpUserID, + }) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "UpdateOrganizationUser failed") + } else { + if out.ErrCode == 0 { + chat.OrganizationNotificationToAll(req.OpUserID, req.OperationID) + } else { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "grpc resp: ", out) + } + } + return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil } func (s *userServer) SetGlobalRecvMessageOpt(ctx context.Context, req *pbUser.SetGlobalRecvMessageOptReq) (*pbUser.SetGlobalRecvMessageOptResp, error) { From 1deb7e9f95a93758efdc25488ee73ee24dec4456 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 16 Aug 2022 11:59:00 +0800 Subject: [PATCH 156/230] config --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 8827b13cf..2cefb31b0 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -132,8 +132,8 @@ credential: #腾讯cos,发送图片、视频、文件时需要,请自行申 stsDurationSeconds: 3600 OssRoleArn: "acs:ram::xxx:role/xxx" aws: - accessKeyID: ******************** #AssumeRole用户关联的accessKeyID - accessKeySecret: **************************************** #AssumeRole用户关联的accessKeySecrect + accessKeyID: 1 #AssumeRole用户关联的accessKeyID + accessKeySecret: 2 #AssumeRole用户关联的accessKeySecrect region: ap-southeast-1 #分区 bucket: ouyang #桶 finalHost: ouyang.s3.ap-southeast-1.amazonaws.com #对外Host From 338d7f0df62d041ac2078f17b847bfdab7ddb860 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 16 Aug 2022 12:16:16 +0800 Subject: [PATCH 157/230] update orgnization after update user --- internal/rpc/organization/organization.go | 25 +---------------------- 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/internal/rpc/organization/organization.go b/internal/rpc/organization/organization.go index a3b0301a6..4092e8f77 100644 --- a/internal/rpc/organization/organization.go +++ b/internal/rpc/organization/organization.go @@ -305,29 +305,6 @@ func (s *organizationServer) CreateOrganizationUser(ctx context.Context, req *rp } func (s *organizationServer) UpdateOrganizationUser(ctx context.Context, req *rpc.UpdateOrganizationUserReq) (*rpc.UpdateOrganizationUserResp, error) { - authReq := &pbAuth.UserRegisterReq{UserInfo: &open_im_sdk.UserInfo{}} - utils.CopyStructFields(authReq.UserInfo, req.OrganizationUser) - authReq.OperationID = req.OperationID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName, req.OperationID) - if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" - log.NewError(req.OperationID, errMsg) - return &rpc.UpdateOrganizationUserResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}, nil - } - client := pbAuth.NewAuthClient(etcdConn) - - reply, err := client.UserRegister(context.Background(), authReq) - if err != nil { - errMsg := "UserRegister failed " + err.Error() - log.NewError(req.OperationID, errMsg) - return &rpc.UpdateOrganizationUserResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}, nil - } - if reply.CommonResp.ErrCode != 0 { - errMsg := "UserRegister failed " + reply.CommonResp.ErrMsg - log.NewError(req.OperationID, errMsg) - return &rpc.UpdateOrganizationUserResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}, nil - } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc args ", req.String()) if !token_verify.IsManagerUserID(req.OpUserID) { errMsg := req.OperationID + " " + req.OpUserID + " is not app manager" @@ -342,7 +319,7 @@ func (s *organizationServer) UpdateOrganizationUser(ctx context.Context, req *rp } log.Debug(req.OperationID, "src ", *req.OrganizationUser, "dst ", organizationUser) - err = imdb.UpdateOrganizationUser(&organizationUser, nil) + err := imdb.UpdateOrganizationUser(&organizationUser, nil) if err != nil { errMsg := req.OperationID + " " + "CreateOrganizationUser failed " + err.Error() log.Error(req.OperationID, errMsg, organizationUser) From 08d6e142c37db22ec3c9f5692114360d6b4fb3f1 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 16 Aug 2022 12:57:20 +0800 Subject: [PATCH 158/230] update orgnization after update user --- internal/rpc/user/user.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 7ea4ee37d..6134b8b38 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -451,7 +451,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI OpUserID: req.OpUserID, }) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "UpdateOrganizationUser failed") + log.NewError(req.OperationID, utils.GetSelfFuncName(), "UpdateOrganizationUser failed", err.Error()) } else { if out.ErrCode == 0 { chat.OrganizationNotificationToAll(req.OpUserID, req.OperationID) From 0e5b17adcc4ccae661c145eb57faf70c0c920441 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 16 Aug 2022 13:01:14 +0800 Subject: [PATCH 159/230] update orgnization after update user --- internal/rpc/user/user.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 6134b8b38..e8536e598 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -433,6 +433,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI go s.SyncJoinedGroupMemberNickname(req.UserInfo.UserID, req.UserInfo.Nickname, oldNickname, req.OperationID, req.OpUserID) } + etcdConn = getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) clientOrg := pbOrganization.NewOrganizationClient(etcdConn) out, err := clientOrg.UpdateOrganizationUser(context.Background(), &pbOrganization.UpdateOrganizationUserReq{ OrganizationUser: &sdkws.OrganizationUser{ From 753cd95a189fe37f74b791674a3474c095ed5f86 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 16 Aug 2022 13:05:47 +0800 Subject: [PATCH 160/230] update orgnization after update user --- internal/rpc/organization/organization.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/organization/organization.go b/internal/rpc/organization/organization.go index 4092e8f77..0ec7789bc 100644 --- a/internal/rpc/organization/organization.go +++ b/internal/rpc/organization/organization.go @@ -306,7 +306,7 @@ func (s *organizationServer) CreateOrganizationUser(ctx context.Context, req *rp func (s *organizationServer) UpdateOrganizationUser(ctx context.Context, req *rpc.UpdateOrganizationUserReq) (*rpc.UpdateOrganizationUserResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc args ", req.String()) - if !token_verify.IsManagerUserID(req.OpUserID) { + if !token_verify.IsManagerUserID(req.OpUserID) || req.OpUserID != req.OrganizationUser.UserID { errMsg := req.OperationID + " " + req.OpUserID + " is not app manager" log.Error(req.OperationID, errMsg) return &rpc.UpdateOrganizationUserResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}, nil From 0a14c8b3e6c72a47eabcef6abca9a0967c0d9d2d Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 16 Aug 2022 13:11:59 +0800 Subject: [PATCH 161/230] update orgnization after update user --- internal/rpc/organization/organization.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/organization/organization.go b/internal/rpc/organization/organization.go index 0ec7789bc..076748d36 100644 --- a/internal/rpc/organization/organization.go +++ b/internal/rpc/organization/organization.go @@ -306,7 +306,7 @@ func (s *organizationServer) CreateOrganizationUser(ctx context.Context, req *rp func (s *organizationServer) UpdateOrganizationUser(ctx context.Context, req *rpc.UpdateOrganizationUserReq) (*rpc.UpdateOrganizationUserResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc args ", req.String()) - if !token_verify.IsManagerUserID(req.OpUserID) || req.OpUserID != req.OrganizationUser.UserID { + if !token_verify.IsManagerUserID(req.OpUserID) && req.OpUserID != req.OrganizationUser.UserID { errMsg := req.OperationID + " " + req.OpUserID + " is not app manager" log.Error(req.OperationID, errMsg) return &rpc.UpdateOrganizationUserResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}, nil From a37d82e2ddc3f68f89b76954b517fe451d8b54b6 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 16 Aug 2022 13:12:21 +0800 Subject: [PATCH 162/230] update orgnization after update user --- internal/rpc/organization/organization.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/organization/organization.go b/internal/rpc/organization/organization.go index 0ec7789bc..076748d36 100644 --- a/internal/rpc/organization/organization.go +++ b/internal/rpc/organization/organization.go @@ -306,7 +306,7 @@ func (s *organizationServer) CreateOrganizationUser(ctx context.Context, req *rp func (s *organizationServer) UpdateOrganizationUser(ctx context.Context, req *rpc.UpdateOrganizationUserReq) (*rpc.UpdateOrganizationUserResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc args ", req.String()) - if !token_verify.IsManagerUserID(req.OpUserID) || req.OpUserID != req.OrganizationUser.UserID { + if !token_verify.IsManagerUserID(req.OpUserID) && req.OpUserID != req.OrganizationUser.UserID { errMsg := req.OperationID + " " + req.OpUserID + " is not app manager" log.Error(req.OperationID, errMsg) return &rpc.UpdateOrganizationUserResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}, nil From 15e0a7aa3858674552d82634689bd7c4681bc595 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 16 Aug 2022 14:15:51 +0800 Subject: [PATCH 163/230] update orgnization after update user --- internal/rpc/user/user.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index e8536e598..86d80a5f5 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -454,9 +454,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "UpdateOrganizationUser failed", err.Error()) } else { - if out.ErrCode == 0 { - chat.OrganizationNotificationToAll(req.OpUserID, req.OperationID) - } else { + if out.ErrCode != 0 { log.NewError(req.OperationID, utils.GetSelfFuncName(), "grpc resp: ", out) } } From 69da4410dcc8806a1b633cd0c801ef861ebf6f71 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 16 Aug 2022 15:07:19 +0800 Subject: [PATCH 164/230] update orgnization after update user --- internal/rpc/group/group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 39e68d38f..430edafae 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1414,7 +1414,7 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroups error", err.Error()) return resp, http.WrapError(constant.ErrDB) } - + resp.GroupNum, err = imdb.GetGroupsCountNum(db.Group{}) resp.Pagination.PageNumber = req.Pagination.PageNumber resp.Pagination.ShowNumber = req.Pagination.ShowNumber for _, v := range groups { From e8fdc454db3d4fa01534fbae414a412258af0395 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 16 Aug 2022 15:08:12 +0800 Subject: [PATCH 165/230] update orgnization after update user --- internal/rpc/group/group.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 430edafae..95d91e993 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1415,6 +1415,10 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* return resp, http.WrapError(constant.ErrDB) } resp.GroupNum, err = imdb.GetGroupsCountNum(db.Group{}) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsCountNum error", err.Error()) + return resp, http.WrapError(constant.ErrDB) + } resp.Pagination.PageNumber = req.Pagination.PageNumber resp.Pagination.ShowNumber = req.Pagination.ShowNumber for _, v := range groups { From 12a4c127530f33293cb974688842774931b6432a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 16 Aug 2022 19:15:54 +0800 Subject: [PATCH 166/230] notification --- internal/push/fcm/push.go | 4 ++-- internal/rpc/msg/send_msg.go | 4 ++-- pkg/common/constant/constant.go | 2 +- pkg/tools/{ => splitter}/tools.go | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) rename pkg/tools/{ => splitter}/tools.go (97%) diff --git a/internal/push/fcm/push.go b/internal/push/fcm/push.go index 7c1f55d00..99338e558 100644 --- a/internal/push/fcm/push.go +++ b/internal/push/fcm/push.go @@ -5,7 +5,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/db" "Open_IM/pkg/common/log" - "Open_IM/pkg/tools" + "Open_IM/pkg/tools/splitter" "context" firebase "firebase.google.com/go" "firebase.google.com/go/messaging" @@ -62,7 +62,7 @@ func (f *Fcm) Push(accounts []string, alert, detailContent, operationID string, } Success := 0 Fail := 0 - result := tools.NewSplitter(SinglePushCountLimit, Tokens).GetSplitResult() + result := splitter.NewSplitter(SinglePushCountLimit, Tokens).GetSplitResult() Msg := new(messaging.MulticastMessage) Msg.Notification = &messaging.Notification{} Msg.Notification.Body = detailContent diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 91d8ca1d3..d65f7b0ed 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -837,9 +837,9 @@ func Notification(n *NotificationMsg) { ex = config.Config.Notification.ConversationSetPrivate.OfflinePush.Ext reliabilityLevel = config.Config.Notification.ConversationSetPrivate.Conversation.ReliabilityLevel unReadCount = config.Config.Notification.ConversationSetPrivate.Conversation.UnreadCount - case constant.DeleteMessageNotification: + case constant.DeleteMessageNotification, constant.SuperGroupUpdateNotification: reliabilityLevel = constant.ReliableNotificationNoMsg - case constant.SuperGroupUpdateNotification, constant.ConversationUnreadNotification: + case constant.ConversationUnreadNotification: reliabilityLevel = constant.UnreliableNotification } switch reliabilityLevel { diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index b81cb07d6..016b83dcb 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -64,7 +64,6 @@ const ( FriendRemarkSetNotification = 1206 //set_friend_remark? BlackAddedNotification = 1207 //add_black BlackDeletedNotification = 1208 //remove_black - MsgDeleteNotification = 1209 ConversationOptChangeNotification = 1300 // change conversation opt @@ -100,6 +99,7 @@ const ( SuperGroupNotificationBegin = 1650 SuperGroupUpdateNotification = 1651 + MsgDeleteNotification = 1652 SuperGroupNotificationEnd = 1699 ConversationPrivateChatNotification = 1701 diff --git a/pkg/tools/tools.go b/pkg/tools/splitter/tools.go similarity index 97% rename from pkg/tools/tools.go rename to pkg/tools/splitter/tools.go index a3baa5f3e..40bd7dee2 100644 --- a/pkg/tools/tools.go +++ b/pkg/tools/splitter/tools.go @@ -1,4 +1,4 @@ -package tools +package splitter type SplitResult struct { Item []string From 487d9a6449ef976f1636ad1959e079929fca0fc0 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 16 Aug 2022 19:54:04 +0800 Subject: [PATCH 167/230] notification --- internal/rpc/group/group.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 95d91e993..a8bb41dc2 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -256,6 +256,9 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), v) continue } + if group.GroupType == constant.SuperGroup { + continue + } if group.Status == constant.GroupStatusDismissed { log.NewError(req.OperationID, "constant.GroupStatusDismissed ", group) continue From 5e78871c008138c0a56a5599c1849686c9dcb121 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 16 Aug 2022 21:15:20 +0800 Subject: [PATCH 168/230] getui --- internal/push/getui/push.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/push/getui/push.go b/internal/push/getui/push.go index 69b4584f9..93a55b084 100644 --- a/internal/push/getui/push.go +++ b/internal/push/getui/push.go @@ -152,10 +152,10 @@ func (g *Getui) Push(userIDList []string, alert, detailContent, operationID stri ChannelID string `json:"/message/android/notification/channel_id"` Sound string `json:"/message/android/notification/sound"` Importance string `json:"/message/android/notification/importance"` - }{ChannelID: "RingRing4", Sound: "/raw/ring001", Importance: "importance"}, + }{ChannelID: "RingRing4", Sound: "/raw/ring001", Importance: "NORMAL"}, XM: struct { ChannelID string `json:"/extra.channel_id"` - }{ChannelID: "Default"}, + }{ChannelID: "high_system"}, } pushResp := PushResp{} err = g.request(PushURL, pushReq, token, &pushResp, operationID) From 2f6eb5969e64ef044a558692eae450dd9c88592e Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 16 Aug 2022 21:21:29 +0800 Subject: [PATCH 169/230] getui --- internal/push/getui/push.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/push/getui/push.go b/internal/push/getui/push.go index 69b4584f9..93a55b084 100644 --- a/internal/push/getui/push.go +++ b/internal/push/getui/push.go @@ -152,10 +152,10 @@ func (g *Getui) Push(userIDList []string, alert, detailContent, operationID stri ChannelID string `json:"/message/android/notification/channel_id"` Sound string `json:"/message/android/notification/sound"` Importance string `json:"/message/android/notification/importance"` - }{ChannelID: "RingRing4", Sound: "/raw/ring001", Importance: "importance"}, + }{ChannelID: "RingRing4", Sound: "/raw/ring001", Importance: "NORMAL"}, XM: struct { ChannelID string `json:"/extra.channel_id"` - }{ChannelID: "Default"}, + }{ChannelID: "high_system"}, } pushResp := PushResp{} err = g.request(PushURL, pushReq, token, &pushResp, operationID) From 64e1361ef5a8f8549a98e04fdfe9099e56d52564 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 16 Aug 2022 23:08:16 +0800 Subject: [PATCH 170/230] fix signal bug --- internal/push/logic/push_to_client.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index fa4f8afb2..c22b26827 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -20,8 +20,9 @@ import ( "Open_IM/pkg/utils" "context" "encoding/json" - "github.com/golang/protobuf/proto" "strings" + + "github.com/golang/protobuf/proto" ) type OpenIMContent struct { @@ -94,8 +95,8 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { var content string if pushMsg.MsgData.OfflinePushInfo != nil { content = pushMsg.MsgData.OfflinePushInfo.Title - - } else { + } + if content == "" { switch pushMsg.MsgData.ContentType { case constant.Text: content = constant.ContentType2PushContent[constant.Text] From 5b06791a6c36a8b68765b0f0e59182ca0d1979c3 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 16 Aug 2022 23:26:13 +0800 Subject: [PATCH 171/230] set max PlatformID = 9 --- pkg/base_info/auth_api_struct.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/base_info/auth_api_struct.go b/pkg/base_info/auth_api_struct.go index 4f26084f5..85aa2301e 100644 --- a/pkg/base_info/auth_api_struct.go +++ b/pkg/base_info/auth_api_struct.go @@ -28,7 +28,7 @@ type UserRegisterResp struct { type UserTokenReq struct { Secret string `json:"secret" binding:"required,max=32"` - Platform int32 `json:"platform" binding:"required,min=1,max=8"` + Platform int32 `json:"platform" binding:"required,min=1,max=9"` UserID string `json:"userID" binding:"required,min=1,max=64"` LoginIp string `json:"loginIp"` OperationID string `json:"operationID" binding:"required"` @@ -40,7 +40,7 @@ type UserTokenResp struct { } type ForceLogoutReq struct { - Platform int32 `json:"platform" binding:"required,min=1,max=8"` + Platform int32 `json:"platform" binding:"required,min=1,max=9"` FromUserID string `json:"fromUserID" binding:"required,min=1,max=64"` OperationID string `json:"operationID" binding:"required"` } From bda96a2175c5d39f0d37a1730e8285ec4506b4ae Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 16 Aug 2022 23:45:32 +0800 Subject: [PATCH 172/230] fix --- internal/rpc/auth/auth.go | 44 +++++++++------------------------------ 1 file changed, 10 insertions(+), 34 deletions(-) diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index 91692aaf4..225d40881 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -15,7 +15,6 @@ import ( "net" "strconv" "strings" - "time" "Open_IM/pkg/common/config" @@ -30,13 +29,13 @@ func (rpc *rpcAuth) UserRegister(_ context.Context, req *pbAuth.UserRegisterReq) user.Birth = utils.UnixSecondToTime(int64(req.UserInfo.Birth)) } log.Debug(req.OperationID, "copy ", user, req.UserInfo) - Limited, LimitError := imdb.IsLimitRegisterIp(req.UserInfo.CreateIp) - if LimitError != nil { - return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: LimitError.Error()}}, nil - } - if Limited { - return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.RegisterLimit, ErrMsg: "Register Limit"}}, nil - } + // Limited, LimitError := imdb.IsLimitRegisterIp(req.UserInfo.CreateIp) + // if LimitError != nil { + // return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: LimitError.Error()}}, nil + // } + // if Limited { + // return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.RegisterLimit, ErrMsg: "Register Limit"}}, nil + // } err := imdb.UserRegister(user) if err != nil { errMsg := req.OperationID + " imdb.UserRegister failed " + err.Error() + user.UserID @@ -50,43 +49,20 @@ func (rpc *rpcAuth) UserRegister(_ context.Context, req *pbAuth.UserRegisterReq) func (rpc *rpcAuth) UserToken(_ context.Context, req *pbAuth.UserTokenReq) (*pbAuth.UserTokenResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc args ", req.String()) - user, err := imdb.GetUserByUserID(req.FromUserID) + _, err := imdb.GetUserByUserID(req.FromUserID) if err != nil { errMsg := req.OperationID + " imdb.GetUserByUserID failed " + err.Error() + req.FromUserID log.NewError(req.OperationID, errMsg) return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}}, nil } - var Limited bool - var LimitError error - if user.LoginLimit == 0 { - Limited, LimitError = imdb.IsLimitLoginIp(req.LoginIp) - } else if user.LoginLimit == 1 { - Limited, LimitError = imdb.IsLimitUserLoginIp(user.UserID, req.LoginIp) - } else if user.LoginLimit == 2 { - Limited, LimitError = imdb.UserIsBlock(user.UserID) - } - if LimitError != nil { - return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: LimitError.Error()}}, nil - } - if Limited { - return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.LoginLimit, ErrMsg: "用户被限制"}}, nil - } + tokens, expTime, err := token_verify.CreateToken(req.FromUserID, int(req.Platform)) if err != nil { errMsg := req.OperationID + " token_verify.CreateToken failed " + err.Error() + req.FromUserID + utils.Int32ToString(req.Platform) log.NewError(req.OperationID, errMsg) return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}}, nil } - //增加用户登录信息 - user.LoginTimes = user.LoginTimes + 1 - user.LastLoginIp = req.LoginIp - user.LastLoginTime = time.Now() - err = imdb.UpdateUserInfo(*user) - if err != nil { - errMsg := req.OperationID + " imdb.UpdateUserInfo failed " + err.Error() + req.FromUserID - log.NewError(req.OperationID, errMsg) - return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}}, nil - } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc return ", pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{}, Token: tokens, ExpiredTime: expTime}) return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{}, Token: tokens, ExpiredTime: expTime}, nil } From 723e304ed8cc7104af1a4cee3aea158b1c81e42d Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 16 Aug 2022 23:52:53 +0800 Subject: [PATCH 173/230] set mysql max conn --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 400f6e6aa..58cc41814 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -17,8 +17,8 @@ mysql: dbMysqlDatabaseName: openIM_v2 #默认即可 dbTableName: eMsg #默认即可 dbMsgTableNum: 1 - dbMaxOpenConns: 20 - dbMaxIdleConns: 10 + dbMaxOpenConns: 200 + dbMaxIdleConns: 100 dbMaxLifeTime: 120 mongo: From a38291fc177e484fe3debe537635ec6727b45d99 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 17 Aug 2022 10:18:01 +0800 Subject: [PATCH 174/230] notification --- internal/rpc/msg/send_msg.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index d65f7b0ed..9042a5033 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -837,9 +837,9 @@ func Notification(n *NotificationMsg) { ex = config.Config.Notification.ConversationSetPrivate.OfflinePush.Ext reliabilityLevel = config.Config.Notification.ConversationSetPrivate.Conversation.ReliabilityLevel unReadCount = config.Config.Notification.ConversationSetPrivate.Conversation.UnreadCount - case constant.DeleteMessageNotification, constant.SuperGroupUpdateNotification: + case constant.DeleteMessageNotification: reliabilityLevel = constant.ReliableNotificationNoMsg - case constant.ConversationUnreadNotification: + case constant.ConversationUnreadNotification, constant.SuperGroupUpdateNotification: reliabilityLevel = constant.UnreliableNotification } switch reliabilityLevel { From b5166acada9da1082f23fac7d20f97c6ea41153c Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 17 Aug 2022 10:42:17 +0800 Subject: [PATCH 175/230] update orgnization after update user --- pkg/proto/sdk_ws/ws.pb.go | 10742 +++++++++++++++--------------------- pkg/proto/sdk_ws/ws.proto | 15 + 2 files changed, 4351 insertions(+), 6406 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index d8c7272e5..5e99b623f 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,4540 +1,4042 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.1 -// protoc v3.15.5 // source: sdk_ws/ws.proto -package server_api_params +package server_api_params // import "Open_IM/pkg/proto/sdk_ws" -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" - reflect "reflect" - sync "sync" -) +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" -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) -) +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type GroupInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"` - FaceURL string `protobuf:"bytes,5,opt,name=faceURL,proto3" json:"faceURL,omitempty"` - OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"` - CreateTime uint32 `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"` - MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount,proto3" json:"memberCount,omitempty"` - Ex string `protobuf:"bytes,9,opt,name=ex,proto3" json:"ex,omitempty"` - Status int32 `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"` - CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID,proto3" json:"creatorUserID,omitempty"` - GroupType int32 `protobuf:"varint,12,opt,name=groupType,proto3" json:"groupType,omitempty"` - NeedVerification int32 `protobuf:"varint,13,opt,name=needVerification,proto3" json:"needVerification,omitempty"` - LookMemberInfo int32 `protobuf:"varint,14,opt,name=lookMemberInfo,proto3" json:"lookMemberInfo,omitempty"` - ApplyMemberFriend int32 `protobuf:"varint,15,opt,name=applyMemberFriend,proto3" json:"applyMemberFriend,omitempty"` - NotificationUpdateTime uint32 `protobuf:"varint,16,opt,name=notificationUpdateTime,proto3" json:"notificationUpdateTime,omitempty"` - NotificationUserID string `protobuf:"bytes,17,opt,name=notificationUserID,proto3" json:"notificationUserID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` + FaceURL string `protobuf:"bytes,5,opt,name=faceURL" json:"faceURL,omitempty"` + OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID" json:"ownerUserID,omitempty"` + CreateTime uint32 `protobuf:"varint,7,opt,name=createTime" json:"createTime,omitempty"` + MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount" json:"memberCount,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` + Status int32 `protobuf:"varint,10,opt,name=status" json:"status,omitempty"` + CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID" json:"creatorUserID,omitempty"` + GroupType int32 `protobuf:"varint,12,opt,name=groupType" json:"groupType,omitempty"` + NeedVerification int32 `protobuf:"varint,13,opt,name=needVerification" json:"needVerification,omitempty"` + LookMemberInfo int32 `protobuf:"varint,14,opt,name=lookMemberInfo" json:"lookMemberInfo,omitempty"` + ApplyMemberFriend int32 `protobuf:"varint,15,opt,name=applyMemberFriend" json:"applyMemberFriend,omitempty"` + NotificationUpdateTime uint32 `protobuf:"varint,16,opt,name=notificationUpdateTime" json:"notificationUpdateTime,omitempty"` + NotificationUserID string `protobuf:"bytes,17,opt,name=notificationUserID" json:"notificationUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupInfo) Reset() { - *x = GroupInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupInfo) ProtoMessage() {} - -func (x *GroupInfo) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 GroupInfo.ProtoReflect.Descriptor instead. +func (m *GroupInfo) Reset() { *m = GroupInfo{} } +func (m *GroupInfo) String() string { return proto.CompactTextString(m) } +func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{0} + return fileDescriptor_ws_9506eea4334b9b75, []int{0} +} +func (m *GroupInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInfo.Unmarshal(m, b) +} +func (m *GroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInfo.Marshal(b, m, deterministic) +} +func (dst *GroupInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInfo.Merge(dst, src) +} +func (m *GroupInfo) XXX_Size() int { + return xxx_messageInfo_GroupInfo.Size(m) +} +func (m *GroupInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInfo.DiscardUnknown(m) } -func (x *GroupInfo) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_GroupInfo proto.InternalMessageInfo + +func (m *GroupInfo) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *GroupInfo) GetGroupName() string { - if x != nil { - return x.GroupName +func (m *GroupInfo) GetGroupName() string { + if m != nil { + return m.GroupName } return "" } -func (x *GroupInfo) GetNotification() string { - if x != nil { - return x.Notification +func (m *GroupInfo) GetNotification() string { + if m != nil { + return m.Notification } return "" } -func (x *GroupInfo) GetIntroduction() string { - if x != nil { - return x.Introduction +func (m *GroupInfo) GetIntroduction() string { + if m != nil { + return m.Introduction } return "" } -func (x *GroupInfo) GetFaceURL() string { - if x != nil { - return x.FaceURL +func (m *GroupInfo) GetFaceURL() string { + if m != nil { + return m.FaceURL } return "" } -func (x *GroupInfo) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID +func (m *GroupInfo) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID } return "" } -func (x *GroupInfo) GetCreateTime() uint32 { - if x != nil { - return x.CreateTime +func (m *GroupInfo) GetCreateTime() uint32 { + if m != nil { + return m.CreateTime } return 0 } -func (x *GroupInfo) GetMemberCount() uint32 { - if x != nil { - return x.MemberCount +func (m *GroupInfo) GetMemberCount() uint32 { + if m != nil { + return m.MemberCount } return 0 } -func (x *GroupInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *GroupInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } -func (x *GroupInfo) GetStatus() int32 { - if x != nil { - return x.Status +func (m *GroupInfo) GetStatus() int32 { + if m != nil { + return m.Status } return 0 } -func (x *GroupInfo) GetCreatorUserID() string { - if x != nil { - return x.CreatorUserID +func (m *GroupInfo) GetCreatorUserID() string { + if m != nil { + return m.CreatorUserID } return "" } -func (x *GroupInfo) GetGroupType() int32 { - if x != nil { - return x.GroupType +func (m *GroupInfo) GetGroupType() int32 { + if m != nil { + return m.GroupType } return 0 } -func (x *GroupInfo) GetNeedVerification() int32 { - if x != nil { - return x.NeedVerification +func (m *GroupInfo) GetNeedVerification() int32 { + if m != nil { + return m.NeedVerification } return 0 } -func (x *GroupInfo) GetLookMemberInfo() int32 { - if x != nil { - return x.LookMemberInfo +func (m *GroupInfo) GetLookMemberInfo() int32 { + if m != nil { + return m.LookMemberInfo } return 0 } -func (x *GroupInfo) GetApplyMemberFriend() int32 { - if x != nil { - return x.ApplyMemberFriend +func (m *GroupInfo) GetApplyMemberFriend() int32 { + if m != nil { + return m.ApplyMemberFriend } return 0 } -func (x *GroupInfo) GetNotificationUpdateTime() uint32 { - if x != nil { - return x.NotificationUpdateTime +func (m *GroupInfo) GetNotificationUpdateTime() uint32 { + if m != nil { + return m.NotificationUpdateTime } return 0 } -func (x *GroupInfo) GetNotificationUserID() string { - if x != nil { - return x.NotificationUserID +func (m *GroupInfo) GetNotificationUserID() string { + if m != nil { + return m.NotificationUserID } return "" } type GroupInfoForSet struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"` - FaceURL string `protobuf:"bytes,5,opt,name=faceURL,proto3" json:"faceURL,omitempty"` - Ex string `protobuf:"bytes,6,opt,name=ex,proto3" json:"ex,omitempty"` - NeedVerification *wrapperspb.Int32Value `protobuf:"bytes,7,opt,name=needVerification,proto3" json:"needVerification,omitempty"` - LookMemberInfo *wrapperspb.Int32Value `protobuf:"bytes,8,opt,name=lookMemberInfo,proto3" json:"lookMemberInfo,omitempty"` - ApplyMemberFriend *wrapperspb.Int32Value `protobuf:"bytes,9,opt,name=applyMemberFriend,proto3" json:"applyMemberFriend,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` + FaceURL string `protobuf:"bytes,5,opt,name=faceURL" json:"faceURL,omitempty"` + Ex string `protobuf:"bytes,6,opt,name=ex" json:"ex,omitempty"` + NeedVerification *wrapperspb.Int32Value `protobuf:"bytes,7,opt,name=needVerification" json:"needVerification,omitempty"` + LookMemberInfo *wrapperspb.Int32Value `protobuf:"bytes,8,opt,name=lookMemberInfo" json:"lookMemberInfo,omitempty"` + ApplyMemberFriend *wrapperspb.Int32Value `protobuf:"bytes,9,opt,name=applyMemberFriend" json:"applyMemberFriend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupInfoForSet) Reset() { - *x = GroupInfoForSet{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupInfoForSet) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupInfoForSet) ProtoMessage() {} - -func (x *GroupInfoForSet) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 GroupInfoForSet.ProtoReflect.Descriptor instead. +func (m *GroupInfoForSet) Reset() { *m = GroupInfoForSet{} } +func (m *GroupInfoForSet) String() string { return proto.CompactTextString(m) } +func (*GroupInfoForSet) ProtoMessage() {} func (*GroupInfoForSet) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{1} + return fileDescriptor_ws_9506eea4334b9b75, []int{1} +} +func (m *GroupInfoForSet) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInfoForSet.Unmarshal(m, b) +} +func (m *GroupInfoForSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInfoForSet.Marshal(b, m, deterministic) +} +func (dst *GroupInfoForSet) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInfoForSet.Merge(dst, src) +} +func (m *GroupInfoForSet) XXX_Size() int { + return xxx_messageInfo_GroupInfoForSet.Size(m) +} +func (m *GroupInfoForSet) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInfoForSet.DiscardUnknown(m) } -func (x *GroupInfoForSet) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_GroupInfoForSet proto.InternalMessageInfo + +func (m *GroupInfoForSet) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *GroupInfoForSet) GetGroupName() string { - if x != nil { - return x.GroupName +func (m *GroupInfoForSet) GetGroupName() string { + if m != nil { + return m.GroupName } return "" } -func (x *GroupInfoForSet) GetNotification() string { - if x != nil { - return x.Notification +func (m *GroupInfoForSet) GetNotification() string { + if m != nil { + return m.Notification } return "" } -func (x *GroupInfoForSet) GetIntroduction() string { - if x != nil { - return x.Introduction +func (m *GroupInfoForSet) GetIntroduction() string { + if m != nil { + return m.Introduction } return "" } -func (x *GroupInfoForSet) GetFaceURL() string { - if x != nil { - return x.FaceURL +func (m *GroupInfoForSet) GetFaceURL() string { + if m != nil { + return m.FaceURL } return "" } -func (x *GroupInfoForSet) GetEx() string { - if x != nil { - return x.Ex +func (m *GroupInfoForSet) GetEx() string { + if m != nil { + return m.Ex } return "" } -func (x *GroupInfoForSet) GetNeedVerification() *wrapperspb.Int32Value { - if x != nil { - return x.NeedVerification +func (m *GroupInfoForSet) GetNeedVerification() *wrapperspb.Int32Value { + if m != nil { + return m.NeedVerification } return nil } -func (x *GroupInfoForSet) GetLookMemberInfo() *wrapperspb.Int32Value { - if x != nil { - return x.LookMemberInfo +func (m *GroupInfoForSet) GetLookMemberInfo() *wrapperspb.Int32Value { + if m != nil { + return m.LookMemberInfo } return nil } -func (x *GroupInfoForSet) GetApplyMemberFriend() *wrapperspb.Int32Value { - if x != nil { - return x.ApplyMemberFriend +func (m *GroupInfoForSet) GetApplyMemberFriend() *wrapperspb.Int32Value { + if m != nil { + return m.ApplyMemberFriend } return nil } type GroupMemberFullInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"` - RoleLevel int32 `protobuf:"varint,3,opt,name=roleLevel,proto3" json:"roleLevel,omitempty"` - JoinTime int32 `protobuf:"varint,4,opt,name=joinTime,proto3" json:"joinTime,omitempty"` - Nickname string `protobuf:"bytes,5,opt,name=nickname,proto3" json:"nickname,omitempty"` - FaceURL string `protobuf:"bytes,6,opt,name=faceURL,proto3" json:"faceURL,omitempty"` - AppMangerLevel int32 `protobuf:"varint,7,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"` //if >0 - JoinSource int32 `protobuf:"varint,8,opt,name=joinSource,proto3" json:"joinSource,omitempty"` - OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"` - Ex string `protobuf:"bytes,10,opt,name=ex,proto3" json:"ex,omitempty"` - MuteEndTime uint32 `protobuf:"varint,11,opt,name=muteEndTime,proto3" json:"muteEndTime,omitempty"` - InviterUserID string `protobuf:"bytes,12,opt,name=inviterUserID,proto3" json:"inviterUserID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + RoleLevel int32 `protobuf:"varint,3,opt,name=roleLevel" json:"roleLevel,omitempty"` + JoinTime int32 `protobuf:"varint,4,opt,name=joinTime" json:"joinTime,omitempty"` + Nickname string `protobuf:"bytes,5,opt,name=nickname" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,6,opt,name=faceURL" json:"faceURL,omitempty"` + AppMangerLevel int32 `protobuf:"varint,7,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` + JoinSource int32 `protobuf:"varint,8,opt,name=joinSource" json:"joinSource,omitempty"` + OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,10,opt,name=ex" json:"ex,omitempty"` + MuteEndTime uint32 `protobuf:"varint,11,opt,name=muteEndTime" json:"muteEndTime,omitempty"` + InviterUserID string `protobuf:"bytes,12,opt,name=inviterUserID" json:"inviterUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupMemberFullInfo) Reset() { - *x = GroupMemberFullInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupMemberFullInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupMemberFullInfo) ProtoMessage() {} - -func (x *GroupMemberFullInfo) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 GroupMemberFullInfo.ProtoReflect.Descriptor instead. +func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } +func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } +func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{2} + return fileDescriptor_ws_9506eea4334b9b75, []int{2} +} +func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) +} +func (m *GroupMemberFullInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberFullInfo.Marshal(b, m, deterministic) +} +func (dst *GroupMemberFullInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberFullInfo.Merge(dst, src) +} +func (m *GroupMemberFullInfo) XXX_Size() int { + return xxx_messageInfo_GroupMemberFullInfo.Size(m) +} +func (m *GroupMemberFullInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberFullInfo.DiscardUnknown(m) } -func (x *GroupMemberFullInfo) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_GroupMemberFullInfo proto.InternalMessageInfo + +func (m *GroupMemberFullInfo) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *GroupMemberFullInfo) GetUserID() string { - if x != nil { - return x.UserID +func (m *GroupMemberFullInfo) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *GroupMemberFullInfo) GetRoleLevel() int32 { - if x != nil { - return x.RoleLevel +func (m *GroupMemberFullInfo) GetRoleLevel() int32 { + if m != nil { + return m.RoleLevel } return 0 } -func (x *GroupMemberFullInfo) GetJoinTime() int32 { - if x != nil { - return x.JoinTime +func (m *GroupMemberFullInfo) GetJoinTime() int32 { + if m != nil { + return m.JoinTime } return 0 } -func (x *GroupMemberFullInfo) GetNickname() string { - if x != nil { - return x.Nickname +func (m *GroupMemberFullInfo) GetNickname() string { + if m != nil { + return m.Nickname } return "" } -func (x *GroupMemberFullInfo) GetFaceURL() string { - if x != nil { - return x.FaceURL +func (m *GroupMemberFullInfo) GetFaceURL() string { + if m != nil { + return m.FaceURL } return "" } -func (x *GroupMemberFullInfo) GetAppMangerLevel() int32 { - if x != nil { - return x.AppMangerLevel +func (m *GroupMemberFullInfo) GetAppMangerLevel() int32 { + if m != nil { + return m.AppMangerLevel } return 0 } -func (x *GroupMemberFullInfo) GetJoinSource() int32 { - if x != nil { - return x.JoinSource +func (m *GroupMemberFullInfo) GetJoinSource() int32 { + if m != nil { + return m.JoinSource } return 0 } -func (x *GroupMemberFullInfo) GetOperatorUserID() string { - if x != nil { - return x.OperatorUserID +func (m *GroupMemberFullInfo) GetOperatorUserID() string { + if m != nil { + return m.OperatorUserID } return "" } -func (x *GroupMemberFullInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *GroupMemberFullInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } -func (x *GroupMemberFullInfo) GetMuteEndTime() uint32 { - if x != nil { - return x.MuteEndTime +func (m *GroupMemberFullInfo) GetMuteEndTime() uint32 { + if m != nil { + return m.MuteEndTime } return 0 } -func (x *GroupMemberFullInfo) GetInviterUserID() string { - if x != nil { - return x.InviterUserID +func (m *GroupMemberFullInfo) GetInviterUserID() string { + if m != nil { + return m.InviterUserID } return "" } type PublicUserInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` - FaceURL string `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` - Ex string `protobuf:"bytes,5,opt,name=ex,proto3" json:"ex,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` + Ex string `protobuf:"bytes,5,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *PublicUserInfo) Reset() { - *x = PublicUserInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PublicUserInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PublicUserInfo) ProtoMessage() {} - -func (x *PublicUserInfo) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 PublicUserInfo.ProtoReflect.Descriptor instead. +func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } +func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } +func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{3} + return fileDescriptor_ws_9506eea4334b9b75, []int{3} +} +func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) +} +func (m *PublicUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PublicUserInfo.Marshal(b, m, deterministic) +} +func (dst *PublicUserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_PublicUserInfo.Merge(dst, src) +} +func (m *PublicUserInfo) XXX_Size() int { + return xxx_messageInfo_PublicUserInfo.Size(m) +} +func (m *PublicUserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_PublicUserInfo.DiscardUnknown(m) } -func (x *PublicUserInfo) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_PublicUserInfo proto.InternalMessageInfo + +func (m *PublicUserInfo) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *PublicUserInfo) GetNickname() string { - if x != nil { - return x.Nickname +func (m *PublicUserInfo) GetNickname() string { + if m != nil { + return m.Nickname } return "" } -func (x *PublicUserInfo) GetFaceURL() string { - if x != nil { - return x.FaceURL +func (m *PublicUserInfo) GetFaceURL() string { + if m != nil { + return m.FaceURL } return "" } -func (x *PublicUserInfo) GetGender() int32 { - if x != nil { - return x.Gender +func (m *PublicUserInfo) GetGender() int32 { + if m != nil { + return m.Gender } return 0 } -func (x *PublicUserInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *PublicUserInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } type UserInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` - FaceURL string `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` - PhoneNumber string `protobuf:"bytes,5,opt,name=phoneNumber,proto3" json:"phoneNumber,omitempty"` - Birth uint32 `protobuf:"varint,6,opt,name=birth,proto3" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"` - CreateIp string `protobuf:"bytes,9,opt,name=createIp,proto3" json:"createIp,omitempty"` - CreateTime uint32 `protobuf:"varint,10,opt,name=createTime,proto3" json:"createTime,omitempty"` - LastLoginIp string `protobuf:"bytes,11,opt,name=LastLoginIp,proto3" json:"LastLoginIp,omitempty"` - LastLoginTime uint32 `protobuf:"varint,12,opt,name=LastLoginTime,proto3" json:"LastLoginTime,omitempty"` - LoginTimes int32 `protobuf:"varint,13,opt,name=LoginTimes,proto3" json:"LoginTimes,omitempty"` - LoginLimit int32 `protobuf:"varint,14,opt,name=LoginLimit,proto3" json:"LoginLimit,omitempty"` - AppMangerLevel int32 `protobuf:"varint,15,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"` - GlobalRecvMsgOpt int32 `protobuf:"varint,16,opt,name=globalRecvMsgOpt,proto3" json:"globalRecvMsgOpt,omitempty"` - InvitationCode string `protobuf:"bytes,17,opt,name=invitationCode,proto3" json:"invitationCode,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` + PhoneNumber string `protobuf:"bytes,5,opt,name=phoneNumber" json:"phoneNumber,omitempty"` + Birth uint32 `protobuf:"varint,6,opt,name=birth" json:"birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` + CreateIp string `protobuf:"bytes,9,opt,name=createIp" json:"createIp,omitempty"` + CreateTime uint32 `protobuf:"varint,10,opt,name=createTime" json:"createTime,omitempty"` + LastLoginIp string `protobuf:"bytes,11,opt,name=LastLoginIp" json:"LastLoginIp,omitempty"` + LastLoginTime uint32 `protobuf:"varint,12,opt,name=LastLoginTime" json:"LastLoginTime,omitempty"` + LoginTimes int32 `protobuf:"varint,13,opt,name=LoginTimes" json:"LoginTimes,omitempty"` + LoginLimit int32 `protobuf:"varint,14,opt,name=LoginLimit" json:"LoginLimit,omitempty"` + AppMangerLevel int32 `protobuf:"varint,15,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` + GlobalRecvMsgOpt int32 `protobuf:"varint,16,opt,name=globalRecvMsgOpt" json:"globalRecvMsgOpt,omitempty"` + InvitationCode string `protobuf:"bytes,17,opt,name=invitationCode" json:"invitationCode,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserInfo) Reset() { - *x = UserInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserInfo) ProtoMessage() {} - -func (x *UserInfo) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 UserInfo.ProtoReflect.Descriptor instead. +func (m *UserInfo) Reset() { *m = UserInfo{} } +func (m *UserInfo) String() string { return proto.CompactTextString(m) } +func (*UserInfo) ProtoMessage() {} func (*UserInfo) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{4} + return fileDescriptor_ws_9506eea4334b9b75, []int{4} +} +func (m *UserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInfo.Unmarshal(m, b) +} +func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic) +} +func (dst *UserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInfo.Merge(dst, src) +} +func (m *UserInfo) XXX_Size() int { + return xxx_messageInfo_UserInfo.Size(m) +} +func (m *UserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_UserInfo.DiscardUnknown(m) } -func (x *UserInfo) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_UserInfo proto.InternalMessageInfo + +func (m *UserInfo) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *UserInfo) GetNickname() string { - if x != nil { - return x.Nickname +func (m *UserInfo) GetNickname() string { + if m != nil { + return m.Nickname } return "" } -func (x *UserInfo) GetFaceURL() string { - if x != nil { - return x.FaceURL +func (m *UserInfo) GetFaceURL() string { + if m != nil { + return m.FaceURL } return "" } -func (x *UserInfo) GetGender() int32 { - if x != nil { - return x.Gender +func (m *UserInfo) GetGender() int32 { + if m != nil { + return m.Gender } return 0 } -func (x *UserInfo) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber +func (m *UserInfo) GetPhoneNumber() string { + if m != nil { + return m.PhoneNumber } return "" } -func (x *UserInfo) GetBirth() uint32 { - if x != nil { - return x.Birth +func (m *UserInfo) GetBirth() uint32 { + if m != nil { + return m.Birth } return 0 } -func (x *UserInfo) GetEmail() string { - if x != nil { - return x.Email +func (m *UserInfo) GetEmail() string { + if m != nil { + return m.Email } return "" } -func (x *UserInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *UserInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } -func (x *UserInfo) GetCreateIp() string { - if x != nil { - return x.CreateIp +func (m *UserInfo) GetCreateIp() string { + if m != nil { + return m.CreateIp } return "" } -func (x *UserInfo) GetCreateTime() uint32 { - if x != nil { - return x.CreateTime +func (m *UserInfo) GetCreateTime() uint32 { + if m != nil { + return m.CreateTime } return 0 } -func (x *UserInfo) GetLastLoginIp() string { - if x != nil { - return x.LastLoginIp +func (m *UserInfo) GetLastLoginIp() string { + if m != nil { + return m.LastLoginIp } return "" } -func (x *UserInfo) GetLastLoginTime() uint32 { - if x != nil { - return x.LastLoginTime +func (m *UserInfo) GetLastLoginTime() uint32 { + if m != nil { + return m.LastLoginTime } return 0 } -func (x *UserInfo) GetLoginTimes() int32 { - if x != nil { - return x.LoginTimes +func (m *UserInfo) GetLoginTimes() int32 { + if m != nil { + return m.LoginTimes } return 0 } -func (x *UserInfo) GetLoginLimit() int32 { - if x != nil { - return x.LoginLimit +func (m *UserInfo) GetLoginLimit() int32 { + if m != nil { + return m.LoginLimit } return 0 } -func (x *UserInfo) GetAppMangerLevel() int32 { - if x != nil { - return x.AppMangerLevel +func (m *UserInfo) GetAppMangerLevel() int32 { + if m != nil { + return m.AppMangerLevel } return 0 } -func (x *UserInfo) GetGlobalRecvMsgOpt() int32 { - if x != nil { - return x.GlobalRecvMsgOpt +func (m *UserInfo) GetGlobalRecvMsgOpt() int32 { + if m != nil { + return m.GlobalRecvMsgOpt } return 0 } -func (x *UserInfo) GetInvitationCode() string { - if x != nil { - return x.InvitationCode +func (m *UserInfo) GetInvitationCode() string { + if m != nil { + return m.InvitationCode } return "" } type FriendInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"` - Remark string `protobuf:"bytes,2,opt,name=remark,proto3" json:"remark,omitempty"` - CreateTime uint32 `protobuf:"varint,3,opt,name=createTime,proto3" json:"createTime,omitempty"` - FriendUser *UserInfo `protobuf:"bytes,4,opt,name=friendUser,proto3" json:"friendUser,omitempty"` - AddSource int32 `protobuf:"varint,5,opt,name=addSource,proto3" json:"addSource,omitempty"` - OperatorUserID string `protobuf:"bytes,6,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"` - Ex string `protobuf:"bytes,7,opt,name=ex,proto3" json:"ex,omitempty"` + OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` + Remark string `protobuf:"bytes,2,opt,name=remark" json:"remark,omitempty"` + CreateTime uint32 `protobuf:"varint,3,opt,name=createTime" json:"createTime,omitempty"` + FriendUser *UserInfo `protobuf:"bytes,4,opt,name=friendUser" json:"friendUser,omitempty"` + AddSource int32 `protobuf:"varint,5,opt,name=addSource" json:"addSource,omitempty"` + OperatorUserID string `protobuf:"bytes,6,opt,name=operatorUserID" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,7,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendInfo) Reset() { - *x = FriendInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[5] - 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_sdk_ws_ws_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 FriendInfo.ProtoReflect.Descriptor instead. +func (m *FriendInfo) Reset() { *m = FriendInfo{} } +func (m *FriendInfo) String() string { return proto.CompactTextString(m) } +func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{5} + return fileDescriptor_ws_9506eea4334b9b75, []int{5} +} +func (m *FriendInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendInfo.Unmarshal(m, b) +} +func (m *FriendInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendInfo.Marshal(b, m, deterministic) +} +func (dst *FriendInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendInfo.Merge(dst, src) +} +func (m *FriendInfo) XXX_Size() int { + return xxx_messageInfo_FriendInfo.Size(m) +} +func (m *FriendInfo) XXX_DiscardUnknown() { + xxx_messageInfo_FriendInfo.DiscardUnknown(m) } -func (x *FriendInfo) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID +var xxx_messageInfo_FriendInfo proto.InternalMessageInfo + +func (m *FriendInfo) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID } return "" } -func (x *FriendInfo) GetRemark() string { - if x != nil { - return x.Remark +func (m *FriendInfo) GetRemark() string { + if m != nil { + return m.Remark } return "" } -func (x *FriendInfo) GetCreateTime() uint32 { - if x != nil { - return x.CreateTime +func (m *FriendInfo) GetCreateTime() uint32 { + if m != nil { + return m.CreateTime } return 0 } -func (x *FriendInfo) GetFriendUser() *UserInfo { - if x != nil { - return x.FriendUser +func (m *FriendInfo) GetFriendUser() *UserInfo { + if m != nil { + return m.FriendUser } return nil } -func (x *FriendInfo) GetAddSource() int32 { - if x != nil { - return x.AddSource +func (m *FriendInfo) GetAddSource() int32 { + if m != nil { + return m.AddSource } return 0 } -func (x *FriendInfo) GetOperatorUserID() string { - if x != nil { - return x.OperatorUserID +func (m *FriendInfo) GetOperatorUserID() string { + if m != nil { + return m.OperatorUserID } return "" } -func (x *FriendInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *FriendInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } type BlackInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"` - CreateTime uint32 `protobuf:"varint,2,opt,name=createTime,proto3" json:"createTime,omitempty"` - BlackUserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=blackUserInfo,proto3" json:"blackUserInfo,omitempty"` - AddSource int32 `protobuf:"varint,4,opt,name=addSource,proto3" json:"addSource,omitempty"` - OperatorUserID string `protobuf:"bytes,5,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"` - Ex string `protobuf:"bytes,6,opt,name=ex,proto3" json:"ex,omitempty"` + OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` + CreateTime uint32 `protobuf:"varint,2,opt,name=createTime" json:"createTime,omitempty"` + BlackUserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=blackUserInfo" json:"blackUserInfo,omitempty"` + AddSource int32 `protobuf:"varint,4,opt,name=addSource" json:"addSource,omitempty"` + OperatorUserID string `protobuf:"bytes,5,opt,name=operatorUserID" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,6,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *BlackInfo) Reset() { - *x = BlackInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BlackInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BlackInfo) ProtoMessage() {} - -func (x *BlackInfo) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 BlackInfo.ProtoReflect.Descriptor instead. +func (m *BlackInfo) Reset() { *m = BlackInfo{} } +func (m *BlackInfo) String() string { return proto.CompactTextString(m) } +func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{6} + return fileDescriptor_ws_9506eea4334b9b75, []int{6} +} +func (m *BlackInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackInfo.Unmarshal(m, b) +} +func (m *BlackInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackInfo.Marshal(b, m, deterministic) +} +func (dst *BlackInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackInfo.Merge(dst, src) +} +func (m *BlackInfo) XXX_Size() int { + return xxx_messageInfo_BlackInfo.Size(m) +} +func (m *BlackInfo) XXX_DiscardUnknown() { + xxx_messageInfo_BlackInfo.DiscardUnknown(m) } -func (x *BlackInfo) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID +var xxx_messageInfo_BlackInfo proto.InternalMessageInfo + +func (m *BlackInfo) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID } return "" } -func (x *BlackInfo) GetCreateTime() uint32 { - if x != nil { - return x.CreateTime +func (m *BlackInfo) GetCreateTime() uint32 { + if m != nil { + return m.CreateTime } return 0 } -func (x *BlackInfo) GetBlackUserInfo() *PublicUserInfo { - if x != nil { - return x.BlackUserInfo +func (m *BlackInfo) GetBlackUserInfo() *PublicUserInfo { + if m != nil { + return m.BlackUserInfo } return nil } -func (x *BlackInfo) GetAddSource() int32 { - if x != nil { - return x.AddSource +func (m *BlackInfo) GetAddSource() int32 { + if m != nil { + return m.AddSource } return 0 } -func (x *BlackInfo) GetOperatorUserID() string { - if x != nil { - return x.OperatorUserID +func (m *BlackInfo) GetOperatorUserID() string { + if m != nil { + return m.OperatorUserID } return "" } -func (x *BlackInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *BlackInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } type GroupRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserInfo *PublicUserInfo `protobuf:"bytes,1,opt,name=userInfo,proto3" json:"userInfo,omitempty"` - GroupInfo *GroupInfo `protobuf:"bytes,2,opt,name=groupInfo,proto3" json:"groupInfo,omitempty"` - HandleResult int32 `protobuf:"varint,3,opt,name=handleResult,proto3" json:"handleResult,omitempty"` - ReqMsg string `protobuf:"bytes,4,opt,name=reqMsg,proto3" json:"reqMsg,omitempty"` - HandleMsg string `protobuf:"bytes,5,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` - ReqTime uint32 `protobuf:"varint,6,opt,name=reqTime,proto3" json:"reqTime,omitempty"` - HandleUserID string `protobuf:"bytes,7,opt,name=handleUserID,proto3" json:"handleUserID,omitempty"` - HandleTime uint32 `protobuf:"varint,8,opt,name=handleTime,proto3" json:"handleTime,omitempty"` - Ex string `protobuf:"bytes,9,opt,name=ex,proto3" json:"ex,omitempty"` - JoinSource int32 `protobuf:"varint,10,opt,name=joinSource,proto3" json:"joinSource,omitempty"` - InviterUserID string `protobuf:"bytes,11,opt,name=inviterUserID,proto3" json:"inviterUserID,omitempty"` + UserInfo *PublicUserInfo `protobuf:"bytes,1,opt,name=userInfo" json:"userInfo,omitempty"` + GroupInfo *GroupInfo `protobuf:"bytes,2,opt,name=groupInfo" json:"groupInfo,omitempty"` + HandleResult int32 `protobuf:"varint,3,opt,name=handleResult" json:"handleResult,omitempty"` + ReqMsg string `protobuf:"bytes,4,opt,name=reqMsg" json:"reqMsg,omitempty"` + HandleMsg string `protobuf:"bytes,5,opt,name=handleMsg" json:"handleMsg,omitempty"` + ReqTime uint32 `protobuf:"varint,6,opt,name=reqTime" json:"reqTime,omitempty"` + HandleUserID string `protobuf:"bytes,7,opt,name=handleUserID" json:"handleUserID,omitempty"` + HandleTime uint32 `protobuf:"varint,8,opt,name=handleTime" json:"handleTime,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` + JoinSource int32 `protobuf:"varint,10,opt,name=joinSource" json:"joinSource,omitempty"` + InviterUserID string `protobuf:"bytes,11,opt,name=inviterUserID" json:"inviterUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupRequest) Reset() { - *x = GroupRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupRequest) ProtoMessage() {} - -func (x *GroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 GroupRequest.ProtoReflect.Descriptor instead. +func (m *GroupRequest) Reset() { *m = GroupRequest{} } +func (m *GroupRequest) String() string { return proto.CompactTextString(m) } +func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{7} + return fileDescriptor_ws_9506eea4334b9b75, []int{7} +} +func (m *GroupRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupRequest.Unmarshal(m, b) +} +func (m *GroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupRequest.Marshal(b, m, deterministic) +} +func (dst *GroupRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupRequest.Merge(dst, src) +} +func (m *GroupRequest) XXX_Size() int { + return xxx_messageInfo_GroupRequest.Size(m) +} +func (m *GroupRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GroupRequest.DiscardUnknown(m) } -func (x *GroupRequest) GetUserInfo() *PublicUserInfo { - if x != nil { - return x.UserInfo +var xxx_messageInfo_GroupRequest proto.InternalMessageInfo + +func (m *GroupRequest) GetUserInfo() *PublicUserInfo { + if m != nil { + return m.UserInfo } return nil } -func (x *GroupRequest) GetGroupInfo() *GroupInfo { - if x != nil { - return x.GroupInfo +func (m *GroupRequest) GetGroupInfo() *GroupInfo { + if m != nil { + return m.GroupInfo } return nil } -func (x *GroupRequest) GetHandleResult() int32 { - if x != nil { - return x.HandleResult +func (m *GroupRequest) GetHandleResult() int32 { + if m != nil { + return m.HandleResult } return 0 } -func (x *GroupRequest) GetReqMsg() string { - if x != nil { - return x.ReqMsg +func (m *GroupRequest) GetReqMsg() string { + if m != nil { + return m.ReqMsg } return "" } -func (x *GroupRequest) GetHandleMsg() string { - if x != nil { - return x.HandleMsg +func (m *GroupRequest) GetHandleMsg() string { + if m != nil { + return m.HandleMsg } return "" } -func (x *GroupRequest) GetReqTime() uint32 { - if x != nil { - return x.ReqTime +func (m *GroupRequest) GetReqTime() uint32 { + if m != nil { + return m.ReqTime } return 0 } -func (x *GroupRequest) GetHandleUserID() string { - if x != nil { - return x.HandleUserID +func (m *GroupRequest) GetHandleUserID() string { + if m != nil { + return m.HandleUserID } return "" } -func (x *GroupRequest) GetHandleTime() uint32 { - if x != nil { - return x.HandleTime +func (m *GroupRequest) GetHandleTime() uint32 { + if m != nil { + return m.HandleTime } return 0 } -func (x *GroupRequest) GetEx() string { - if x != nil { - return x.Ex +func (m *GroupRequest) GetEx() string { + if m != nil { + return m.Ex } return "" } -func (x *GroupRequest) GetJoinSource() int32 { - if x != nil { - return x.JoinSource +func (m *GroupRequest) GetJoinSource() int32 { + if m != nil { + return m.JoinSource } return 0 } -func (x *GroupRequest) GetInviterUserID() string { - if x != nil { - return x.InviterUserID +func (m *GroupRequest) GetInviterUserID() string { + if m != nil { + return m.InviterUserID } return "" } type FriendRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromUserID string `protobuf:"bytes,1,opt,name=fromUserID,proto3" json:"fromUserID,omitempty"` - FromNickname string `protobuf:"bytes,2,opt,name=fromNickname,proto3" json:"fromNickname,omitempty"` - FromFaceURL string `protobuf:"bytes,3,opt,name=fromFaceURL,proto3" json:"fromFaceURL,omitempty"` - FromGender int32 `protobuf:"varint,4,opt,name=fromGender,proto3" json:"fromGender,omitempty"` - ToUserID string `protobuf:"bytes,5,opt,name=toUserID,proto3" json:"toUserID,omitempty"` - ToNickname string `protobuf:"bytes,6,opt,name=toNickname,proto3" json:"toNickname,omitempty"` - ToFaceURL string `protobuf:"bytes,7,opt,name=toFaceURL,proto3" json:"toFaceURL,omitempty"` - ToGender int32 `protobuf:"varint,8,opt,name=toGender,proto3" json:"toGender,omitempty"` - HandleResult int32 `protobuf:"varint,9,opt,name=handleResult,proto3" json:"handleResult,omitempty"` - ReqMsg string `protobuf:"bytes,10,opt,name=reqMsg,proto3" json:"reqMsg,omitempty"` - CreateTime uint32 `protobuf:"varint,11,opt,name=createTime,proto3" json:"createTime,omitempty"` - HandlerUserID string `protobuf:"bytes,12,opt,name=handlerUserID,proto3" json:"handlerUserID,omitempty"` - HandleMsg string `protobuf:"bytes,13,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` - HandleTime uint32 `protobuf:"varint,14,opt,name=handleTime,proto3" json:"handleTime,omitempty"` - Ex string `protobuf:"bytes,15,opt,name=ex,proto3" json:"ex,omitempty"` + FromUserID string `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"` + FromNickname string `protobuf:"bytes,2,opt,name=fromNickname" json:"fromNickname,omitempty"` + FromFaceURL string `protobuf:"bytes,3,opt,name=fromFaceURL" json:"fromFaceURL,omitempty"` + FromGender int32 `protobuf:"varint,4,opt,name=fromGender" json:"fromGender,omitempty"` + ToUserID string `protobuf:"bytes,5,opt,name=toUserID" json:"toUserID,omitempty"` + ToNickname string `protobuf:"bytes,6,opt,name=toNickname" json:"toNickname,omitempty"` + ToFaceURL string `protobuf:"bytes,7,opt,name=toFaceURL" json:"toFaceURL,omitempty"` + ToGender int32 `protobuf:"varint,8,opt,name=toGender" json:"toGender,omitempty"` + HandleResult int32 `protobuf:"varint,9,opt,name=handleResult" json:"handleResult,omitempty"` + ReqMsg string `protobuf:"bytes,10,opt,name=reqMsg" json:"reqMsg,omitempty"` + CreateTime uint32 `protobuf:"varint,11,opt,name=createTime" json:"createTime,omitempty"` + HandlerUserID string `protobuf:"bytes,12,opt,name=handlerUserID" json:"handlerUserID,omitempty"` + HandleMsg string `protobuf:"bytes,13,opt,name=handleMsg" json:"handleMsg,omitempty"` + HandleTime uint32 `protobuf:"varint,14,opt,name=handleTime" json:"handleTime,omitempty"` + Ex string `protobuf:"bytes,15,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendRequest) Reset() { - *x = FriendRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FriendRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FriendRequest) ProtoMessage() {} - -func (x *FriendRequest) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 FriendRequest.ProtoReflect.Descriptor instead. +func (m *FriendRequest) Reset() { *m = FriendRequest{} } +func (m *FriendRequest) String() string { return proto.CompactTextString(m) } +func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{8} + return fileDescriptor_ws_9506eea4334b9b75, []int{8} +} +func (m *FriendRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendRequest.Unmarshal(m, b) +} +func (m *FriendRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendRequest.Marshal(b, m, deterministic) +} +func (dst *FriendRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendRequest.Merge(dst, src) +} +func (m *FriendRequest) XXX_Size() int { + return xxx_messageInfo_FriendRequest.Size(m) +} +func (m *FriendRequest) XXX_DiscardUnknown() { + xxx_messageInfo_FriendRequest.DiscardUnknown(m) } -func (x *FriendRequest) GetFromUserID() string { - if x != nil { - return x.FromUserID +var xxx_messageInfo_FriendRequest proto.InternalMessageInfo + +func (m *FriendRequest) GetFromUserID() string { + if m != nil { + return m.FromUserID } return "" } -func (x *FriendRequest) GetFromNickname() string { - if x != nil { - return x.FromNickname +func (m *FriendRequest) GetFromNickname() string { + if m != nil { + return m.FromNickname } return "" } -func (x *FriendRequest) GetFromFaceURL() string { - if x != nil { - return x.FromFaceURL +func (m *FriendRequest) GetFromFaceURL() string { + if m != nil { + return m.FromFaceURL } return "" } -func (x *FriendRequest) GetFromGender() int32 { - if x != nil { - return x.FromGender +func (m *FriendRequest) GetFromGender() int32 { + if m != nil { + return m.FromGender } return 0 } -func (x *FriendRequest) GetToUserID() string { - if x != nil { - return x.ToUserID +func (m *FriendRequest) GetToUserID() string { + if m != nil { + return m.ToUserID } return "" } -func (x *FriendRequest) GetToNickname() string { - if x != nil { - return x.ToNickname +func (m *FriendRequest) GetToNickname() string { + if m != nil { + return m.ToNickname } return "" } -func (x *FriendRequest) GetToFaceURL() string { - if x != nil { - return x.ToFaceURL +func (m *FriendRequest) GetToFaceURL() string { + if m != nil { + return m.ToFaceURL } return "" } -func (x *FriendRequest) GetToGender() int32 { - if x != nil { - return x.ToGender +func (m *FriendRequest) GetToGender() int32 { + if m != nil { + return m.ToGender } return 0 } -func (x *FriendRequest) GetHandleResult() int32 { - if x != nil { - return x.HandleResult +func (m *FriendRequest) GetHandleResult() int32 { + if m != nil { + return m.HandleResult } return 0 } -func (x *FriendRequest) GetReqMsg() string { - if x != nil { - return x.ReqMsg +func (m *FriendRequest) GetReqMsg() string { + if m != nil { + return m.ReqMsg } return "" } -func (x *FriendRequest) GetCreateTime() uint32 { - if x != nil { - return x.CreateTime +func (m *FriendRequest) GetCreateTime() uint32 { + if m != nil { + return m.CreateTime } return 0 } -func (x *FriendRequest) GetHandlerUserID() string { - if x != nil { - return x.HandlerUserID +func (m *FriendRequest) GetHandlerUserID() string { + if m != nil { + return m.HandlerUserID } return "" } -func (x *FriendRequest) GetHandleMsg() string { - if x != nil { - return x.HandleMsg +func (m *FriendRequest) GetHandleMsg() string { + if m != nil { + return m.HandleMsg } return "" } -func (x *FriendRequest) GetHandleTime() uint32 { - if x != nil { - return x.HandleTime +func (m *FriendRequest) GetHandleTime() uint32 { + if m != nil { + return m.HandleTime } return 0 } -func (x *FriendRequest) GetEx() string { - if x != nil { - return x.Ex +func (m *FriendRequest) GetEx() string { + if m != nil { + return m.Ex } return "" } type Department struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DepartmentID string `protobuf:"bytes,1,opt,name=departmentID,proto3" json:"departmentID,omitempty"` - FaceURL string `protobuf:"bytes,2,opt,name=faceURL,proto3" json:"faceURL,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - ParentID string `protobuf:"bytes,4,opt,name=parentID,proto3" json:"parentID,omitempty"` - Order int32 `protobuf:"varint,5,opt,name=order,proto3" json:"order,omitempty"` - DepartmentType int32 `protobuf:"varint,6,opt,name=departmentType,proto3" json:"departmentType,omitempty"` - CreateTime uint32 `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"` - SubDepartmentNum uint32 `protobuf:"varint,8,opt,name=subDepartmentNum,proto3" json:"subDepartmentNum,omitempty"` - MemberNum uint32 `protobuf:"varint,9,opt,name=memberNum,proto3" json:"memberNum,omitempty"` - Ex string `protobuf:"bytes,10,opt,name=ex,proto3" json:"ex,omitempty"` + DepartmentID string `protobuf:"bytes,1,opt,name=departmentID" json:"departmentID,omitempty"` + FaceURL string `protobuf:"bytes,2,opt,name=faceURL" json:"faceURL,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` + ParentID string `protobuf:"bytes,4,opt,name=parentID" json:"parentID,omitempty"` + Order int32 `protobuf:"varint,5,opt,name=order" json:"order,omitempty"` + DepartmentType int32 `protobuf:"varint,6,opt,name=departmentType" json:"departmentType,omitempty"` + CreateTime uint32 `protobuf:"varint,7,opt,name=createTime" json:"createTime,omitempty"` + SubDepartmentNum uint32 `protobuf:"varint,8,opt,name=subDepartmentNum" json:"subDepartmentNum,omitempty"` + MemberNum uint32 `protobuf:"varint,9,opt,name=memberNum" json:"memberNum,omitempty"` + Ex string `protobuf:"bytes,10,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *Department) Reset() { - *x = Department{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Department) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Department) ProtoMessage() {} - -func (x *Department) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 Department.ProtoReflect.Descriptor instead. +func (m *Department) Reset() { *m = Department{} } +func (m *Department) String() string { return proto.CompactTextString(m) } +func (*Department) ProtoMessage() {} func (*Department) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{9} + return fileDescriptor_ws_9506eea4334b9b75, []int{9} +} +func (m *Department) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Department.Unmarshal(m, b) +} +func (m *Department) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Department.Marshal(b, m, deterministic) +} +func (dst *Department) XXX_Merge(src proto.Message) { + xxx_messageInfo_Department.Merge(dst, src) +} +func (m *Department) XXX_Size() int { + return xxx_messageInfo_Department.Size(m) +} +func (m *Department) XXX_DiscardUnknown() { + xxx_messageInfo_Department.DiscardUnknown(m) } -func (x *Department) GetDepartmentID() string { - if x != nil { - return x.DepartmentID +var xxx_messageInfo_Department proto.InternalMessageInfo + +func (m *Department) GetDepartmentID() string { + if m != nil { + return m.DepartmentID } return "" } -func (x *Department) GetFaceURL() string { - if x != nil { - return x.FaceURL +func (m *Department) GetFaceURL() string { + if m != nil { + return m.FaceURL } return "" } -func (x *Department) GetName() string { - if x != nil { - return x.Name +func (m *Department) GetName() string { + if m != nil { + return m.Name } return "" } -func (x *Department) GetParentID() string { - if x != nil { - return x.ParentID +func (m *Department) GetParentID() string { + if m != nil { + return m.ParentID } return "" } -func (x *Department) GetOrder() int32 { - if x != nil { - return x.Order +func (m *Department) GetOrder() int32 { + if m != nil { + return m.Order } return 0 } -func (x *Department) GetDepartmentType() int32 { - if x != nil { - return x.DepartmentType +func (m *Department) GetDepartmentType() int32 { + if m != nil { + return m.DepartmentType } return 0 } -func (x *Department) GetCreateTime() uint32 { - if x != nil { - return x.CreateTime +func (m *Department) GetCreateTime() uint32 { + if m != nil { + return m.CreateTime } return 0 } -func (x *Department) GetSubDepartmentNum() uint32 { - if x != nil { - return x.SubDepartmentNum +func (m *Department) GetSubDepartmentNum() uint32 { + if m != nil { + return m.SubDepartmentNum } return 0 } -func (x *Department) GetMemberNum() uint32 { - if x != nil { - return x.MemberNum +func (m *Department) GetMemberNum() uint32 { + if m != nil { + return m.MemberNum } return 0 } -func (x *Department) GetEx() string { - if x != nil { - return x.Ex +func (m *Department) GetEx() string { + if m != nil { + return m.Ex } return "" } type OrganizationUser struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` - EnglishName string `protobuf:"bytes,3,opt,name=englishName,proto3" json:"englishName,omitempty"` - FaceURL string `protobuf:"bytes,4,opt,name=faceURL,proto3" json:"faceURL,omitempty"` - Gender int32 `protobuf:"varint,5,opt,name=gender,proto3" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,6,opt,name=mobile,proto3" json:"mobile,omitempty"` - Telephone string `protobuf:"bytes,7,opt,name=telephone,proto3" json:"telephone,omitempty"` - Birth uint32 `protobuf:"varint,8,opt,name=birth,proto3" json:"birth,omitempty"` - Email string `protobuf:"bytes,9,opt,name=email,proto3" json:"email,omitempty"` - CreateTime uint32 `protobuf:"varint,10,opt,name=createTime,proto3" json:"createTime,omitempty"` - Ex string `protobuf:"bytes,11,opt,name=ex,proto3" json:"ex,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` + EnglishName string `protobuf:"bytes,3,opt,name=englishName" json:"englishName,omitempty"` + FaceURL string `protobuf:"bytes,4,opt,name=faceURL" json:"faceURL,omitempty"` + Gender int32 `protobuf:"varint,5,opt,name=gender" json:"gender,omitempty"` + Mobile string `protobuf:"bytes,6,opt,name=mobile" json:"mobile,omitempty"` + Telephone string `protobuf:"bytes,7,opt,name=telephone" json:"telephone,omitempty"` + Birth uint32 `protobuf:"varint,8,opt,name=birth" json:"birth,omitempty"` + Email string `protobuf:"bytes,9,opt,name=email" json:"email,omitempty"` + CreateTime uint32 `protobuf:"varint,10,opt,name=createTime" json:"createTime,omitempty"` + Ex string `protobuf:"bytes,11,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *OrganizationUser) Reset() { - *x = OrganizationUser{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OrganizationUser) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrganizationUser) ProtoMessage() {} - -func (x *OrganizationUser) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 OrganizationUser.ProtoReflect.Descriptor instead. +func (m *OrganizationUser) Reset() { *m = OrganizationUser{} } +func (m *OrganizationUser) String() string { return proto.CompactTextString(m) } +func (*OrganizationUser) ProtoMessage() {} func (*OrganizationUser) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{10} + return fileDescriptor_ws_9506eea4334b9b75, []int{10} +} +func (m *OrganizationUser) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OrganizationUser.Unmarshal(m, b) +} +func (m *OrganizationUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OrganizationUser.Marshal(b, m, deterministic) +} +func (dst *OrganizationUser) XXX_Merge(src proto.Message) { + xxx_messageInfo_OrganizationUser.Merge(dst, src) +} +func (m *OrganizationUser) XXX_Size() int { + return xxx_messageInfo_OrganizationUser.Size(m) +} +func (m *OrganizationUser) XXX_DiscardUnknown() { + xxx_messageInfo_OrganizationUser.DiscardUnknown(m) } -func (x *OrganizationUser) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_OrganizationUser proto.InternalMessageInfo + +func (m *OrganizationUser) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *OrganizationUser) GetNickname() string { - if x != nil { - return x.Nickname +func (m *OrganizationUser) GetNickname() string { + if m != nil { + return m.Nickname } return "" } -func (x *OrganizationUser) GetEnglishName() string { - if x != nil { - return x.EnglishName +func (m *OrganizationUser) GetEnglishName() string { + if m != nil { + return m.EnglishName } return "" } -func (x *OrganizationUser) GetFaceURL() string { - if x != nil { - return x.FaceURL +func (m *OrganizationUser) GetFaceURL() string { + if m != nil { + return m.FaceURL } return "" } -func (x *OrganizationUser) GetGender() int32 { - if x != nil { - return x.Gender +func (m *OrganizationUser) GetGender() int32 { + if m != nil { + return m.Gender } return 0 } -func (x *OrganizationUser) GetMobile() string { - if x != nil { - return x.Mobile +func (m *OrganizationUser) GetMobile() string { + if m != nil { + return m.Mobile } return "" } -func (x *OrganizationUser) GetTelephone() string { - if x != nil { - return x.Telephone +func (m *OrganizationUser) GetTelephone() string { + if m != nil { + return m.Telephone } return "" } -func (x *OrganizationUser) GetBirth() uint32 { - if x != nil { - return x.Birth +func (m *OrganizationUser) GetBirth() uint32 { + if m != nil { + return m.Birth } return 0 } -func (x *OrganizationUser) GetEmail() string { - if x != nil { - return x.Email +func (m *OrganizationUser) GetEmail() string { + if m != nil { + return m.Email } return "" } -func (x *OrganizationUser) GetCreateTime() uint32 { - if x != nil { - return x.CreateTime +func (m *OrganizationUser) GetCreateTime() uint32 { + if m != nil { + return m.CreateTime } return 0 } -func (x *OrganizationUser) GetEx() string { - if x != nil { - return x.Ex +func (m *OrganizationUser) GetEx() string { + if m != nil { + return m.Ex } return "" } type DepartmentMember struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` - DepartmentID string `protobuf:"bytes,2,opt,name=departmentID,proto3" json:"departmentID,omitempty"` - Order int32 `protobuf:"varint,3,opt,name=order,proto3" json:"order,omitempty"` - Position string `protobuf:"bytes,4,opt,name=position,proto3" json:"position,omitempty"` - Leader int32 `protobuf:"varint,5,opt,name=leader,proto3" json:"leader,omitempty"` - Status int32 `protobuf:"varint,6,opt,name=status,proto3" json:"status,omitempty"` - Ex string `protobuf:"bytes,7,opt,name=ex,proto3" json:"ex,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + DepartmentID string `protobuf:"bytes,2,opt,name=departmentID" json:"departmentID,omitempty"` + Order int32 `protobuf:"varint,3,opt,name=order" json:"order,omitempty"` + Position string `protobuf:"bytes,4,opt,name=position" json:"position,omitempty"` + Leader int32 `protobuf:"varint,5,opt,name=leader" json:"leader,omitempty"` + Status int32 `protobuf:"varint,6,opt,name=status" json:"status,omitempty"` + Ex string `protobuf:"bytes,7,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *DepartmentMember) Reset() { - *x = DepartmentMember{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DepartmentMember) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DepartmentMember) ProtoMessage() {} - -func (x *DepartmentMember) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 DepartmentMember.ProtoReflect.Descriptor instead. +func (m *DepartmentMember) Reset() { *m = DepartmentMember{} } +func (m *DepartmentMember) String() string { return proto.CompactTextString(m) } +func (*DepartmentMember) ProtoMessage() {} func (*DepartmentMember) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{11} + return fileDescriptor_ws_9506eea4334b9b75, []int{11} +} +func (m *DepartmentMember) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DepartmentMember.Unmarshal(m, b) +} +func (m *DepartmentMember) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DepartmentMember.Marshal(b, m, deterministic) +} +func (dst *DepartmentMember) XXX_Merge(src proto.Message) { + xxx_messageInfo_DepartmentMember.Merge(dst, src) +} +func (m *DepartmentMember) XXX_Size() int { + return xxx_messageInfo_DepartmentMember.Size(m) +} +func (m *DepartmentMember) XXX_DiscardUnknown() { + xxx_messageInfo_DepartmentMember.DiscardUnknown(m) } -func (x *DepartmentMember) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_DepartmentMember proto.InternalMessageInfo + +func (m *DepartmentMember) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *DepartmentMember) GetDepartmentID() string { - if x != nil { - return x.DepartmentID +func (m *DepartmentMember) GetDepartmentID() string { + if m != nil { + return m.DepartmentID } return "" } -func (x *DepartmentMember) GetOrder() int32 { - if x != nil { - return x.Order +func (m *DepartmentMember) GetOrder() int32 { + if m != nil { + return m.Order } return 0 } -func (x *DepartmentMember) GetPosition() string { - if x != nil { - return x.Position +func (m *DepartmentMember) GetPosition() string { + if m != nil { + return m.Position } return "" } -func (x *DepartmentMember) GetLeader() int32 { - if x != nil { - return x.Leader +func (m *DepartmentMember) GetLeader() int32 { + if m != nil { + return m.Leader } return 0 } -func (x *DepartmentMember) GetStatus() int32 { - if x != nil { - return x.Status +func (m *DepartmentMember) GetStatus() int32 { + if m != nil { + return m.Status } return 0 } -func (x *DepartmentMember) GetEx() string { - if x != nil { - return x.Ex +func (m *DepartmentMember) GetEx() string { + if m != nil { + return m.Ex } return "" } type UserDepartmentMember struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OrganizationUser *OrganizationUser `protobuf:"bytes,1,opt,name=organizationUser,proto3" json:"organizationUser,omitempty"` - DepartmentMember *DepartmentMember `protobuf:"bytes,2,opt,name=departmentMember,proto3" json:"departmentMember,omitempty"` + OrganizationUser *OrganizationUser `protobuf:"bytes,1,opt,name=organizationUser" json:"organizationUser,omitempty"` + DepartmentMember *DepartmentMember `protobuf:"bytes,2,opt,name=departmentMember" json:"departmentMember,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserDepartmentMember) Reset() { - *x = UserDepartmentMember{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserDepartmentMember) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserDepartmentMember) ProtoMessage() {} - -func (x *UserDepartmentMember) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 UserDepartmentMember.ProtoReflect.Descriptor instead. +func (m *UserDepartmentMember) Reset() { *m = UserDepartmentMember{} } +func (m *UserDepartmentMember) String() string { return proto.CompactTextString(m) } +func (*UserDepartmentMember) ProtoMessage() {} func (*UserDepartmentMember) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{12} + return fileDescriptor_ws_9506eea4334b9b75, []int{12} +} +func (m *UserDepartmentMember) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserDepartmentMember.Unmarshal(m, b) +} +func (m *UserDepartmentMember) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserDepartmentMember.Marshal(b, m, deterministic) +} +func (dst *UserDepartmentMember) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserDepartmentMember.Merge(dst, src) +} +func (m *UserDepartmentMember) XXX_Size() int { + return xxx_messageInfo_UserDepartmentMember.Size(m) +} +func (m *UserDepartmentMember) XXX_DiscardUnknown() { + xxx_messageInfo_UserDepartmentMember.DiscardUnknown(m) } -func (x *UserDepartmentMember) GetOrganizationUser() *OrganizationUser { - if x != nil { - return x.OrganizationUser +var xxx_messageInfo_UserDepartmentMember proto.InternalMessageInfo + +func (m *UserDepartmentMember) GetOrganizationUser() *OrganizationUser { + if m != nil { + return m.OrganizationUser } return nil } -func (x *UserDepartmentMember) GetDepartmentMember() *DepartmentMember { - if x != nil { - return x.DepartmentMember +func (m *UserDepartmentMember) GetDepartmentMember() *DepartmentMember { + if m != nil { + return m.DepartmentMember } return nil } type UserInDepartment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OrganizationUser *OrganizationUser `protobuf:"bytes,1,opt,name=organizationUser,proto3" json:"organizationUser,omitempty"` - DepartmentMemberList []*DepartmentMember `protobuf:"bytes,2,rep,name=departmentMemberList,proto3" json:"departmentMemberList,omitempty"` + OrganizationUser *OrganizationUser `protobuf:"bytes,1,opt,name=organizationUser" json:"organizationUser,omitempty"` + DepartmentMemberList []*DepartmentMember `protobuf:"bytes,2,rep,name=departmentMemberList" json:"departmentMemberList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserInDepartment) Reset() { - *x = UserInDepartment{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserInDepartment) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserInDepartment) ProtoMessage() {} - -func (x *UserInDepartment) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 UserInDepartment.ProtoReflect.Descriptor instead. +func (m *UserInDepartment) Reset() { *m = UserInDepartment{} } +func (m *UserInDepartment) String() string { return proto.CompactTextString(m) } +func (*UserInDepartment) ProtoMessage() {} func (*UserInDepartment) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{13} + return fileDescriptor_ws_9506eea4334b9b75, []int{13} +} +func (m *UserInDepartment) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInDepartment.Unmarshal(m, b) +} +func (m *UserInDepartment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInDepartment.Marshal(b, m, deterministic) +} +func (dst *UserInDepartment) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInDepartment.Merge(dst, src) +} +func (m *UserInDepartment) XXX_Size() int { + return xxx_messageInfo_UserInDepartment.Size(m) +} +func (m *UserInDepartment) XXX_DiscardUnknown() { + xxx_messageInfo_UserInDepartment.DiscardUnknown(m) } -func (x *UserInDepartment) GetOrganizationUser() *OrganizationUser { - if x != nil { - return x.OrganizationUser +var xxx_messageInfo_UserInDepartment proto.InternalMessageInfo + +func (m *UserInDepartment) GetOrganizationUser() *OrganizationUser { + if m != nil { + return m.OrganizationUser } return nil } -func (x *UserInDepartment) GetDepartmentMemberList() []*DepartmentMember { - if x != nil { - return x.DepartmentMemberList +func (m *UserInDepartment) GetDepartmentMemberList() []*DepartmentMember { + if m != nil { + return m.DepartmentMemberList } return nil } -///////////////////////////////////base end///////////////////////////////////// +// /////////////////////////////////base end///////////////////////////////////// type PullMessageBySeqListReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` - SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList,proto3" json:"seqList,omitempty"` - GroupSeqList map[string]*SeqList `protobuf:"bytes,4,rep,name=groupSeqList,proto3" json:"groupSeqList,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` + GroupSeqList map[string]*SeqList `protobuf:"bytes,4,rep,name=groupSeqList" json:"groupSeqList,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *PullMessageBySeqListReq) Reset() { - *x = PullMessageBySeqListReq{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PullMessageBySeqListReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PullMessageBySeqListReq) ProtoMessage() {} - -func (x *PullMessageBySeqListReq) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 PullMessageBySeqListReq.ProtoReflect.Descriptor instead. +func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq{} } +func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } +func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{14} + return fileDescriptor_ws_9506eea4334b9b75, []int{14} +} +func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) +} +func (m *PullMessageBySeqListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageBySeqListReq.Marshal(b, m, deterministic) +} +func (dst *PullMessageBySeqListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageBySeqListReq.Merge(dst, src) +} +func (m *PullMessageBySeqListReq) XXX_Size() int { + return xxx_messageInfo_PullMessageBySeqListReq.Size(m) +} +func (m *PullMessageBySeqListReq) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageBySeqListReq.DiscardUnknown(m) } -func (x *PullMessageBySeqListReq) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_PullMessageBySeqListReq proto.InternalMessageInfo + +func (m *PullMessageBySeqListReq) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *PullMessageBySeqListReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *PullMessageBySeqListReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *PullMessageBySeqListReq) GetSeqList() []uint32 { - if x != nil { - return x.SeqList +func (m *PullMessageBySeqListReq) GetSeqList() []uint32 { + if m != nil { + return m.SeqList } return nil } -func (x *PullMessageBySeqListReq) GetGroupSeqList() map[string]*SeqList { - if x != nil { - return x.GroupSeqList +func (m *PullMessageBySeqListReq) GetGroupSeqList() map[string]*SeqList { + if m != nil { + return m.GroupSeqList } return nil } type SeqList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SeqList []uint32 `protobuf:"varint,1,rep,packed,name=seqList,proto3" json:"seqList,omitempty"` + SeqList []uint32 `protobuf:"varint,1,rep,packed,name=seqList" json:"seqList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *SeqList) Reset() { - *x = SeqList{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SeqList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SeqList) ProtoMessage() {} - -func (x *SeqList) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 SeqList.ProtoReflect.Descriptor instead. +func (m *SeqList) Reset() { *m = SeqList{} } +func (m *SeqList) String() string { return proto.CompactTextString(m) } +func (*SeqList) ProtoMessage() {} func (*SeqList) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{15} + return fileDescriptor_ws_9506eea4334b9b75, []int{15} +} +func (m *SeqList) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SeqList.Unmarshal(m, b) +} +func (m *SeqList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SeqList.Marshal(b, m, deterministic) +} +func (dst *SeqList) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeqList.Merge(dst, src) +} +func (m *SeqList) XXX_Size() int { + return xxx_messageInfo_SeqList.Size(m) +} +func (m *SeqList) XXX_DiscardUnknown() { + xxx_messageInfo_SeqList.DiscardUnknown(m) } -func (x *SeqList) GetSeqList() []uint32 { - if x != nil { - return x.SeqList +var xxx_messageInfo_SeqList proto.InternalMessageInfo + +func (m *SeqList) GetSeqList() []uint32 { + if m != nil { + return m.SeqList } return nil } type MsgDataList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MsgDataList []*MsgData `protobuf:"bytes,1,rep,name=msgDataList,proto3" json:"msgDataList,omitempty"` + MsgDataList []*MsgData `protobuf:"bytes,1,rep,name=msgDataList" json:"msgDataList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MsgDataList) Reset() { - *x = MsgDataList{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MsgDataList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MsgDataList) ProtoMessage() {} - -func (x *MsgDataList) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 MsgDataList.ProtoReflect.Descriptor instead. +func (m *MsgDataList) Reset() { *m = MsgDataList{} } +func (m *MsgDataList) String() string { return proto.CompactTextString(m) } +func (*MsgDataList) ProtoMessage() {} func (*MsgDataList) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{16} + return fileDescriptor_ws_9506eea4334b9b75, []int{16} +} +func (m *MsgDataList) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MsgDataList.Unmarshal(m, b) +} +func (m *MsgDataList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MsgDataList.Marshal(b, m, deterministic) +} +func (dst *MsgDataList) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgDataList.Merge(dst, src) +} +func (m *MsgDataList) XXX_Size() int { + return xxx_messageInfo_MsgDataList.Size(m) +} +func (m *MsgDataList) XXX_DiscardUnknown() { + xxx_messageInfo_MsgDataList.DiscardUnknown(m) } -func (x *MsgDataList) GetMsgDataList() []*MsgData { - if x != nil { - return x.MsgDataList +var xxx_messageInfo_MsgDataList proto.InternalMessageInfo + +func (m *MsgDataList) GetMsgDataList() []*MsgData { + if m != nil { + return m.MsgDataList } return nil } type PullMessageBySeqListResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=errCode,proto3" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg,omitempty"` - List []*MsgData `protobuf:"bytes,3,rep,name=list,proto3" json:"list,omitempty"` - GroupMsgDataList map[string]*MsgDataList `protobuf:"bytes,4,rep,name=groupMsgDataList,proto3" json:"groupMsgDataList,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + List []*MsgData `protobuf:"bytes,3,rep,name=list" json:"list,omitempty"` + GroupMsgDataList map[string]*MsgDataList `protobuf:"bytes,4,rep,name=groupMsgDataList" json:"groupMsgDataList,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *PullMessageBySeqListResp) Reset() { - *x = PullMessageBySeqListResp{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PullMessageBySeqListResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PullMessageBySeqListResp) ProtoMessage() {} - -func (x *PullMessageBySeqListResp) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 PullMessageBySeqListResp.ProtoReflect.Descriptor instead. +func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListResp{} } +func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } +func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{17} + return fileDescriptor_ws_9506eea4334b9b75, []int{17} +} +func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) +} +func (m *PullMessageBySeqListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageBySeqListResp.Marshal(b, m, deterministic) +} +func (dst *PullMessageBySeqListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageBySeqListResp.Merge(dst, src) +} +func (m *PullMessageBySeqListResp) XXX_Size() int { + return xxx_messageInfo_PullMessageBySeqListResp.Size(m) +} +func (m *PullMessageBySeqListResp) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageBySeqListResp.DiscardUnknown(m) } -func (x *PullMessageBySeqListResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_PullMessageBySeqListResp proto.InternalMessageInfo + +func (m *PullMessageBySeqListResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *PullMessageBySeqListResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *PullMessageBySeqListResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *PullMessageBySeqListResp) GetList() []*MsgData { - if x != nil { - return x.List +func (m *PullMessageBySeqListResp) GetList() []*MsgData { + if m != nil { + return m.List } return nil } -func (x *PullMessageBySeqListResp) GetGroupMsgDataList() map[string]*MsgDataList { - if x != nil { - return x.GroupMsgDataList +func (m *PullMessageBySeqListResp) GetGroupMsgDataList() map[string]*MsgDataList { + if m != nil { + return m.GroupMsgDataList } return nil } type GetMaxAndMinSeqReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupIDList []string `protobuf:"bytes,1,rep,name=groupIDList,proto3" json:"groupIDList,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` + GroupIDList []string `protobuf:"bytes,1,rep,name=groupIDList" json:"groupIDList,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetMaxAndMinSeqReq) Reset() { - *x = GetMaxAndMinSeqReq{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetMaxAndMinSeqReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetMaxAndMinSeqReq) ProtoMessage() {} - -func (x *GetMaxAndMinSeqReq) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 GetMaxAndMinSeqReq.ProtoReflect.Descriptor instead. +func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} } +func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } +func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{18} + return fileDescriptor_ws_9506eea4334b9b75, []int{18} +} +func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) +} +func (m *GetMaxAndMinSeqReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMaxAndMinSeqReq.Marshal(b, m, deterministic) +} +func (dst *GetMaxAndMinSeqReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMaxAndMinSeqReq.Merge(dst, src) +} +func (m *GetMaxAndMinSeqReq) XXX_Size() int { + return xxx_messageInfo_GetMaxAndMinSeqReq.Size(m) +} +func (m *GetMaxAndMinSeqReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetMaxAndMinSeqReq.DiscardUnknown(m) } -func (x *GetMaxAndMinSeqReq) GetGroupIDList() []string { - if x != nil { - return x.GroupIDList +var xxx_messageInfo_GetMaxAndMinSeqReq proto.InternalMessageInfo + +func (m *GetMaxAndMinSeqReq) GetGroupIDList() []string { + if m != nil { + return m.GroupIDList } return nil } -func (x *GetMaxAndMinSeqReq) GetUserID() string { - if x != nil { - return x.UserID +func (m *GetMaxAndMinSeqReq) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *GetMaxAndMinSeqReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetMaxAndMinSeqReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type MaxAndMinSeq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MaxSeq uint32 `protobuf:"varint,1,opt,name=maxSeq,proto3" json:"maxSeq,omitempty"` - MinSeq uint32 `protobuf:"varint,2,opt,name=minSeq,proto3" json:"minSeq,omitempty"` + MaxSeq uint32 `protobuf:"varint,1,opt,name=maxSeq" json:"maxSeq,omitempty"` + MinSeq uint32 `protobuf:"varint,2,opt,name=minSeq" json:"minSeq,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MaxAndMinSeq) Reset() { - *x = MaxAndMinSeq{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MaxAndMinSeq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MaxAndMinSeq) ProtoMessage() {} - -func (x *MaxAndMinSeq) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 MaxAndMinSeq.ProtoReflect.Descriptor instead. +func (m *MaxAndMinSeq) Reset() { *m = MaxAndMinSeq{} } +func (m *MaxAndMinSeq) String() string { return proto.CompactTextString(m) } +func (*MaxAndMinSeq) ProtoMessage() {} func (*MaxAndMinSeq) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{19} + return fileDescriptor_ws_9506eea4334b9b75, []int{19} +} +func (m *MaxAndMinSeq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MaxAndMinSeq.Unmarshal(m, b) +} +func (m *MaxAndMinSeq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MaxAndMinSeq.Marshal(b, m, deterministic) +} +func (dst *MaxAndMinSeq) XXX_Merge(src proto.Message) { + xxx_messageInfo_MaxAndMinSeq.Merge(dst, src) +} +func (m *MaxAndMinSeq) XXX_Size() int { + return xxx_messageInfo_MaxAndMinSeq.Size(m) +} +func (m *MaxAndMinSeq) XXX_DiscardUnknown() { + xxx_messageInfo_MaxAndMinSeq.DiscardUnknown(m) } -func (x *MaxAndMinSeq) GetMaxSeq() uint32 { - if x != nil { - return x.MaxSeq +var xxx_messageInfo_MaxAndMinSeq proto.InternalMessageInfo + +func (m *MaxAndMinSeq) GetMaxSeq() uint32 { + if m != nil { + return m.MaxSeq } return 0 } -func (x *MaxAndMinSeq) GetMinSeq() uint32 { - if x != nil { - return x.MinSeq +func (m *MaxAndMinSeq) GetMinSeq() uint32 { + if m != nil { + return m.MinSeq } return 0 } type GetMaxAndMinSeqResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MaxSeq uint32 `protobuf:"varint,1,opt,name=maxSeq,proto3" json:"maxSeq,omitempty"` - MinSeq uint32 `protobuf:"varint,2,opt,name=minSeq,proto3" json:"minSeq,omitempty"` - ErrCode int32 `protobuf:"varint,3,opt,name=errCode,proto3" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,4,opt,name=errMsg,proto3" json:"errMsg,omitempty"` - GroupMaxAndMinSeq map[string]*MaxAndMinSeq `protobuf:"bytes,5,rep,name=groupMaxAndMinSeq,proto3" json:"groupMaxAndMinSeq,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MaxSeq uint32 `protobuf:"varint,1,opt,name=maxSeq" json:"maxSeq,omitempty"` + MinSeq uint32 `protobuf:"varint,2,opt,name=minSeq" json:"minSeq,omitempty"` + ErrCode int32 `protobuf:"varint,3,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,4,opt,name=errMsg" json:"errMsg,omitempty"` + GroupMaxAndMinSeq map[string]*MaxAndMinSeq `protobuf:"bytes,5,rep,name=groupMaxAndMinSeq" json:"groupMaxAndMinSeq,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetMaxAndMinSeqResp) Reset() { - *x = GetMaxAndMinSeqResp{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetMaxAndMinSeqResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetMaxAndMinSeqResp) ProtoMessage() {} - -func (x *GetMaxAndMinSeqResp) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_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 GetMaxAndMinSeqResp.ProtoReflect.Descriptor instead. +func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } +func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } +func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{20} + return fileDescriptor_ws_9506eea4334b9b75, []int{20} +} +func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) +} +func (m *GetMaxAndMinSeqResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMaxAndMinSeqResp.Marshal(b, m, deterministic) +} +func (dst *GetMaxAndMinSeqResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMaxAndMinSeqResp.Merge(dst, src) +} +func (m *GetMaxAndMinSeqResp) XXX_Size() int { + return xxx_messageInfo_GetMaxAndMinSeqResp.Size(m) +} +func (m *GetMaxAndMinSeqResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetMaxAndMinSeqResp.DiscardUnknown(m) } -func (x *GetMaxAndMinSeqResp) GetMaxSeq() uint32 { - if x != nil { - return x.MaxSeq +var xxx_messageInfo_GetMaxAndMinSeqResp proto.InternalMessageInfo + +func (m *GetMaxAndMinSeqResp) GetMaxSeq() uint32 { + if m != nil { + return m.MaxSeq } return 0 } -func (x *GetMaxAndMinSeqResp) GetMinSeq() uint32 { - if x != nil { - return x.MinSeq +func (m *GetMaxAndMinSeqResp) GetMinSeq() uint32 { + if m != nil { + return m.MinSeq } return 0 } -func (x *GetMaxAndMinSeqResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +func (m *GetMaxAndMinSeqResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *GetMaxAndMinSeqResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *GetMaxAndMinSeqResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *GetMaxAndMinSeqResp) GetGroupMaxAndMinSeq() map[string]*MaxAndMinSeq { - if x != nil { - return x.GroupMaxAndMinSeq +func (m *GetMaxAndMinSeqResp) GetGroupMaxAndMinSeq() map[string]*MaxAndMinSeq { + if m != nil { + return m.GroupMaxAndMinSeq } return nil } type UserSendMsgResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ServerMsgID string `protobuf:"bytes,1,opt,name=serverMsgID,proto3" json:"serverMsgID,omitempty"` - ClientMsgID string `protobuf:"bytes,2,opt,name=clientMsgID,proto3" json:"clientMsgID,omitempty"` - SendTime int64 `protobuf:"varint,3,opt,name=sendTime,proto3" json:"sendTime,omitempty"` + ServerMsgID string `protobuf:"bytes,1,opt,name=serverMsgID" json:"serverMsgID,omitempty"` + ClientMsgID string `protobuf:"bytes,2,opt,name=clientMsgID" json:"clientMsgID,omitempty"` + SendTime int64 `protobuf:"varint,3,opt,name=sendTime" json:"sendTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserSendMsgResp) Reset() { - *x = UserSendMsgResp{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserSendMsgResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserSendMsgResp) ProtoMessage() {} - -func (x *UserSendMsgResp) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UserSendMsgResp.ProtoReflect.Descriptor instead. +func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } +func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } +func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{21} + return fileDescriptor_ws_9506eea4334b9b75, []int{21} +} +func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) +} +func (m *UserSendMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserSendMsgResp.Marshal(b, m, deterministic) +} +func (dst *UserSendMsgResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserSendMsgResp.Merge(dst, src) +} +func (m *UserSendMsgResp) XXX_Size() int { + return xxx_messageInfo_UserSendMsgResp.Size(m) +} +func (m *UserSendMsgResp) XXX_DiscardUnknown() { + xxx_messageInfo_UserSendMsgResp.DiscardUnknown(m) } -func (x *UserSendMsgResp) GetServerMsgID() string { - if x != nil { - return x.ServerMsgID +var xxx_messageInfo_UserSendMsgResp proto.InternalMessageInfo + +func (m *UserSendMsgResp) GetServerMsgID() string { + if m != nil { + return m.ServerMsgID } return "" } -func (x *UserSendMsgResp) GetClientMsgID() string { - if x != nil { - return x.ClientMsgID +func (m *UserSendMsgResp) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID } return "" } -func (x *UserSendMsgResp) GetSendTime() int64 { - if x != nil { - return x.SendTime +func (m *UserSendMsgResp) GetSendTime() int64 { + if m != nil { + return m.SendTime } return 0 } type MsgData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SendID string `protobuf:"bytes,1,opt,name=sendID,proto3" json:"sendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=recvID,proto3" json:"recvID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=groupID,proto3" json:"groupID,omitempty"` - ClientMsgID string `protobuf:"bytes,4,opt,name=clientMsgID,proto3" json:"clientMsgID,omitempty"` - ServerMsgID string `protobuf:"bytes,5,opt,name=serverMsgID,proto3" json:"serverMsgID,omitempty"` - SenderPlatformID int32 `protobuf:"varint,6,opt,name=senderPlatformID,proto3" json:"senderPlatformID,omitempty"` - SenderNickname string `protobuf:"bytes,7,opt,name=senderNickname,proto3" json:"senderNickname,omitempty"` - SenderFaceURL string `protobuf:"bytes,8,opt,name=senderFaceURL,proto3" json:"senderFaceURL,omitempty"` - SessionType int32 `protobuf:"varint,9,opt,name=sessionType,proto3" json:"sessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,10,opt,name=msgFrom,proto3" json:"msgFrom,omitempty"` - ContentType int32 `protobuf:"varint,11,opt,name=contentType,proto3" json:"contentType,omitempty"` - Content []byte `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"` - Seq uint32 `protobuf:"varint,14,opt,name=seq,proto3" json:"seq,omitempty"` - SendTime int64 `protobuf:"varint,15,opt,name=sendTime,proto3" json:"sendTime,omitempty"` - CreateTime int64 `protobuf:"varint,16,opt,name=createTime,proto3" json:"createTime,omitempty"` - Status int32 `protobuf:"varint,17,opt,name=status,proto3" json:"status,omitempty"` - Options map[string]bool `protobuf:"bytes,18,rep,name=options,proto3" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,19,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` - AtUserIDList []string `protobuf:"bytes,20,rep,name=atUserIDList,proto3" json:"atUserIDList,omitempty"` - MsgDataList []byte `protobuf:"bytes,21,opt,name=msgDataList,proto3" json:"msgDataList,omitempty"` - AttachedInfo string `protobuf:"bytes,22,opt,name=attachedInfo,proto3" json:"attachedInfo,omitempty"` - Ex string `protobuf:"bytes,23,opt,name=ex,proto3" json:"ex,omitempty"` + SendID string `protobuf:"bytes,1,opt,name=sendID" json:"sendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=recvID" json:"recvID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + ClientMsgID string `protobuf:"bytes,4,opt,name=clientMsgID" json:"clientMsgID,omitempty"` + ServerMsgID string `protobuf:"bytes,5,opt,name=serverMsgID" json:"serverMsgID,omitempty"` + SenderPlatformID int32 `protobuf:"varint,6,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"` + SenderNickname string `protobuf:"bytes,7,opt,name=senderNickname" json:"senderNickname,omitempty"` + SenderFaceURL string `protobuf:"bytes,8,opt,name=senderFaceURL" json:"senderFaceURL,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=sessionType" json:"sessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,10,opt,name=msgFrom" json:"msgFrom,omitempty"` + ContentType int32 `protobuf:"varint,11,opt,name=contentType" json:"contentType,omitempty"` + Content []byte `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"` + Seq uint32 `protobuf:"varint,14,opt,name=seq" json:"seq,omitempty"` + SendTime int64 `protobuf:"varint,15,opt,name=sendTime" json:"sendTime,omitempty"` + CreateTime int64 `protobuf:"varint,16,opt,name=createTime" json:"createTime,omitempty"` + Status int32 `protobuf:"varint,17,opt,name=status" json:"status,omitempty"` + Options map[string]bool `protobuf:"bytes,18,rep,name=options" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,19,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + AtUserIDList []string `protobuf:"bytes,20,rep,name=atUserIDList" json:"atUserIDList,omitempty"` + MsgDataList []byte `protobuf:"bytes,21,opt,name=msgDataList,proto3" json:"msgDataList,omitempty"` + AttachedInfo string `protobuf:"bytes,22,opt,name=attachedInfo" json:"attachedInfo,omitempty"` + Ex string `protobuf:"bytes,23,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MsgData) Reset() { - *x = MsgData{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MsgData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MsgData) ProtoMessage() {} - -func (x *MsgData) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MsgData.ProtoReflect.Descriptor instead. +func (m *MsgData) Reset() { *m = MsgData{} } +func (m *MsgData) String() string { return proto.CompactTextString(m) } +func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{22} + return fileDescriptor_ws_9506eea4334b9b75, []int{22} +} +func (m *MsgData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MsgData.Unmarshal(m, b) +} +func (m *MsgData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MsgData.Marshal(b, m, deterministic) +} +func (dst *MsgData) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgData.Merge(dst, src) +} +func (m *MsgData) XXX_Size() int { + return xxx_messageInfo_MsgData.Size(m) +} +func (m *MsgData) XXX_DiscardUnknown() { + xxx_messageInfo_MsgData.DiscardUnknown(m) } -func (x *MsgData) GetSendID() string { - if x != nil { - return x.SendID +var xxx_messageInfo_MsgData proto.InternalMessageInfo + +func (m *MsgData) GetSendID() string { + if m != nil { + return m.SendID } return "" } -func (x *MsgData) GetRecvID() string { - if x != nil { - return x.RecvID +func (m *MsgData) GetRecvID() string { + if m != nil { + return m.RecvID } return "" } -func (x *MsgData) GetGroupID() string { - if x != nil { - return x.GroupID +func (m *MsgData) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *MsgData) GetClientMsgID() string { - if x != nil { - return x.ClientMsgID +func (m *MsgData) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID } return "" } -func (x *MsgData) GetServerMsgID() string { - if x != nil { - return x.ServerMsgID +func (m *MsgData) GetServerMsgID() string { + if m != nil { + return m.ServerMsgID } return "" } -func (x *MsgData) GetSenderPlatformID() int32 { - if x != nil { - return x.SenderPlatformID +func (m *MsgData) GetSenderPlatformID() int32 { + if m != nil { + return m.SenderPlatformID } return 0 } -func (x *MsgData) GetSenderNickname() string { - if x != nil { - return x.SenderNickname +func (m *MsgData) GetSenderNickname() string { + if m != nil { + return m.SenderNickname } return "" } -func (x *MsgData) GetSenderFaceURL() string { - if x != nil { - return x.SenderFaceURL +func (m *MsgData) GetSenderFaceURL() string { + if m != nil { + return m.SenderFaceURL } return "" } -func (x *MsgData) GetSessionType() int32 { - if x != nil { - return x.SessionType +func (m *MsgData) GetSessionType() int32 { + if m != nil { + return m.SessionType } return 0 } -func (x *MsgData) GetMsgFrom() int32 { - if x != nil { - return x.MsgFrom +func (m *MsgData) GetMsgFrom() int32 { + if m != nil { + return m.MsgFrom } return 0 } -func (x *MsgData) GetContentType() int32 { - if x != nil { - return x.ContentType +func (m *MsgData) GetContentType() int32 { + if m != nil { + return m.ContentType } return 0 } -func (x *MsgData) GetContent() []byte { - if x != nil { - return x.Content +func (m *MsgData) GetContent() []byte { + if m != nil { + return m.Content } return nil } -func (x *MsgData) GetSeq() uint32 { - if x != nil { - return x.Seq +func (m *MsgData) GetSeq() uint32 { + if m != nil { + return m.Seq } return 0 } -func (x *MsgData) GetSendTime() int64 { - if x != nil { - return x.SendTime +func (m *MsgData) GetSendTime() int64 { + if m != nil { + return m.SendTime } return 0 } -func (x *MsgData) GetCreateTime() int64 { - if x != nil { - return x.CreateTime +func (m *MsgData) GetCreateTime() int64 { + if m != nil { + return m.CreateTime } return 0 } -func (x *MsgData) GetStatus() int32 { - if x != nil { - return x.Status +func (m *MsgData) GetStatus() int32 { + if m != nil { + return m.Status } return 0 } -func (x *MsgData) GetOptions() map[string]bool { - if x != nil { - return x.Options +func (m *MsgData) GetOptions() map[string]bool { + if m != nil { + return m.Options } return nil } -func (x *MsgData) GetOfflinePushInfo() *OfflinePushInfo { - if x != nil { - return x.OfflinePushInfo +func (m *MsgData) GetOfflinePushInfo() *OfflinePushInfo { + if m != nil { + return m.OfflinePushInfo } return nil } -func (x *MsgData) GetAtUserIDList() []string { - if x != nil { - return x.AtUserIDList +func (m *MsgData) GetAtUserIDList() []string { + if m != nil { + return m.AtUserIDList } return nil } -func (x *MsgData) GetMsgDataList() []byte { - if x != nil { - return x.MsgDataList +func (m *MsgData) GetMsgDataList() []byte { + if m != nil { + return m.MsgDataList } return nil } -func (x *MsgData) GetAttachedInfo() string { - if x != nil { - return x.AttachedInfo +func (m *MsgData) GetAttachedInfo() string { + if m != nil { + return m.AttachedInfo } return "" } -func (x *MsgData) GetEx() string { - if x != nil { - return x.Ex +func (m *MsgData) GetEx() string { + if m != nil { + return m.Ex } return "" } type OfflinePushInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` - Desc string `protobuf:"bytes,2,opt,name=desc,proto3" json:"desc,omitempty"` - Ex string `protobuf:"bytes,3,opt,name=ex,proto3" json:"ex,omitempty"` - IOSPushSound string `protobuf:"bytes,4,opt,name=iOSPushSound,proto3" json:"iOSPushSound,omitempty"` - IOSBadgeCount bool `protobuf:"varint,5,opt,name=iOSBadgeCount,proto3" json:"iOSBadgeCount,omitempty"` + Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"` + Desc string `protobuf:"bytes,2,opt,name=desc" json:"desc,omitempty"` + Ex string `protobuf:"bytes,3,opt,name=ex" json:"ex,omitempty"` + IOSPushSound string `protobuf:"bytes,4,opt,name=iOSPushSound" json:"iOSPushSound,omitempty"` + IOSBadgeCount bool `protobuf:"varint,5,opt,name=iOSBadgeCount" json:"iOSBadgeCount,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *OfflinePushInfo) Reset() { - *x = OfflinePushInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OfflinePushInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OfflinePushInfo) ProtoMessage() {} - -func (x *OfflinePushInfo) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use OfflinePushInfo.ProtoReflect.Descriptor instead. +func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } +func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } +func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{23} + return fileDescriptor_ws_9506eea4334b9b75, []int{23} +} +func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) +} +func (m *OfflinePushInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OfflinePushInfo.Marshal(b, m, deterministic) +} +func (dst *OfflinePushInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_OfflinePushInfo.Merge(dst, src) +} +func (m *OfflinePushInfo) XXX_Size() int { + return xxx_messageInfo_OfflinePushInfo.Size(m) +} +func (m *OfflinePushInfo) XXX_DiscardUnknown() { + xxx_messageInfo_OfflinePushInfo.DiscardUnknown(m) } -func (x *OfflinePushInfo) GetTitle() string { - if x != nil { - return x.Title +var xxx_messageInfo_OfflinePushInfo proto.InternalMessageInfo + +func (m *OfflinePushInfo) GetTitle() string { + if m != nil { + return m.Title } return "" } -func (x *OfflinePushInfo) GetDesc() string { - if x != nil { - return x.Desc +func (m *OfflinePushInfo) GetDesc() string { + if m != nil { + return m.Desc } return "" } -func (x *OfflinePushInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *OfflinePushInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } -func (x *OfflinePushInfo) GetIOSPushSound() string { - if x != nil { - return x.IOSPushSound +func (m *OfflinePushInfo) GetIOSPushSound() string { + if m != nil { + return m.IOSPushSound } return "" } -func (x *OfflinePushInfo) GetIOSBadgeCount() bool { - if x != nil { - return x.IOSBadgeCount +func (m *OfflinePushInfo) GetIOSBadgeCount() bool { + if m != nil { + return m.IOSBadgeCount } return false } type TipsComm struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Detail []byte `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail,omitempty"` - DefaultTips string `protobuf:"bytes,2,opt,name=defaultTips,proto3" json:"defaultTips,omitempty"` - JsonDetail string `protobuf:"bytes,3,opt,name=jsonDetail,proto3" json:"jsonDetail,omitempty"` + Detail []byte `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail,omitempty"` + DefaultTips string `protobuf:"bytes,2,opt,name=defaultTips" json:"defaultTips,omitempty"` + JsonDetail string `protobuf:"bytes,3,opt,name=jsonDetail" json:"jsonDetail,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *TipsComm) Reset() { - *x = TipsComm{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TipsComm) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TipsComm) ProtoMessage() {} - -func (x *TipsComm) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TipsComm.ProtoReflect.Descriptor instead. +func (m *TipsComm) Reset() { *m = TipsComm{} } +func (m *TipsComm) String() string { return proto.CompactTextString(m) } +func (*TipsComm) ProtoMessage() {} func (*TipsComm) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{24} + return fileDescriptor_ws_9506eea4334b9b75, []int{24} +} +func (m *TipsComm) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TipsComm.Unmarshal(m, b) +} +func (m *TipsComm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TipsComm.Marshal(b, m, deterministic) +} +func (dst *TipsComm) XXX_Merge(src proto.Message) { + xxx_messageInfo_TipsComm.Merge(dst, src) +} +func (m *TipsComm) XXX_Size() int { + return xxx_messageInfo_TipsComm.Size(m) +} +func (m *TipsComm) XXX_DiscardUnknown() { + xxx_messageInfo_TipsComm.DiscardUnknown(m) } -func (x *TipsComm) GetDetail() []byte { - if x != nil { - return x.Detail +var xxx_messageInfo_TipsComm proto.InternalMessageInfo + +func (m *TipsComm) GetDetail() []byte { + if m != nil { + return m.Detail } return nil } -func (x *TipsComm) GetDefaultTips() string { - if x != nil { - return x.DefaultTips +func (m *TipsComm) GetDefaultTips() string { + if m != nil { + return m.DefaultTips } return "" } -func (x *TipsComm) GetJsonDetail() string { - if x != nil { - return x.JsonDetail +func (m *TipsComm) GetJsonDetail() string { + if m != nil { + return m.JsonDetail } return "" } -// OnGroupCreated() +// OnGroupCreated() type GroupCreatedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` - GroupOwnerUser *GroupMemberFullInfo `protobuf:"bytes,5,opt,name=groupOwnerUser,proto3" json:"groupOwnerUser,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` + GroupOwnerUser *GroupMemberFullInfo `protobuf:"bytes,5,opt,name=groupOwnerUser" json:"groupOwnerUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupCreatedTips) Reset() { - *x = GroupCreatedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupCreatedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupCreatedTips) ProtoMessage() {} - -func (x *GroupCreatedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GroupCreatedTips.ProtoReflect.Descriptor instead. +func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } +func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } +func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{25} + return fileDescriptor_ws_9506eea4334b9b75, []int{25} +} +func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) +} +func (m *GroupCreatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupCreatedTips.Marshal(b, m, deterministic) +} +func (dst *GroupCreatedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupCreatedTips.Merge(dst, src) +} +func (m *GroupCreatedTips) XXX_Size() int { + return xxx_messageInfo_GroupCreatedTips.Size(m) +} +func (m *GroupCreatedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupCreatedTips.DiscardUnknown(m) } -func (x *GroupCreatedTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_GroupCreatedTips proto.InternalMessageInfo + +func (m *GroupCreatedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *GroupCreatedTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *GroupCreatedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo { - if x != nil { - return x.MemberList +func (m *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo { + if m != nil { + return m.MemberList } return nil } -func (x *GroupCreatedTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *GroupCreatedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } -func (x *GroupCreatedTips) GetGroupOwnerUser() *GroupMemberFullInfo { - if x != nil { - return x.GroupOwnerUser +func (m *GroupCreatedTips) GetGroupOwnerUser() *GroupMemberFullInfo { + if m != nil { + return m.GroupOwnerUser } return nil } -// OnGroupInfoSet() +// OnGroupInfoSet() type GroupInfoSetTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OpUser *GroupMemberFullInfo `protobuf:"bytes,1,opt,name=opUser,proto3" json:"opUser,omitempty"` //who do this - MuteTime int64 `protobuf:"varint,2,opt,name=muteTime,proto3" json:"muteTime,omitempty"` - Group *GroupInfo `protobuf:"bytes,3,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,1,opt,name=opUser" json:"opUser,omitempty"` + MuteTime int64 `protobuf:"varint,2,opt,name=muteTime" json:"muteTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,3,opt,name=group" json:"group,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupInfoSetTips) Reset() { - *x = GroupInfoSetTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupInfoSetTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupInfoSetTips) ProtoMessage() {} - -func (x *GroupInfoSetTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GroupInfoSetTips.ProtoReflect.Descriptor instead. +func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } +func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } +func (*GroupInfoSetTips) ProtoMessage() {} func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{26} + return fileDescriptor_ws_9506eea4334b9b75, []int{26} +} +func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) +} +func (m *GroupInfoSetTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInfoSetTips.Marshal(b, m, deterministic) +} +func (dst *GroupInfoSetTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInfoSetTips.Merge(dst, src) +} +func (m *GroupInfoSetTips) XXX_Size() int { + return xxx_messageInfo_GroupInfoSetTips.Size(m) +} +func (m *GroupInfoSetTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInfoSetTips.DiscardUnknown(m) } -func (x *GroupInfoSetTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +var xxx_messageInfo_GroupInfoSetTips proto.InternalMessageInfo + +func (m *GroupInfoSetTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupInfoSetTips) GetMuteTime() int64 { - if x != nil { - return x.MuteTime +func (m *GroupInfoSetTips) GetMuteTime() int64 { + if m != nil { + return m.MuteTime } return 0 } -func (x *GroupInfoSetTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +func (m *GroupInfoSetTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -// OnJoinGroupApplication() +// OnJoinGroupApplication() type JoinGroupApplicationTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=applicant,proto3" json:"applicant,omitempty"` - ReqMsg string `protobuf:"bytes,3,opt,name=reqMsg,proto3" json:"reqMsg,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=applicant" json:"applicant,omitempty"` + ReqMsg string `protobuf:"bytes,3,opt,name=reqMsg" json:"reqMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *JoinGroupApplicationTips) Reset() { - *x = JoinGroupApplicationTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *JoinGroupApplicationTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*JoinGroupApplicationTips) ProtoMessage() {} - -func (x *JoinGroupApplicationTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use JoinGroupApplicationTips.ProtoReflect.Descriptor instead. +func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTips{} } +func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } +func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{27} + return fileDescriptor_ws_9506eea4334b9b75, []int{27} +} +func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) +} +func (m *JoinGroupApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_JoinGroupApplicationTips.Marshal(b, m, deterministic) +} +func (dst *JoinGroupApplicationTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_JoinGroupApplicationTips.Merge(dst, src) +} +func (m *JoinGroupApplicationTips) XXX_Size() int { + return xxx_messageInfo_JoinGroupApplicationTips.Size(m) +} +func (m *JoinGroupApplicationTips) XXX_DiscardUnknown() { + xxx_messageInfo_JoinGroupApplicationTips.DiscardUnknown(m) } -func (x *JoinGroupApplicationTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_JoinGroupApplicationTips proto.InternalMessageInfo + +func (m *JoinGroupApplicationTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *JoinGroupApplicationTips) GetApplicant() *PublicUserInfo { - if x != nil { - return x.Applicant +func (m *JoinGroupApplicationTips) GetApplicant() *PublicUserInfo { + if m != nil { + return m.Applicant } return nil } -func (x *JoinGroupApplicationTips) GetReqMsg() string { - if x != nil { - return x.ReqMsg +func (m *JoinGroupApplicationTips) GetReqMsg() string { + if m != nil { + return m.ReqMsg } return "" } -// OnQuitGroup() -//Actively leave the group +// OnQuitGroup() +// Actively leave the group type MemberQuitTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - QuitUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=quitUser,proto3" json:"quitUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + QuitUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=quitUser" json:"quitUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MemberQuitTips) Reset() { - *x = MemberQuitTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MemberQuitTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MemberQuitTips) ProtoMessage() {} - -func (x *MemberQuitTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MemberQuitTips.ProtoReflect.Descriptor instead. +func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } +func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } +func (*MemberQuitTips) ProtoMessage() {} func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{28} + return fileDescriptor_ws_9506eea4334b9b75, []int{28} +} +func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) +} +func (m *MemberQuitTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberQuitTips.Marshal(b, m, deterministic) +} +func (dst *MemberQuitTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberQuitTips.Merge(dst, src) +} +func (m *MemberQuitTips) XXX_Size() int { + return xxx_messageInfo_MemberQuitTips.Size(m) +} +func (m *MemberQuitTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberQuitTips.DiscardUnknown(m) } -func (x *MemberQuitTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_MemberQuitTips proto.InternalMessageInfo + +func (m *MemberQuitTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *MemberQuitTips) GetQuitUser() *GroupMemberFullInfo { - if x != nil { - return x.QuitUser +func (m *MemberQuitTips) GetQuitUser() *GroupMemberFullInfo { + if m != nil { + return m.QuitUser } return nil } -func (x *MemberQuitTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *MemberQuitTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } -// OnApplicationGroupAccepted() +// OnApplicationGroupAccepted() type GroupApplicationAcceptedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg" json:"handleMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupApplicationAcceptedTips) Reset() { - *x = GroupApplicationAcceptedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupApplicationAcceptedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupApplicationAcceptedTips) ProtoMessage() {} - -func (x *GroupApplicationAcceptedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GroupApplicationAcceptedTips.ProtoReflect.Descriptor instead. +func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAcceptedTips{} } +func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } +func (*GroupApplicationAcceptedTips) ProtoMessage() {} func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{29} + return fileDescriptor_ws_9506eea4334b9b75, []int{29} +} +func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) +} +func (m *GroupApplicationAcceptedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupApplicationAcceptedTips.Marshal(b, m, deterministic) +} +func (dst *GroupApplicationAcceptedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupApplicationAcceptedTips.Merge(dst, src) +} +func (m *GroupApplicationAcceptedTips) XXX_Size() int { + return xxx_messageInfo_GroupApplicationAcceptedTips.Size(m) +} +func (m *GroupApplicationAcceptedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupApplicationAcceptedTips.DiscardUnknown(m) } -func (x *GroupApplicationAcceptedTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_GroupApplicationAcceptedTips proto.InternalMessageInfo + +func (m *GroupApplicationAcceptedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *GroupApplicationAcceptedTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *GroupApplicationAcceptedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupApplicationAcceptedTips) GetHandleMsg() string { - if x != nil { - return x.HandleMsg +func (m *GroupApplicationAcceptedTips) GetHandleMsg() string { + if m != nil { + return m.HandleMsg } return "" } -// OnApplicationGroupRejected() +// OnApplicationGroupRejected() type GroupApplicationRejectedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg" json:"handleMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupApplicationRejectedTips) Reset() { - *x = GroupApplicationRejectedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupApplicationRejectedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupApplicationRejectedTips) ProtoMessage() {} - -func (x *GroupApplicationRejectedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GroupApplicationRejectedTips.ProtoReflect.Descriptor instead. +func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRejectedTips{} } +func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } +func (*GroupApplicationRejectedTips) ProtoMessage() {} func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{30} + return fileDescriptor_ws_9506eea4334b9b75, []int{30} +} +func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) +} +func (m *GroupApplicationRejectedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupApplicationRejectedTips.Marshal(b, m, deterministic) +} +func (dst *GroupApplicationRejectedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupApplicationRejectedTips.Merge(dst, src) +} +func (m *GroupApplicationRejectedTips) XXX_Size() int { + return xxx_messageInfo_GroupApplicationRejectedTips.Size(m) +} +func (m *GroupApplicationRejectedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupApplicationRejectedTips.DiscardUnknown(m) } -func (x *GroupApplicationRejectedTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_GroupApplicationRejectedTips proto.InternalMessageInfo + +func (m *GroupApplicationRejectedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *GroupApplicationRejectedTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *GroupApplicationRejectedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupApplicationRejectedTips) GetHandleMsg() string { - if x != nil { - return x.HandleMsg +func (m *GroupApplicationRejectedTips) GetHandleMsg() string { + if m != nil { + return m.HandleMsg } return "" } -// OnTransferGroupOwner() +// OnTransferGroupOwner() type GroupOwnerTransferredTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - NewGroupOwner *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=newGroupOwner,proto3" json:"newGroupOwner,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + NewGroupOwner *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=newGroupOwner" json:"newGroupOwner,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupOwnerTransferredTips) Reset() { - *x = GroupOwnerTransferredTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupOwnerTransferredTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupOwnerTransferredTips) ProtoMessage() {} - -func (x *GroupOwnerTransferredTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GroupOwnerTransferredTips.ProtoReflect.Descriptor instead. +func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferredTips{} } +func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } +func (*GroupOwnerTransferredTips) ProtoMessage() {} func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{31} + return fileDescriptor_ws_9506eea4334b9b75, []int{31} +} +func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) +} +func (m *GroupOwnerTransferredTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupOwnerTransferredTips.Marshal(b, m, deterministic) +} +func (dst *GroupOwnerTransferredTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupOwnerTransferredTips.Merge(dst, src) +} +func (m *GroupOwnerTransferredTips) XXX_Size() int { + return xxx_messageInfo_GroupOwnerTransferredTips.Size(m) +} +func (m *GroupOwnerTransferredTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupOwnerTransferredTips.DiscardUnknown(m) } -func (x *GroupOwnerTransferredTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_GroupOwnerTransferredTips proto.InternalMessageInfo + +func (m *GroupOwnerTransferredTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *GroupOwnerTransferredTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *GroupOwnerTransferredTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupOwnerTransferredTips) GetNewGroupOwner() *GroupMemberFullInfo { - if x != nil { - return x.NewGroupOwner +func (m *GroupOwnerTransferredTips) GetNewGroupOwner() *GroupMemberFullInfo { + if m != nil { + return m.NewGroupOwner } return nil } -func (x *GroupOwnerTransferredTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *GroupOwnerTransferredTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } -// OnMemberKicked() +// OnMemberKicked() type MemberKickedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - KickedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=kickedUserList,proto3" json:"kickedUserList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + KickedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=kickedUserList" json:"kickedUserList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MemberKickedTips) Reset() { - *x = MemberKickedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MemberKickedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MemberKickedTips) ProtoMessage() {} - -func (x *MemberKickedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MemberKickedTips.ProtoReflect.Descriptor instead. +func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } +func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } +func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{32} + return fileDescriptor_ws_9506eea4334b9b75, []int{32} +} +func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) +} +func (m *MemberKickedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberKickedTips.Marshal(b, m, deterministic) +} +func (dst *MemberKickedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberKickedTips.Merge(dst, src) +} +func (m *MemberKickedTips) XXX_Size() int { + return xxx_messageInfo_MemberKickedTips.Size(m) +} +func (m *MemberKickedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberKickedTips.DiscardUnknown(m) } -func (x *MemberKickedTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_MemberKickedTips proto.InternalMessageInfo + +func (m *MemberKickedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *MemberKickedTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *MemberKickedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *MemberKickedTips) GetKickedUserList() []*GroupMemberFullInfo { - if x != nil { - return x.KickedUserList +func (m *MemberKickedTips) GetKickedUserList() []*GroupMemberFullInfo { + if m != nil { + return m.KickedUserList } return nil } -func (x *MemberKickedTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *MemberKickedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } -// OnMemberInvited() +// OnMemberInvited() type MemberInvitedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - InvitedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=invitedUserList,proto3" json:"invitedUserList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + InvitedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=invitedUserList" json:"invitedUserList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MemberInvitedTips) Reset() { - *x = MemberInvitedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MemberInvitedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MemberInvitedTips) ProtoMessage() {} - -func (x *MemberInvitedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MemberInvitedTips.ProtoReflect.Descriptor instead. +func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } +func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } +func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{33} + return fileDescriptor_ws_9506eea4334b9b75, []int{33} +} +func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) +} +func (m *MemberInvitedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberInvitedTips.Marshal(b, m, deterministic) +} +func (dst *MemberInvitedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberInvitedTips.Merge(dst, src) +} +func (m *MemberInvitedTips) XXX_Size() int { + return xxx_messageInfo_MemberInvitedTips.Size(m) +} +func (m *MemberInvitedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberInvitedTips.DiscardUnknown(m) } -func (x *MemberInvitedTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_MemberInvitedTips proto.InternalMessageInfo + +func (m *MemberInvitedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *MemberInvitedTips) GetInvitedUserList() []*GroupMemberFullInfo { - if x != nil { - return x.InvitedUserList +func (m *MemberInvitedTips) GetInvitedUserList() []*GroupMemberFullInfo { + if m != nil { + return m.InvitedUserList } return nil } -func (x *MemberInvitedTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *MemberInvitedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } -//Actively join the group +// Actively join the group type MemberEnterTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - EntrantUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=entrantUser,proto3" json:"entrantUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + EntrantUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=entrantUser" json:"entrantUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MemberEnterTips) Reset() { - *x = MemberEnterTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MemberEnterTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MemberEnterTips) ProtoMessage() {} - -func (x *MemberEnterTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MemberEnterTips.ProtoReflect.Descriptor instead. +func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } +func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } +func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{34} + return fileDescriptor_ws_9506eea4334b9b75, []int{34} +} +func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) +} +func (m *MemberEnterTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberEnterTips.Marshal(b, m, deterministic) +} +func (dst *MemberEnterTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberEnterTips.Merge(dst, src) +} +func (m *MemberEnterTips) XXX_Size() int { + return xxx_messageInfo_MemberEnterTips.Size(m) +} +func (m *MemberEnterTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberEnterTips.DiscardUnknown(m) } -func (x *MemberEnterTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_MemberEnterTips proto.InternalMessageInfo + +func (m *MemberEnterTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *MemberEnterTips) GetEntrantUser() *GroupMemberFullInfo { - if x != nil { - return x.EntrantUser +func (m *MemberEnterTips) GetEntrantUser() *GroupMemberFullInfo { + if m != nil { + return m.EntrantUser } return nil } -func (x *MemberEnterTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *MemberEnterTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } type GroupDismissedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupDismissedTips) Reset() { - *x = GroupDismissedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupDismissedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupDismissedTips) ProtoMessage() {} - -func (x *GroupDismissedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GroupDismissedTips.ProtoReflect.Descriptor instead. +func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } +func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } +func (*GroupDismissedTips) ProtoMessage() {} func (*GroupDismissedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{35} + return fileDescriptor_ws_9506eea4334b9b75, []int{35} +} +func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) +} +func (m *GroupDismissedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupDismissedTips.Marshal(b, m, deterministic) +} +func (dst *GroupDismissedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupDismissedTips.Merge(dst, src) +} +func (m *GroupDismissedTips) XXX_Size() int { + return xxx_messageInfo_GroupDismissedTips.Size(m) +} +func (m *GroupDismissedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupDismissedTips.DiscardUnknown(m) } -func (x *GroupDismissedTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_GroupDismissedTips proto.InternalMessageInfo + +func (m *GroupDismissedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *GroupDismissedTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *GroupDismissedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupDismissedTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *GroupDismissedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } type GroupMemberMutedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` - MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser,proto3" json:"mutedUser,omitempty"` - MutedSeconds uint32 `protobuf:"varint,5,opt,name=mutedSeconds,proto3" json:"mutedSeconds,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser" json:"mutedUser,omitempty"` + MutedSeconds uint32 `protobuf:"varint,5,opt,name=mutedSeconds" json:"mutedSeconds,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupMemberMutedTips) Reset() { - *x = GroupMemberMutedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupMemberMutedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupMemberMutedTips) ProtoMessage() {} - -func (x *GroupMemberMutedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GroupMemberMutedTips.ProtoReflect.Descriptor instead. +func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} } +func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) } +func (*GroupMemberMutedTips) ProtoMessage() {} func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{36} + return fileDescriptor_ws_9506eea4334b9b75, []int{36} +} +func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) +} +func (m *GroupMemberMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberMutedTips.Marshal(b, m, deterministic) +} +func (dst *GroupMemberMutedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberMutedTips.Merge(dst, src) +} +func (m *GroupMemberMutedTips) XXX_Size() int { + return xxx_messageInfo_GroupMemberMutedTips.Size(m) +} +func (m *GroupMemberMutedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberMutedTips.DiscardUnknown(m) } -func (x *GroupMemberMutedTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_GroupMemberMutedTips proto.InternalMessageInfo + +func (m *GroupMemberMutedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *GroupMemberMutedTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *GroupMemberMutedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupMemberMutedTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *GroupMemberMutedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } -func (x *GroupMemberMutedTips) GetMutedUser() *GroupMemberFullInfo { - if x != nil { - return x.MutedUser +func (m *GroupMemberMutedTips) GetMutedUser() *GroupMemberFullInfo { + if m != nil { + return m.MutedUser } return nil } -func (x *GroupMemberMutedTips) GetMutedSeconds() uint32 { - if x != nil { - return x.MutedSeconds +func (m *GroupMemberMutedTips) GetMutedSeconds() uint32 { + if m != nil { + return m.MutedSeconds } return 0 } type GroupMemberCancelMutedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` - MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser,proto3" json:"mutedUser,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser" json:"mutedUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupMemberCancelMutedTips) Reset() { - *x = GroupMemberCancelMutedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupMemberCancelMutedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupMemberCancelMutedTips) ProtoMessage() {} - -func (x *GroupMemberCancelMutedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GroupMemberCancelMutedTips.ProtoReflect.Descriptor instead. +func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMutedTips{} } +func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } +func (*GroupMemberCancelMutedTips) ProtoMessage() {} func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{37} + return fileDescriptor_ws_9506eea4334b9b75, []int{37} +} +func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) +} +func (m *GroupMemberCancelMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberCancelMutedTips.Marshal(b, m, deterministic) +} +func (dst *GroupMemberCancelMutedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberCancelMutedTips.Merge(dst, src) +} +func (m *GroupMemberCancelMutedTips) XXX_Size() int { + return xxx_messageInfo_GroupMemberCancelMutedTips.Size(m) +} +func (m *GroupMemberCancelMutedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberCancelMutedTips.DiscardUnknown(m) } -func (x *GroupMemberCancelMutedTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_GroupMemberCancelMutedTips proto.InternalMessageInfo + +func (m *GroupMemberCancelMutedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *GroupMemberCancelMutedTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *GroupMemberCancelMutedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupMemberCancelMutedTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *GroupMemberCancelMutedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } -func (x *GroupMemberCancelMutedTips) GetMutedUser() *GroupMemberFullInfo { - if x != nil { - return x.MutedUser +func (m *GroupMemberCancelMutedTips) GetMutedUser() *GroupMemberFullInfo { + if m != nil { + return m.MutedUser } return nil } type GroupMutedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupMutedTips) Reset() { - *x = GroupMutedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupMutedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupMutedTips) ProtoMessage() {} - -func (x *GroupMutedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GroupMutedTips.ProtoReflect.Descriptor instead. +func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} } +func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) } +func (*GroupMutedTips) ProtoMessage() {} func (*GroupMutedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{38} + return fileDescriptor_ws_9506eea4334b9b75, []int{38} +} +func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) +} +func (m *GroupMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMutedTips.Marshal(b, m, deterministic) +} +func (dst *GroupMutedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMutedTips.Merge(dst, src) +} +func (m *GroupMutedTips) XXX_Size() int { + return xxx_messageInfo_GroupMutedTips.Size(m) +} +func (m *GroupMutedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMutedTips.DiscardUnknown(m) } -func (x *GroupMutedTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_GroupMutedTips proto.InternalMessageInfo + +func (m *GroupMutedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *GroupMutedTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *GroupMutedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupMutedTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *GroupMutedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } type GroupCancelMutedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupCancelMutedTips) Reset() { - *x = GroupCancelMutedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupCancelMutedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupCancelMutedTips) ProtoMessage() {} - -func (x *GroupCancelMutedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GroupCancelMutedTips.ProtoReflect.Descriptor instead. +func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} } +func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) } +func (*GroupCancelMutedTips) ProtoMessage() {} func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{39} + return fileDescriptor_ws_9506eea4334b9b75, []int{39} +} +func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) +} +func (m *GroupCancelMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupCancelMutedTips.Marshal(b, m, deterministic) +} +func (dst *GroupCancelMutedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupCancelMutedTips.Merge(dst, src) +} +func (m *GroupCancelMutedTips) XXX_Size() int { + return xxx_messageInfo_GroupCancelMutedTips.Size(m) +} +func (m *GroupCancelMutedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupCancelMutedTips.DiscardUnknown(m) } -func (x *GroupCancelMutedTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_GroupCancelMutedTips proto.InternalMessageInfo + +func (m *GroupCancelMutedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *GroupCancelMutedTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *GroupCancelMutedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupCancelMutedTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *GroupCancelMutedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } type GroupMemberInfoSetTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` - ChangedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=changedUser,proto3" json:"changedUser,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + ChangedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=changedUser" json:"changedUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupMemberInfoSetTips) Reset() { - *x = GroupMemberInfoSetTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupMemberInfoSetTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupMemberInfoSetTips) ProtoMessage() {} - -func (x *GroupMemberInfoSetTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GroupMemberInfoSetTips.ProtoReflect.Descriptor instead. +func (m *GroupMemberInfoSetTips) Reset() { *m = GroupMemberInfoSetTips{} } +func (m *GroupMemberInfoSetTips) String() string { return proto.CompactTextString(m) } +func (*GroupMemberInfoSetTips) ProtoMessage() {} func (*GroupMemberInfoSetTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{40} + return fileDescriptor_ws_9506eea4334b9b75, []int{40} +} +func (m *GroupMemberInfoSetTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberInfoSetTips.Unmarshal(m, b) +} +func (m *GroupMemberInfoSetTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberInfoSetTips.Marshal(b, m, deterministic) +} +func (dst *GroupMemberInfoSetTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberInfoSetTips.Merge(dst, src) +} +func (m *GroupMemberInfoSetTips) XXX_Size() int { + return xxx_messageInfo_GroupMemberInfoSetTips.Size(m) +} +func (m *GroupMemberInfoSetTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberInfoSetTips.DiscardUnknown(m) } -func (x *GroupMemberInfoSetTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_GroupMemberInfoSetTips proto.InternalMessageInfo + +func (m *GroupMemberInfoSetTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *GroupMemberInfoSetTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *GroupMemberInfoSetTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupMemberInfoSetTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *GroupMemberInfoSetTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } -func (x *GroupMemberInfoSetTips) GetChangedUser() *GroupMemberFullInfo { - if x != nil { - return x.ChangedUser +func (m *GroupMemberInfoSetTips) GetChangedUser() *GroupMemberFullInfo { + if m != nil { + return m.ChangedUser } return nil } type OrganizationChangedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OpUser *UserInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + OpUser *UserInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *OrganizationChangedTips) Reset() { - *x = OrganizationChangedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OrganizationChangedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrganizationChangedTips) ProtoMessage() {} - -func (x *OrganizationChangedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use OrganizationChangedTips.ProtoReflect.Descriptor instead. +func (m *OrganizationChangedTips) Reset() { *m = OrganizationChangedTips{} } +func (m *OrganizationChangedTips) String() string { return proto.CompactTextString(m) } +func (*OrganizationChangedTips) ProtoMessage() {} func (*OrganizationChangedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{41} + return fileDescriptor_ws_9506eea4334b9b75, []int{41} +} +func (m *OrganizationChangedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OrganizationChangedTips.Unmarshal(m, b) +} +func (m *OrganizationChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OrganizationChangedTips.Marshal(b, m, deterministic) +} +func (dst *OrganizationChangedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_OrganizationChangedTips.Merge(dst, src) +} +func (m *OrganizationChangedTips) XXX_Size() int { + return xxx_messageInfo_OrganizationChangedTips.Size(m) +} +func (m *OrganizationChangedTips) XXX_DiscardUnknown() { + xxx_messageInfo_OrganizationChangedTips.DiscardUnknown(m) } -func (x *OrganizationChangedTips) GetOpUser() *UserInfo { - if x != nil { - return x.OpUser +var xxx_messageInfo_OrganizationChangedTips proto.InternalMessageInfo + +func (m *OrganizationChangedTips) GetOpUser() *UserInfo { + if m != nil { + return m.OpUser } return nil } -func (x *OrganizationChangedTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *OrganizationChangedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } type FriendApplication struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AddTime int64 `protobuf:"varint,1,opt,name=addTime,proto3" json:"addTime,omitempty"` - AddSource string `protobuf:"bytes,2,opt,name=addSource,proto3" json:"addSource,omitempty"` - AddWording string `protobuf:"bytes,3,opt,name=addWording,proto3" json:"addWording,omitempty"` + AddTime int64 `protobuf:"varint,1,opt,name=addTime" json:"addTime,omitempty"` + AddSource string `protobuf:"bytes,2,opt,name=addSource" json:"addSource,omitempty"` + AddWording string `protobuf:"bytes,3,opt,name=addWording" json:"addWording,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendApplication) Reset() { - *x = FriendApplication{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FriendApplication) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FriendApplication) ProtoMessage() {} - -func (x *FriendApplication) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FriendApplication.ProtoReflect.Descriptor instead. +func (m *FriendApplication) Reset() { *m = FriendApplication{} } +func (m *FriendApplication) String() string { return proto.CompactTextString(m) } +func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{42} + return fileDescriptor_ws_9506eea4334b9b75, []int{42} +} +func (m *FriendApplication) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplication.Unmarshal(m, b) +} +func (m *FriendApplication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplication.Marshal(b, m, deterministic) +} +func (dst *FriendApplication) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplication.Merge(dst, src) +} +func (m *FriendApplication) XXX_Size() int { + return xxx_messageInfo_FriendApplication.Size(m) +} +func (m *FriendApplication) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplication.DiscardUnknown(m) } -func (x *FriendApplication) GetAddTime() int64 { - if x != nil { - return x.AddTime +var xxx_messageInfo_FriendApplication proto.InternalMessageInfo + +func (m *FriendApplication) GetAddTime() int64 { + if m != nil { + return m.AddTime } return 0 } -func (x *FriendApplication) GetAddSource() string { - if x != nil { - return x.AddSource +func (m *FriendApplication) GetAddSource() string { + if m != nil { + return m.AddSource } return "" } -func (x *FriendApplication) GetAddWording() string { - if x != nil { - return x.AddWording +func (m *FriendApplication) GetAddWording() string { + if m != nil { + return m.AddWording } return "" } type FromToUserID struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromUserID string `protobuf:"bytes,1,opt,name=fromUserID,proto3" json:"fromUserID,omitempty"` - ToUserID string `protobuf:"bytes,2,opt,name=toUserID,proto3" json:"toUserID,omitempty"` + FromUserID string `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"` + ToUserID string `protobuf:"bytes,2,opt,name=toUserID" json:"toUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FromToUserID) Reset() { - *x = FromToUserID{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FromToUserID) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FromToUserID) ProtoMessage() {} - -func (x *FromToUserID) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FromToUserID.ProtoReflect.Descriptor instead. +func (m *FromToUserID) Reset() { *m = FromToUserID{} } +func (m *FromToUserID) String() string { return proto.CompactTextString(m) } +func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{43} + return fileDescriptor_ws_9506eea4334b9b75, []int{43} +} +func (m *FromToUserID) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FromToUserID.Unmarshal(m, b) +} +func (m *FromToUserID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FromToUserID.Marshal(b, m, deterministic) +} +func (dst *FromToUserID) XXX_Merge(src proto.Message) { + xxx_messageInfo_FromToUserID.Merge(dst, src) +} +func (m *FromToUserID) XXX_Size() int { + return xxx_messageInfo_FromToUserID.Size(m) +} +func (m *FromToUserID) XXX_DiscardUnknown() { + xxx_messageInfo_FromToUserID.DiscardUnknown(m) } -func (x *FromToUserID) GetFromUserID() string { - if x != nil { - return x.FromUserID +var xxx_messageInfo_FromToUserID proto.InternalMessageInfo + +func (m *FromToUserID) GetFromUserID() string { + if m != nil { + return m.FromUserID } return "" } -func (x *FromToUserID) GetToUserID() string { - if x != nil { - return x.ToUserID +func (m *FromToUserID) GetToUserID() string { + if m != nil { + return m.ToUserID } return "" } -//FromUserID apply to add ToUserID +// FromUserID apply to add ToUserID type FriendApplicationTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendApplicationTips) Reset() { - *x = FriendApplicationTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FriendApplicationTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FriendApplicationTips) ProtoMessage() {} - -func (x *FriendApplicationTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FriendApplicationTips.ProtoReflect.Descriptor instead. +func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } +func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationTips) ProtoMessage() {} func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{44} + return fileDescriptor_ws_9506eea4334b9b75, []int{44} +} +func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) +} +func (m *FriendApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationTips.Marshal(b, m, deterministic) +} +func (dst *FriendApplicationTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationTips.Merge(dst, src) +} +func (m *FriendApplicationTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationTips.Size(m) +} +func (m *FriendApplicationTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationTips.DiscardUnknown(m) } -func (x *FriendApplicationTips) GetFromToUserID() *FromToUserID { - if x != nil { - return x.FromToUserID +var xxx_messageInfo_FriendApplicationTips proto.InternalMessageInfo + +func (m *FriendApplicationTips) GetFromToUserID() *FromToUserID { + if m != nil { + return m.FromToUserID } return nil } -//FromUserID accept or reject ToUserID +// FromUserID accept or reject ToUserID type FriendApplicationApprovedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` - HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg" json:"handleMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendApplicationApprovedTips) Reset() { - *x = FriendApplicationApprovedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FriendApplicationApprovedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FriendApplicationApprovedTips) ProtoMessage() {} - -func (x *FriendApplicationApprovedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FriendApplicationApprovedTips.ProtoReflect.Descriptor instead. +func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplicationApprovedTips{} } +func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationApprovedTips) ProtoMessage() {} func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{45} + return fileDescriptor_ws_9506eea4334b9b75, []int{45} +} +func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) +} +func (m *FriendApplicationApprovedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationApprovedTips.Marshal(b, m, deterministic) +} +func (dst *FriendApplicationApprovedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationApprovedTips.Merge(dst, src) +} +func (m *FriendApplicationApprovedTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationApprovedTips.Size(m) +} +func (m *FriendApplicationApprovedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationApprovedTips.DiscardUnknown(m) } -func (x *FriendApplicationApprovedTips) GetFromToUserID() *FromToUserID { - if x != nil { - return x.FromToUserID +var xxx_messageInfo_FriendApplicationApprovedTips proto.InternalMessageInfo + +func (m *FriendApplicationApprovedTips) GetFromToUserID() *FromToUserID { + if m != nil { + return m.FromToUserID } return nil } -func (x *FriendApplicationApprovedTips) GetHandleMsg() string { - if x != nil { - return x.HandleMsg +func (m *FriendApplicationApprovedTips) GetHandleMsg() string { + if m != nil { + return m.HandleMsg } return "" } -//FromUserID accept or reject ToUserID +// FromUserID accept or reject ToUserID type FriendApplicationRejectedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` - HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg" json:"handleMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendApplicationRejectedTips) Reset() { - *x = FriendApplicationRejectedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FriendApplicationRejectedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FriendApplicationRejectedTips) ProtoMessage() {} - -func (x *FriendApplicationRejectedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[46] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FriendApplicationRejectedTips.ProtoReflect.Descriptor instead. +func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplicationRejectedTips{} } +func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationRejectedTips) ProtoMessage() {} func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{46} + return fileDescriptor_ws_9506eea4334b9b75, []int{46} +} +func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) +} +func (m *FriendApplicationRejectedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationRejectedTips.Marshal(b, m, deterministic) +} +func (dst *FriendApplicationRejectedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationRejectedTips.Merge(dst, src) +} +func (m *FriendApplicationRejectedTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationRejectedTips.Size(m) +} +func (m *FriendApplicationRejectedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationRejectedTips.DiscardUnknown(m) } -func (x *FriendApplicationRejectedTips) GetFromToUserID() *FromToUserID { - if x != nil { - return x.FromToUserID +var xxx_messageInfo_FriendApplicationRejectedTips proto.InternalMessageInfo + +func (m *FriendApplicationRejectedTips) GetFromToUserID() *FromToUserID { + if m != nil { + return m.FromToUserID } return nil } -func (x *FriendApplicationRejectedTips) GetHandleMsg() string { - if x != nil { - return x.HandleMsg +func (m *FriendApplicationRejectedTips) GetHandleMsg() string { + if m != nil { + return m.HandleMsg } return "" } // FromUserID Added a friend ToUserID type FriendAddedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Friend *FriendInfo `protobuf:"bytes,1,opt,name=friend,proto3" json:"friend,omitempty"` - OperationTime int64 `protobuf:"varint,2,opt,name=operationTime,proto3" json:"operationTime,omitempty"` - OpUser *PublicUserInfo `protobuf:"bytes,3,opt,name=opUser,proto3" json:"opUser,omitempty"` //who do this + Friend *FriendInfo `protobuf:"bytes,1,opt,name=friend" json:"friend,omitempty"` + OperationTime int64 `protobuf:"varint,2,opt,name=operationTime" json:"operationTime,omitempty"` + OpUser *PublicUserInfo `protobuf:"bytes,3,opt,name=opUser" json:"opUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendAddedTips) Reset() { - *x = FriendAddedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FriendAddedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FriendAddedTips) ProtoMessage() {} - -func (x *FriendAddedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[47] - 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 FriendAddedTips.ProtoReflect.Descriptor instead. +func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } +func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } +func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{47} + return fileDescriptor_ws_9506eea4334b9b75, []int{47} +} +func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) +} +func (m *FriendAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendAddedTips.Marshal(b, m, deterministic) +} +func (dst *FriendAddedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendAddedTips.Merge(dst, src) +} +func (m *FriendAddedTips) XXX_Size() int { + return xxx_messageInfo_FriendAddedTips.Size(m) +} +func (m *FriendAddedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendAddedTips.DiscardUnknown(m) } -func (x *FriendAddedTips) GetFriend() *FriendInfo { - if x != nil { - return x.Friend +var xxx_messageInfo_FriendAddedTips proto.InternalMessageInfo + +func (m *FriendAddedTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend } return nil } -func (x *FriendAddedTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *FriendAddedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } -func (x *FriendAddedTips) GetOpUser() *PublicUserInfo { - if x != nil { - return x.OpUser +func (m *FriendAddedTips) GetOpUser() *PublicUserInfo { + if m != nil { + return m.OpUser } return nil } // FromUserID deleted a friend ToUserID type FriendDeletedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendDeletedTips) Reset() { - *x = FriendDeletedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FriendDeletedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FriendDeletedTips) ProtoMessage() {} - -func (x *FriendDeletedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[48] - 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 FriendDeletedTips.ProtoReflect.Descriptor instead. +func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } +func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } +func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{48} + return fileDescriptor_ws_9506eea4334b9b75, []int{48} +} +func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) +} +func (m *FriendDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendDeletedTips.Marshal(b, m, deterministic) +} +func (dst *FriendDeletedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendDeletedTips.Merge(dst, src) +} +func (m *FriendDeletedTips) XXX_Size() int { + return xxx_messageInfo_FriendDeletedTips.Size(m) +} +func (m *FriendDeletedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendDeletedTips.DiscardUnknown(m) } -func (x *FriendDeletedTips) GetFromToUserID() *FromToUserID { - if x != nil { - return x.FromToUserID +var xxx_messageInfo_FriendDeletedTips proto.InternalMessageInfo + +func (m *FriendDeletedTips) GetFromToUserID() *FromToUserID { + if m != nil { + return m.FromToUserID } return nil } type BlackAddedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *BlackAddedTips) Reset() { - *x = BlackAddedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BlackAddedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BlackAddedTips) ProtoMessage() {} - -func (x *BlackAddedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[49] - 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 BlackAddedTips.ProtoReflect.Descriptor instead. +func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } +func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } +func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{49} + return fileDescriptor_ws_9506eea4334b9b75, []int{49} +} +func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) +} +func (m *BlackAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackAddedTips.Marshal(b, m, deterministic) +} +func (dst *BlackAddedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackAddedTips.Merge(dst, src) +} +func (m *BlackAddedTips) XXX_Size() int { + return xxx_messageInfo_BlackAddedTips.Size(m) +} +func (m *BlackAddedTips) XXX_DiscardUnknown() { + xxx_messageInfo_BlackAddedTips.DiscardUnknown(m) } -func (x *BlackAddedTips) GetFromToUserID() *FromToUserID { - if x != nil { - return x.FromToUserID +var xxx_messageInfo_BlackAddedTips proto.InternalMessageInfo + +func (m *BlackAddedTips) GetFromToUserID() *FromToUserID { + if m != nil { + return m.FromToUserID } return nil } type BlackDeletedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *BlackDeletedTips) Reset() { - *x = BlackDeletedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BlackDeletedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BlackDeletedTips) ProtoMessage() {} - -func (x *BlackDeletedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[50] - 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 BlackDeletedTips.ProtoReflect.Descriptor instead. +func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } +func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } +func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{50} + return fileDescriptor_ws_9506eea4334b9b75, []int{50} +} +func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) +} +func (m *BlackDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackDeletedTips.Marshal(b, m, deterministic) +} +func (dst *BlackDeletedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackDeletedTips.Merge(dst, src) +} +func (m *BlackDeletedTips) XXX_Size() int { + return xxx_messageInfo_BlackDeletedTips.Size(m) +} +func (m *BlackDeletedTips) XXX_DiscardUnknown() { + xxx_messageInfo_BlackDeletedTips.DiscardUnknown(m) } -func (x *BlackDeletedTips) GetFromToUserID() *FromToUserID { - if x != nil { - return x.FromToUserID +var xxx_messageInfo_BlackDeletedTips proto.InternalMessageInfo + +func (m *BlackDeletedTips) GetFromToUserID() *FromToUserID { + if m != nil { + return m.FromToUserID } return nil } type FriendInfoChangedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendInfoChangedTips) Reset() { - *x = FriendInfoChangedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FriendInfoChangedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FriendInfoChangedTips) ProtoMessage() {} - -func (x *FriendInfoChangedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[51] - 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 FriendInfoChangedTips.ProtoReflect.Descriptor instead. +func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } +func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } +func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{51} + return fileDescriptor_ws_9506eea4334b9b75, []int{51} +} +func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) +} +func (m *FriendInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendInfoChangedTips.Marshal(b, m, deterministic) +} +func (dst *FriendInfoChangedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendInfoChangedTips.Merge(dst, src) +} +func (m *FriendInfoChangedTips) XXX_Size() int { + return xxx_messageInfo_FriendInfoChangedTips.Size(m) +} +func (m *FriendInfoChangedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendInfoChangedTips.DiscardUnknown(m) } -func (x *FriendInfoChangedTips) GetFromToUserID() *FromToUserID { - if x != nil { - return x.FromToUserID +var xxx_messageInfo_FriendInfoChangedTips proto.InternalMessageInfo + +func (m *FriendInfoChangedTips) GetFromToUserID() *FromToUserID { + if m != nil { + return m.FromToUserID } return nil } -//////////////////////user///////////////////// +// ////////////////////user///////////////////// type UserInfoUpdatedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserInfoUpdatedTips) Reset() { - *x = UserInfoUpdatedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[52] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserInfoUpdatedTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserInfoUpdatedTips) ProtoMessage() {} - -func (x *UserInfoUpdatedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[52] - 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 UserInfoUpdatedTips.ProtoReflect.Descriptor instead. +func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } +func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } +func (*UserInfoUpdatedTips) ProtoMessage() {} func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{52} + return fileDescriptor_ws_9506eea4334b9b75, []int{52} +} +func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) +} +func (m *UserInfoUpdatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInfoUpdatedTips.Marshal(b, m, deterministic) +} +func (dst *UserInfoUpdatedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInfoUpdatedTips.Merge(dst, src) +} +func (m *UserInfoUpdatedTips) XXX_Size() int { + return xxx_messageInfo_UserInfoUpdatedTips.Size(m) +} +func (m *UserInfoUpdatedTips) XXX_DiscardUnknown() { + xxx_messageInfo_UserInfoUpdatedTips.DiscardUnknown(m) } -func (x *UserInfoUpdatedTips) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_UserInfoUpdatedTips proto.InternalMessageInfo + +func (m *UserInfoUpdatedTips) GetUserID() string { + if m != nil { + return m.UserID } return "" } -//////////////////////conversation///////////////////// +// ////////////////////conversation///////////////////// type ConversationUpdateTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` - ConversationIDList []string `protobuf:"bytes,2,rep,name=conversationIDList,proto3" json:"conversationIDList,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + ConversationIDList []string `protobuf:"bytes,2,rep,name=conversationIDList" json:"conversationIDList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *ConversationUpdateTips) Reset() { - *x = ConversationUpdateTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ConversationUpdateTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ConversationUpdateTips) ProtoMessage() {} - -func (x *ConversationUpdateTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[53] - 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 ConversationUpdateTips.ProtoReflect.Descriptor instead. +func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} } +func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } +func (*ConversationUpdateTips) ProtoMessage() {} func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{53} + return fileDescriptor_ws_9506eea4334b9b75, []int{53} +} +func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) +} +func (m *ConversationUpdateTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConversationUpdateTips.Marshal(b, m, deterministic) +} +func (dst *ConversationUpdateTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConversationUpdateTips.Merge(dst, src) +} +func (m *ConversationUpdateTips) XXX_Size() int { + return xxx_messageInfo_ConversationUpdateTips.Size(m) +} +func (m *ConversationUpdateTips) XXX_DiscardUnknown() { + xxx_messageInfo_ConversationUpdateTips.DiscardUnknown(m) } -func (x *ConversationUpdateTips) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_ConversationUpdateTips proto.InternalMessageInfo + +func (m *ConversationUpdateTips) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *ConversationUpdateTips) GetConversationIDList() []string { - if x != nil { - return x.ConversationIDList +func (m *ConversationUpdateTips) GetConversationIDList() []string { + if m != nil { + return m.ConversationIDList } return nil } type ConversationSetPrivateTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RecvID string `protobuf:"bytes,1,opt,name=recvID,proto3" json:"recvID,omitempty"` - SendID string `protobuf:"bytes,2,opt,name=sendID,proto3" json:"sendID,omitempty"` - IsPrivate bool `protobuf:"varint,3,opt,name=isPrivate,proto3" json:"isPrivate,omitempty"` + RecvID string `protobuf:"bytes,1,opt,name=recvID" json:"recvID,omitempty"` + SendID string `protobuf:"bytes,2,opt,name=sendID" json:"sendID,omitempty"` + IsPrivate bool `protobuf:"varint,3,opt,name=isPrivate" json:"isPrivate,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *ConversationSetPrivateTips) Reset() { - *x = ConversationSetPrivateTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ConversationSetPrivateTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ConversationSetPrivateTips) ProtoMessage() {} - -func (x *ConversationSetPrivateTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[54] - 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 ConversationSetPrivateTips.ProtoReflect.Descriptor instead. +func (m *ConversationSetPrivateTips) Reset() { *m = ConversationSetPrivateTips{} } +func (m *ConversationSetPrivateTips) String() string { return proto.CompactTextString(m) } +func (*ConversationSetPrivateTips) ProtoMessage() {} func (*ConversationSetPrivateTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{54} + return fileDescriptor_ws_9506eea4334b9b75, []int{54} +} +func (m *ConversationSetPrivateTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConversationSetPrivateTips.Unmarshal(m, b) +} +func (m *ConversationSetPrivateTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConversationSetPrivateTips.Marshal(b, m, deterministic) +} +func (dst *ConversationSetPrivateTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConversationSetPrivateTips.Merge(dst, src) +} +func (m *ConversationSetPrivateTips) XXX_Size() int { + return xxx_messageInfo_ConversationSetPrivateTips.Size(m) +} +func (m *ConversationSetPrivateTips) XXX_DiscardUnknown() { + xxx_messageInfo_ConversationSetPrivateTips.DiscardUnknown(m) } -func (x *ConversationSetPrivateTips) GetRecvID() string { - if x != nil { - return x.RecvID +var xxx_messageInfo_ConversationSetPrivateTips proto.InternalMessageInfo + +func (m *ConversationSetPrivateTips) GetRecvID() string { + if m != nil { + return m.RecvID } return "" } -func (x *ConversationSetPrivateTips) GetSendID() string { - if x != nil { - return x.SendID +func (m *ConversationSetPrivateTips) GetSendID() string { + if m != nil { + return m.SendID } return "" } -func (x *ConversationSetPrivateTips) GetIsPrivate() bool { - if x != nil { - return x.IsPrivate +func (m *ConversationSetPrivateTips) GetIsPrivate() bool { + if m != nil { + return m.IsPrivate } return false } -////////////////////message/////////////////////// +// //////////////////message/////////////////////// type DeleteMessageTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"` - SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList,proto3" json:"seqList,omitempty"` + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *DeleteMessageTips) Reset() { - *x = DeleteMessageTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DeleteMessageTips) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteMessageTips) ProtoMessage() {} - -func (x *DeleteMessageTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[55] - 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 DeleteMessageTips.ProtoReflect.Descriptor instead. +func (m *DeleteMessageTips) Reset() { *m = DeleteMessageTips{} } +func (m *DeleteMessageTips) String() string { return proto.CompactTextString(m) } +func (*DeleteMessageTips) ProtoMessage() {} func (*DeleteMessageTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{55} + return fileDescriptor_ws_9506eea4334b9b75, []int{55} +} +func (m *DeleteMessageTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteMessageTips.Unmarshal(m, b) +} +func (m *DeleteMessageTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteMessageTips.Marshal(b, m, deterministic) +} +func (dst *DeleteMessageTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteMessageTips.Merge(dst, src) +} +func (m *DeleteMessageTips) XXX_Size() int { + return xxx_messageInfo_DeleteMessageTips.Size(m) +} +func (m *DeleteMessageTips) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteMessageTips.DiscardUnknown(m) } -func (x *DeleteMessageTips) GetOpUserID() string { - if x != nil { - return x.OpUserID +var xxx_messageInfo_DeleteMessageTips proto.InternalMessageInfo + +func (m *DeleteMessageTips) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *DeleteMessageTips) GetUserID() string { - if x != nil { - return x.UserID +func (m *DeleteMessageTips) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *DeleteMessageTips) GetSeqList() []uint32 { - if x != nil { - return x.SeqList +func (m *DeleteMessageTips) GetSeqList() []uint32 { + if m != nil { + return m.SeqList } return nil } -///cms +// /cms type RequestPagination struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - PageNumber int32 `protobuf:"varint,1,opt,name=pageNumber,proto3" json:"pageNumber,omitempty"` - ShowNumber int32 `protobuf:"varint,2,opt,name=showNumber,proto3" json:"showNumber,omitempty"` + PageNumber int32 `protobuf:"varint,1,opt,name=pageNumber" json:"pageNumber,omitempty"` + ShowNumber int32 `protobuf:"varint,2,opt,name=showNumber" json:"showNumber,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *RequestPagination) Reset() { - *x = RequestPagination{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[56] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RequestPagination) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RequestPagination) ProtoMessage() {} - -func (x *RequestPagination) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[56] - 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 RequestPagination.ProtoReflect.Descriptor instead. +func (m *RequestPagination) Reset() { *m = RequestPagination{} } +func (m *RequestPagination) String() string { return proto.CompactTextString(m) } +func (*RequestPagination) ProtoMessage() {} func (*RequestPagination) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{56} + return fileDescriptor_ws_9506eea4334b9b75, []int{56} +} +func (m *RequestPagination) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RequestPagination.Unmarshal(m, b) +} +func (m *RequestPagination) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RequestPagination.Marshal(b, m, deterministic) +} +func (dst *RequestPagination) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestPagination.Merge(dst, src) +} +func (m *RequestPagination) XXX_Size() int { + return xxx_messageInfo_RequestPagination.Size(m) +} +func (m *RequestPagination) XXX_DiscardUnknown() { + xxx_messageInfo_RequestPagination.DiscardUnknown(m) } -func (x *RequestPagination) GetPageNumber() int32 { - if x != nil { - return x.PageNumber +var xxx_messageInfo_RequestPagination proto.InternalMessageInfo + +func (m *RequestPagination) GetPageNumber() int32 { + if m != nil { + return m.PageNumber } return 0 } -func (x *RequestPagination) GetShowNumber() int32 { - if x != nil { - return x.ShowNumber +func (m *RequestPagination) GetShowNumber() int32 { + if m != nil { + return m.ShowNumber } return 0 } type ResponsePagination struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CurrentPage int32 `protobuf:"varint,5,opt,name=CurrentPage,proto3" json:"CurrentPage,omitempty"` - ShowNumber int32 `protobuf:"varint,6,opt,name=ShowNumber,proto3" json:"ShowNumber,omitempty"` + CurrentPage int32 `protobuf:"varint,5,opt,name=CurrentPage" json:"CurrentPage,omitempty"` + ShowNumber int32 `protobuf:"varint,6,opt,name=ShowNumber" json:"ShowNumber,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *ResponsePagination) Reset() { - *x = ResponsePagination{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ResponsePagination) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ResponsePagination) ProtoMessage() {} - -func (x *ResponsePagination) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[57] - 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 ResponsePagination.ProtoReflect.Descriptor instead. +func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } +func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } +func (*ResponsePagination) ProtoMessage() {} func (*ResponsePagination) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{57} + return fileDescriptor_ws_9506eea4334b9b75, []int{57} +} +func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) +} +func (m *ResponsePagination) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResponsePagination.Marshal(b, m, deterministic) +} +func (dst *ResponsePagination) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponsePagination.Merge(dst, src) +} +func (m *ResponsePagination) XXX_Size() int { + return xxx_messageInfo_ResponsePagination.Size(m) +} +func (m *ResponsePagination) XXX_DiscardUnknown() { + xxx_messageInfo_ResponsePagination.DiscardUnknown(m) } -func (x *ResponsePagination) GetCurrentPage() int32 { - if x != nil { - return x.CurrentPage +var xxx_messageInfo_ResponsePagination proto.InternalMessageInfo + +func (m *ResponsePagination) GetCurrentPage() int32 { + if m != nil { + return m.CurrentPage } return 0 } -func (x *ResponsePagination) GetShowNumber() int32 { - if x != nil { - return x.ShowNumber +func (m *ResponsePagination) GetShowNumber() int32 { + if m != nil { + return m.ShowNumber } return 0 } -///////////////////signal////////////// +// /////////////////signal////////////// type SignalReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Payload: + // Types that are valid to be assigned to Payload: // *SignalReq_Invite // *SignalReq_InviteInGroup // *SignalReq_Cancel // *SignalReq_Accept // *SignalReq_HungUp // *SignalReq_Reject - Payload isSignalReq_Payload `protobuf_oneof:"payload"` + // *SignalReq_GetRoomByGroupID + Payload isSignalReq_Payload `protobuf_oneof:"payload"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *SignalReq) Reset() { - *x = SignalReq{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SignalReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SignalReq) ProtoMessage() {} - -func (x *SignalReq) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[58] - 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 SignalReq.ProtoReflect.Descriptor instead. +func (m *SignalReq) Reset() { *m = SignalReq{} } +func (m *SignalReq) String() string { return proto.CompactTextString(m) } +func (*SignalReq) ProtoMessage() {} func (*SignalReq) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{58} + return fileDescriptor_ws_9506eea4334b9b75, []int{58} } +func (m *SignalReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalReq.Unmarshal(m, b) +} +func (m *SignalReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalReq.Marshal(b, m, deterministic) +} +func (dst *SignalReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalReq.Merge(dst, src) +} +func (m *SignalReq) XXX_Size() int { + return xxx_messageInfo_SignalReq.Size(m) +} +func (m *SignalReq) XXX_DiscardUnknown() { + xxx_messageInfo_SignalReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalReq proto.InternalMessageInfo + +type isSignalReq_Payload interface { + isSignalReq_Payload() +} + +type SignalReq_Invite struct { + Invite *SignalInviteReq `protobuf:"bytes,1,opt,name=invite,oneof"` +} +type SignalReq_InviteInGroup struct { + InviteInGroup *SignalInviteInGroupReq `protobuf:"bytes,2,opt,name=inviteInGroup,oneof"` +} +type SignalReq_Cancel struct { + Cancel *SignalCancelReq `protobuf:"bytes,3,opt,name=cancel,oneof"` +} +type SignalReq_Accept struct { + Accept *SignalAcceptReq `protobuf:"bytes,4,opt,name=accept,oneof"` +} +type SignalReq_HungUp struct { + HungUp *SignalHungUpReq `protobuf:"bytes,5,opt,name=hungUp,oneof"` +} +type SignalReq_Reject struct { + Reject *SignalRejectReq `protobuf:"bytes,6,opt,name=reject,oneof"` +} +type SignalReq_GetRoomByGroupID struct { + GetRoomByGroupID *SignalGetRoomByGroupIDReq `protobuf:"bytes,7,opt,name=GetRoomByGroupID,oneof"` +} + +func (*SignalReq_Invite) isSignalReq_Payload() {} +func (*SignalReq_InviteInGroup) isSignalReq_Payload() {} +func (*SignalReq_Cancel) isSignalReq_Payload() {} +func (*SignalReq_Accept) isSignalReq_Payload() {} +func (*SignalReq_HungUp) isSignalReq_Payload() {} +func (*SignalReq_Reject) isSignalReq_Payload() {} +func (*SignalReq_GetRoomByGroupID) isSignalReq_Payload() {} func (m *SignalReq) GetPayload() isSignalReq_Payload { if m != nil { @@ -4543,134 +4045,296 @@ func (m *SignalReq) GetPayload() isSignalReq_Payload { return nil } -func (x *SignalReq) GetInvite() *SignalInviteReq { - if x, ok := x.GetPayload().(*SignalReq_Invite); ok { +func (m *SignalReq) GetInvite() *SignalInviteReq { + if x, ok := m.GetPayload().(*SignalReq_Invite); ok { return x.Invite } return nil } -func (x *SignalReq) GetInviteInGroup() *SignalInviteInGroupReq { - if x, ok := x.GetPayload().(*SignalReq_InviteInGroup); ok { +func (m *SignalReq) GetInviteInGroup() *SignalInviteInGroupReq { + if x, ok := m.GetPayload().(*SignalReq_InviteInGroup); ok { return x.InviteInGroup } return nil } -func (x *SignalReq) GetCancel() *SignalCancelReq { - if x, ok := x.GetPayload().(*SignalReq_Cancel); ok { +func (m *SignalReq) GetCancel() *SignalCancelReq { + if x, ok := m.GetPayload().(*SignalReq_Cancel); ok { return x.Cancel } return nil } -func (x *SignalReq) GetAccept() *SignalAcceptReq { - if x, ok := x.GetPayload().(*SignalReq_Accept); ok { +func (m *SignalReq) GetAccept() *SignalAcceptReq { + if x, ok := m.GetPayload().(*SignalReq_Accept); ok { return x.Accept } return nil } -func (x *SignalReq) GetHungUp() *SignalHungUpReq { - if x, ok := x.GetPayload().(*SignalReq_HungUp); ok { +func (m *SignalReq) GetHungUp() *SignalHungUpReq { + if x, ok := m.GetPayload().(*SignalReq_HungUp); ok { return x.HungUp } return nil } -func (x *SignalReq) GetReject() *SignalRejectReq { - if x, ok := x.GetPayload().(*SignalReq_Reject); ok { +func (m *SignalReq) GetReject() *SignalRejectReq { + if x, ok := m.GetPayload().(*SignalReq_Reject); ok { return x.Reject } return nil } -type isSignalReq_Payload interface { - isSignalReq_Payload() +func (m *SignalReq) GetGetRoomByGroupID() *SignalGetRoomByGroupIDReq { + if x, ok := m.GetPayload().(*SignalReq_GetRoomByGroupID); ok { + return x.GetRoomByGroupID + } + return nil } -type SignalReq_Invite struct { - Invite *SignalInviteReq `protobuf:"bytes,1,opt,name=invite,proto3,oneof"` +// XXX_OneofFuncs is for the internal use of the proto package. +func (*SignalReq) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _SignalReq_OneofMarshaler, _SignalReq_OneofUnmarshaler, _SignalReq_OneofSizer, []interface{}{ + (*SignalReq_Invite)(nil), + (*SignalReq_InviteInGroup)(nil), + (*SignalReq_Cancel)(nil), + (*SignalReq_Accept)(nil), + (*SignalReq_HungUp)(nil), + (*SignalReq_Reject)(nil), + (*SignalReq_GetRoomByGroupID)(nil), + } } -type SignalReq_InviteInGroup struct { - InviteInGroup *SignalInviteInGroupReq `protobuf:"bytes,2,opt,name=inviteInGroup,proto3,oneof"` +func _SignalReq_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*SignalReq) + // payload + switch x := m.Payload.(type) { + case *SignalReq_Invite: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Invite); err != nil { + return err + } + case *SignalReq_InviteInGroup: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.InviteInGroup); err != nil { + return err + } + case *SignalReq_Cancel: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Cancel); err != nil { + return err + } + case *SignalReq_Accept: + b.EncodeVarint(4<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Accept); err != nil { + return err + } + case *SignalReq_HungUp: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.HungUp); err != nil { + return err + } + case *SignalReq_Reject: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Reject); err != nil { + return err + } + case *SignalReq_GetRoomByGroupID: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.GetRoomByGroupID); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("SignalReq.Payload has unexpected type %T", x) + } + return nil } -type SignalReq_Cancel struct { - Cancel *SignalCancelReq `protobuf:"bytes,3,opt,name=cancel,proto3,oneof"` +func _SignalReq_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*SignalReq) + switch tag { + case 1: // payload.invite + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalInviteReq) + err := b.DecodeMessage(msg) + m.Payload = &SignalReq_Invite{msg} + return true, err + case 2: // payload.inviteInGroup + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalInviteInGroupReq) + err := b.DecodeMessage(msg) + m.Payload = &SignalReq_InviteInGroup{msg} + return true, err + case 3: // payload.cancel + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalCancelReq) + err := b.DecodeMessage(msg) + m.Payload = &SignalReq_Cancel{msg} + return true, err + case 4: // payload.accept + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalAcceptReq) + err := b.DecodeMessage(msg) + m.Payload = &SignalReq_Accept{msg} + return true, err + case 5: // payload.hungUp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalHungUpReq) + err := b.DecodeMessage(msg) + m.Payload = &SignalReq_HungUp{msg} + return true, err + case 6: // payload.reject + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalRejectReq) + err := b.DecodeMessage(msg) + m.Payload = &SignalReq_Reject{msg} + return true, err + case 7: // payload.GetRoomByGroupID + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalGetRoomByGroupIDReq) + err := b.DecodeMessage(msg) + m.Payload = &SignalReq_GetRoomByGroupID{msg} + return true, err + default: + return false, nil + } } -type SignalReq_Accept struct { - Accept *SignalAcceptReq `protobuf:"bytes,4,opt,name=accept,proto3,oneof"` +func _SignalReq_OneofSizer(msg proto.Message) (n int) { + m := msg.(*SignalReq) + // payload + switch x := m.Payload.(type) { + case *SignalReq_Invite: + s := proto.Size(x.Invite) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalReq_InviteInGroup: + s := proto.Size(x.InviteInGroup) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalReq_Cancel: + s := proto.Size(x.Cancel) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalReq_Accept: + s := proto.Size(x.Accept) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalReq_HungUp: + s := proto.Size(x.HungUp) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalReq_Reject: + s := proto.Size(x.Reject) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalReq_GetRoomByGroupID: + s := proto.Size(x.GetRoomByGroupID) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n } -type SignalReq_HungUp struct { - HungUp *SignalHungUpReq `protobuf:"bytes,5,opt,name=hungUp,proto3,oneof"` -} - -type SignalReq_Reject struct { - Reject *SignalRejectReq `protobuf:"bytes,6,opt,name=reject,proto3,oneof"` -} - -func (*SignalReq_Invite) isSignalReq_Payload() {} - -func (*SignalReq_InviteInGroup) isSignalReq_Payload() {} - -func (*SignalReq_Cancel) isSignalReq_Payload() {} - -func (*SignalReq_Accept) isSignalReq_Payload() {} - -func (*SignalReq_HungUp) isSignalReq_Payload() {} - -func (*SignalReq_Reject) isSignalReq_Payload() {} - type SignalResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Payload: + // Types that are valid to be assigned to Payload: // *SignalResp_Invite // *SignalResp_InviteInGroup // *SignalResp_Cancel // *SignalResp_Accept // *SignalResp_HungUp // *SignalResp_Reject - Payload isSignalResp_Payload `protobuf_oneof:"payload"` + // *SignalResp_GetRoomByGroupID + Payload isSignalResp_Payload `protobuf_oneof:"payload"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *SignalResp) Reset() { - *x = SignalResp{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[59] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SignalResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SignalResp) ProtoMessage() {} - -func (x *SignalResp) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[59] - 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 SignalResp.ProtoReflect.Descriptor instead. +func (m *SignalResp) Reset() { *m = SignalResp{} } +func (m *SignalResp) String() string { return proto.CompactTextString(m) } +func (*SignalResp) ProtoMessage() {} func (*SignalResp) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{59} + return fileDescriptor_ws_9506eea4334b9b75, []int{59} } +func (m *SignalResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalResp.Unmarshal(m, b) +} +func (m *SignalResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalResp.Marshal(b, m, deterministic) +} +func (dst *SignalResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalResp.Merge(dst, src) +} +func (m *SignalResp) XXX_Size() int { + return xxx_messageInfo_SignalResp.Size(m) +} +func (m *SignalResp) XXX_DiscardUnknown() { + xxx_messageInfo_SignalResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalResp proto.InternalMessageInfo + +type isSignalResp_Payload interface { + isSignalResp_Payload() +} + +type SignalResp_Invite struct { + Invite *SignalInviteReply `protobuf:"bytes,1,opt,name=invite,oneof"` +} +type SignalResp_InviteInGroup struct { + InviteInGroup *SignalInviteInGroupReply `protobuf:"bytes,2,opt,name=inviteInGroup,oneof"` +} +type SignalResp_Cancel struct { + Cancel *SignalCancelReply `protobuf:"bytes,3,opt,name=cancel,oneof"` +} +type SignalResp_Accept struct { + Accept *SignalAcceptReply `protobuf:"bytes,4,opt,name=accept,oneof"` +} +type SignalResp_HungUp struct { + HungUp *SignalHungUpReply `protobuf:"bytes,5,opt,name=hungUp,oneof"` +} +type SignalResp_Reject struct { + Reject *SignalRejectReply `protobuf:"bytes,6,opt,name=reject,oneof"` +} +type SignalResp_GetRoomByGroupID struct { + GetRoomByGroupID *SignalGetRoomByGroupIDReply `protobuf:"bytes,7,opt,name=GetRoomByGroupID,oneof"` +} + +func (*SignalResp_Invite) isSignalResp_Payload() {} +func (*SignalResp_InviteInGroup) isSignalResp_Payload() {} +func (*SignalResp_Cancel) isSignalResp_Payload() {} +func (*SignalResp_Accept) isSignalResp_Payload() {} +func (*SignalResp_HungUp) isSignalResp_Payload() {} +func (*SignalResp_Reject) isSignalResp_Payload() {} +func (*SignalResp_GetRoomByGroupID) isSignalResp_Payload() {} func (m *SignalResp) GetPayload() isSignalResp_Payload { if m != nil { @@ -4679,3296 +4343,1562 @@ func (m *SignalResp) GetPayload() isSignalResp_Payload { return nil } -func (x *SignalResp) GetInvite() *SignalInviteReply { - if x, ok := x.GetPayload().(*SignalResp_Invite); ok { +func (m *SignalResp) GetInvite() *SignalInviteReply { + if x, ok := m.GetPayload().(*SignalResp_Invite); ok { return x.Invite } return nil } -func (x *SignalResp) GetInviteInGroup() *SignalInviteInGroupReply { - if x, ok := x.GetPayload().(*SignalResp_InviteInGroup); ok { +func (m *SignalResp) GetInviteInGroup() *SignalInviteInGroupReply { + if x, ok := m.GetPayload().(*SignalResp_InviteInGroup); ok { return x.InviteInGroup } return nil } -func (x *SignalResp) GetCancel() *SignalCancelReply { - if x, ok := x.GetPayload().(*SignalResp_Cancel); ok { +func (m *SignalResp) GetCancel() *SignalCancelReply { + if x, ok := m.GetPayload().(*SignalResp_Cancel); ok { return x.Cancel } return nil } -func (x *SignalResp) GetAccept() *SignalAcceptReply { - if x, ok := x.GetPayload().(*SignalResp_Accept); ok { +func (m *SignalResp) GetAccept() *SignalAcceptReply { + if x, ok := m.GetPayload().(*SignalResp_Accept); ok { return x.Accept } return nil } -func (x *SignalResp) GetHungUp() *SignalHungUpReply { - if x, ok := x.GetPayload().(*SignalResp_HungUp); ok { +func (m *SignalResp) GetHungUp() *SignalHungUpReply { + if x, ok := m.GetPayload().(*SignalResp_HungUp); ok { return x.HungUp } return nil } -func (x *SignalResp) GetReject() *SignalRejectReply { - if x, ok := x.GetPayload().(*SignalResp_Reject); ok { +func (m *SignalResp) GetReject() *SignalRejectReply { + if x, ok := m.GetPayload().(*SignalResp_Reject); ok { return x.Reject } return nil } -type isSignalResp_Payload interface { - isSignalResp_Payload() -} - -type SignalResp_Invite struct { - Invite *SignalInviteReply `protobuf:"bytes,1,opt,name=invite,proto3,oneof"` -} - -type SignalResp_InviteInGroup struct { - InviteInGroup *SignalInviteInGroupReply `protobuf:"bytes,2,opt,name=inviteInGroup,proto3,oneof"` -} - -type SignalResp_Cancel struct { - Cancel *SignalCancelReply `protobuf:"bytes,3,opt,name=cancel,proto3,oneof"` -} - -type SignalResp_Accept struct { - Accept *SignalAcceptReply `protobuf:"bytes,4,opt,name=accept,proto3,oneof"` -} - -type SignalResp_HungUp struct { - HungUp *SignalHungUpReply `protobuf:"bytes,5,opt,name=hungUp,proto3,oneof"` -} - -type SignalResp_Reject struct { - Reject *SignalRejectReply `protobuf:"bytes,6,opt,name=reject,proto3,oneof"` -} - -func (*SignalResp_Invite) isSignalResp_Payload() {} - -func (*SignalResp_InviteInGroup) isSignalResp_Payload() {} - -func (*SignalResp_Cancel) isSignalResp_Payload() {} - -func (*SignalResp_Accept) isSignalResp_Payload() {} - -func (*SignalResp_HungUp) isSignalResp_Payload() {} - -func (*SignalResp_Reject) isSignalResp_Payload() {} - -type InvitationInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - InviterUserID string `protobuf:"bytes,1,opt,name=inviterUserID,proto3" json:"inviterUserID,omitempty"` - InviteeUserIDList []string `protobuf:"bytes,2,rep,name=inviteeUserIDList,proto3" json:"inviteeUserIDList,omitempty"` - CustomData string `protobuf:"bytes,3,opt,name=customData,proto3" json:"customData,omitempty"` - GroupID string `protobuf:"bytes,4,opt,name=groupID,proto3" json:"groupID,omitempty"` - RoomID string `protobuf:"bytes,5,opt,name=roomID,proto3" json:"roomID,omitempty"` - Timeout int32 `protobuf:"varint,6,opt,name=timeout,proto3" json:"timeout,omitempty"` - MediaType string `protobuf:"bytes,7,opt,name=mediaType,proto3" json:"mediaType,omitempty"` - PlatformID int32 `protobuf:"varint,8,opt,name=platformID,proto3" json:"platformID,omitempty"` - SessionType int32 `protobuf:"varint,9,opt,name=sessionType,proto3" json:"sessionType,omitempty"` - InitiateTime int32 `protobuf:"varint,10,opt,name=initiateTime,proto3" json:"initiateTime,omitempty"` -} - -func (x *InvitationInfo) Reset() { - *x = InvitationInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *InvitationInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*InvitationInfo) ProtoMessage() {} - -func (x *InvitationInfo) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[60] - 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 InvitationInfo.ProtoReflect.Descriptor instead. -func (*InvitationInfo) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{60} -} - -func (x *InvitationInfo) GetInviterUserID() string { - if x != nil { - return x.InviterUserID - } - return "" -} - -func (x *InvitationInfo) GetInviteeUserIDList() []string { - if x != nil { - return x.InviteeUserIDList +func (m *SignalResp) GetGetRoomByGroupID() *SignalGetRoomByGroupIDReply { + if x, ok := m.GetPayload().(*SignalResp_GetRoomByGroupID); ok { + return x.GetRoomByGroupID } return nil } -func (x *InvitationInfo) GetCustomData() string { - if x != nil { - return x.CustomData - } - return "" -} - -func (x *InvitationInfo) GetGroupID() string { - if x != nil { - return x.GroupID - } - return "" -} - -func (x *InvitationInfo) GetRoomID() string { - if x != nil { - return x.RoomID - } - return "" -} - -func (x *InvitationInfo) GetTimeout() int32 { - if x != nil { - return x.Timeout - } - return 0 -} - -func (x *InvitationInfo) GetMediaType() string { - if x != nil { - return x.MediaType - } - return "" -} - -func (x *InvitationInfo) GetPlatformID() int32 { - if x != nil { - return x.PlatformID - } - return 0 -} - -func (x *InvitationInfo) GetSessionType() int32 { - if x != nil { - return x.SessionType - } - return 0 -} - -func (x *InvitationInfo) GetInitiateTime() int32 { - if x != nil { - return x.InitiateTime - } - return 0 -} - -type ParticipantMetaData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupInfo *GroupInfo `protobuf:"bytes,1,opt,name=groupInfo,proto3" json:"groupInfo,omitempty"` - GroupMemberInfo *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=groupMemberInfo,proto3" json:"groupMemberInfo,omitempty"` - UserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=userInfo,proto3" json:"userInfo,omitempty"` -} - -func (x *ParticipantMetaData) Reset() { - *x = ParticipantMetaData{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[61] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ParticipantMetaData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ParticipantMetaData) ProtoMessage() {} - -func (x *ParticipantMetaData) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[61] - 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 ParticipantMetaData.ProtoReflect.Descriptor instead. -func (*ParticipantMetaData) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{61} -} - -func (x *ParticipantMetaData) GetGroupInfo() *GroupInfo { - if x != nil { - return x.GroupInfo - } - return nil -} - -func (x *ParticipantMetaData) GetGroupMemberInfo() *GroupMemberFullInfo { - if x != nil { - return x.GroupMemberInfo - } - return nil -} - -func (x *ParticipantMetaData) GetUserInfo() *PublicUserInfo { - if x != nil { - return x.UserInfo - } - return nil -} - -type SignalInviteReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` - Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` - Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"` -} - -func (x *SignalInviteReq) Reset() { - *x = SignalInviteReq{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[62] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SignalInviteReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SignalInviteReq) ProtoMessage() {} - -func (x *SignalInviteReq) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[62] - 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 SignalInviteReq.ProtoReflect.Descriptor instead. -func (*SignalInviteReq) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{62} -} - -func (x *SignalInviteReq) GetOpUserID() string { - if x != nil { - return x.OpUserID - } - return "" -} - -func (x *SignalInviteReq) GetInvitation() *InvitationInfo { - if x != nil { - return x.Invitation - } - return nil -} - -func (x *SignalInviteReq) GetOfflinePushInfo() *OfflinePushInfo { - if x != nil { - return x.OfflinePushInfo - } - return nil -} - -func (x *SignalInviteReq) GetParticipant() *ParticipantMetaData { - if x != nil { - return x.Participant - } - return nil -} - -type SignalInviteReply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` - RoomID string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"` - LiveURL string `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"` -} - -func (x *SignalInviteReply) Reset() { - *x = SignalInviteReply{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[63] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SignalInviteReply) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SignalInviteReply) ProtoMessage() {} - -func (x *SignalInviteReply) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[63] - 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 SignalInviteReply.ProtoReflect.Descriptor instead. -func (*SignalInviteReply) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{63} -} - -func (x *SignalInviteReply) GetToken() string { - if x != nil { - return x.Token - } - return "" -} - -func (x *SignalInviteReply) GetRoomID() string { - if x != nil { - return x.RoomID - } - return "" -} - -func (x *SignalInviteReply) GetLiveURL() string { - if x != nil { - return x.LiveURL - } - return "" -} - -type SignalInviteInGroupReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` - Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` - Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"` -} - -func (x *SignalInviteInGroupReq) Reset() { - *x = SignalInviteInGroupReq{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[64] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SignalInviteInGroupReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SignalInviteInGroupReq) ProtoMessage() {} - -func (x *SignalInviteInGroupReq) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[64] - 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 SignalInviteInGroupReq.ProtoReflect.Descriptor instead. -func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{64} -} - -func (x *SignalInviteInGroupReq) GetOpUserID() string { - if x != nil { - return x.OpUserID - } - return "" -} - -func (x *SignalInviteInGroupReq) GetInvitation() *InvitationInfo { - if x != nil { - return x.Invitation - } - return nil -} - -func (x *SignalInviteInGroupReq) GetOfflinePushInfo() *OfflinePushInfo { - if x != nil { - return x.OfflinePushInfo - } - return nil -} - -func (x *SignalInviteInGroupReq) GetParticipant() *ParticipantMetaData { - if x != nil { - return x.Participant - } - return nil -} - -type SignalInviteInGroupReply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` - RoomID string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"` - LiveURL string `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"` -} - -func (x *SignalInviteInGroupReply) Reset() { - *x = SignalInviteInGroupReply{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[65] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SignalInviteInGroupReply) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SignalInviteInGroupReply) ProtoMessage() {} - -func (x *SignalInviteInGroupReply) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[65] - 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 SignalInviteInGroupReply.ProtoReflect.Descriptor instead. -func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{65} -} - -func (x *SignalInviteInGroupReply) GetToken() string { - if x != nil { - return x.Token - } - return "" -} - -func (x *SignalInviteInGroupReply) GetRoomID() string { - if x != nil { - return x.RoomID - } - return "" -} - -func (x *SignalInviteInGroupReply) GetLiveURL() string { - if x != nil { - return x.LiveURL - } - return "" -} - -type SignalCancelReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` - Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` - Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"` -} - -func (x *SignalCancelReq) Reset() { - *x = SignalCancelReq{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[66] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SignalCancelReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SignalCancelReq) ProtoMessage() {} - -func (x *SignalCancelReq) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[66] - 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 SignalCancelReq.ProtoReflect.Descriptor instead. -func (*SignalCancelReq) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{66} -} - -func (x *SignalCancelReq) GetOpUserID() string { - if x != nil { - return x.OpUserID - } - return "" -} - -func (x *SignalCancelReq) GetInvitation() *InvitationInfo { - if x != nil { - return x.Invitation - } - return nil -} - -func (x *SignalCancelReq) GetOfflinePushInfo() *OfflinePushInfo { - if x != nil { - return x.OfflinePushInfo - } - return nil -} - -func (x *SignalCancelReq) GetParticipant() *ParticipantMetaData { - if x != nil { - return x.Participant - } - return nil -} - -type SignalCancelReply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *SignalCancelReply) Reset() { - *x = SignalCancelReply{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[67] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SignalCancelReply) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SignalCancelReply) ProtoMessage() {} - -func (x *SignalCancelReply) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[67] - 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 SignalCancelReply.ProtoReflect.Descriptor instead. -func (*SignalCancelReply) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{67} -} - -type SignalAcceptReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` - Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` - Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"` - OpUserPlatformID int32 `protobuf:"varint,5,opt,name=opUserPlatformID,proto3" json:"opUserPlatformID,omitempty"` -} - -func (x *SignalAcceptReq) Reset() { - *x = SignalAcceptReq{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[68] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SignalAcceptReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SignalAcceptReq) ProtoMessage() {} - -func (x *SignalAcceptReq) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[68] - 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 SignalAcceptReq.ProtoReflect.Descriptor instead. -func (*SignalAcceptReq) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{68} -} - -func (x *SignalAcceptReq) GetOpUserID() string { - if x != nil { - return x.OpUserID - } - return "" -} - -func (x *SignalAcceptReq) GetInvitation() *InvitationInfo { - if x != nil { - return x.Invitation - } - return nil -} - -func (x *SignalAcceptReq) GetOfflinePushInfo() *OfflinePushInfo { - if x != nil { - return x.OfflinePushInfo - } - return nil -} - -func (x *SignalAcceptReq) GetParticipant() *ParticipantMetaData { - if x != nil { - return x.Participant - } - return nil -} - -func (x *SignalAcceptReq) GetOpUserPlatformID() int32 { - if x != nil { - return x.OpUserPlatformID - } - return 0 -} - -type SignalAcceptReply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` - RoomID string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"` - LiveURL string `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"` -} - -func (x *SignalAcceptReply) Reset() { - *x = SignalAcceptReply{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[69] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SignalAcceptReply) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SignalAcceptReply) ProtoMessage() {} - -func (x *SignalAcceptReply) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[69] - 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 SignalAcceptReply.ProtoReflect.Descriptor instead. -func (*SignalAcceptReply) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{69} -} - -func (x *SignalAcceptReply) GetToken() string { - if x != nil { - return x.Token - } - return "" -} - -func (x *SignalAcceptReply) GetRoomID() string { - if x != nil { - return x.RoomID - } - return "" -} - -func (x *SignalAcceptReply) GetLiveURL() string { - if x != nil { - return x.LiveURL - } - return "" -} - -type SignalHungUpReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` - Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` -} - -func (x *SignalHungUpReq) Reset() { - *x = SignalHungUpReq{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[70] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SignalHungUpReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SignalHungUpReq) ProtoMessage() {} - -func (x *SignalHungUpReq) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[70] - 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 SignalHungUpReq.ProtoReflect.Descriptor instead. -func (*SignalHungUpReq) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{70} -} - -func (x *SignalHungUpReq) GetOpUserID() string { - if x != nil { - return x.OpUserID - } - return "" -} - -func (x *SignalHungUpReq) GetInvitation() *InvitationInfo { - if x != nil { - return x.Invitation - } - return nil -} - -func (x *SignalHungUpReq) GetOfflinePushInfo() *OfflinePushInfo { - if x != nil { - return x.OfflinePushInfo - } - return nil -} - -type SignalHungUpReply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *SignalHungUpReply) Reset() { - *x = SignalHungUpReply{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[71] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SignalHungUpReply) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SignalHungUpReply) ProtoMessage() {} - -func (x *SignalHungUpReply) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[71] - 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 SignalHungUpReply.ProtoReflect.Descriptor instead. -func (*SignalHungUpReply) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{71} -} - -type SignalRejectReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` - Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` - Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"` - OpUserPlatformID int32 `protobuf:"varint,5,opt,name=opUserPlatformID,proto3" json:"opUserPlatformID,omitempty"` -} - -func (x *SignalRejectReq) Reset() { - *x = SignalRejectReq{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[72] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SignalRejectReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SignalRejectReq) ProtoMessage() {} - -func (x *SignalRejectReq) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[72] - 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 SignalRejectReq.ProtoReflect.Descriptor instead. -func (*SignalRejectReq) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{72} -} - -func (x *SignalRejectReq) GetOpUserID() string { - if x != nil { - return x.OpUserID - } - return "" -} - -func (x *SignalRejectReq) GetInvitation() *InvitationInfo { - if x != nil { - return x.Invitation - } - return nil -} - -func (x *SignalRejectReq) GetOfflinePushInfo() *OfflinePushInfo { - if x != nil { - return x.OfflinePushInfo - } - return nil -} - -func (x *SignalRejectReq) GetParticipant() *ParticipantMetaData { - if x != nil { - return x.Participant - } - return nil -} - -func (x *SignalRejectReq) GetOpUserPlatformID() int32 { - if x != nil { - return x.OpUserPlatformID - } - return 0 -} - -type SignalRejectReply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *SignalRejectReply) Reset() { - *x = SignalRejectReply{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[73] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SignalRejectReply) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SignalRejectReply) ProtoMessage() {} - -func (x *SignalRejectReply) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[73] - 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 SignalRejectReply.ProtoReflect.Descriptor instead. -func (*SignalRejectReply) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{73} -} - -type DelMsgListReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"` - SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList,proto3" json:"seqList,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=operationID,proto3" json:"operationID,omitempty"` -} - -func (x *DelMsgListReq) Reset() { - *x = DelMsgListReq{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[74] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DelMsgListReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DelMsgListReq) ProtoMessage() {} - -func (x *DelMsgListReq) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[74] - 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 DelMsgListReq.ProtoReflect.Descriptor instead. -func (*DelMsgListReq) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{74} -} - -func (x *DelMsgListReq) GetOpUserID() string { - if x != nil { - return x.OpUserID - } - return "" -} - -func (x *DelMsgListReq) GetUserID() string { - if x != nil { - return x.UserID - } - return "" -} - -func (x *DelMsgListReq) GetSeqList() []uint32 { - if x != nil { - return x.SeqList - } - return nil -} - -func (x *DelMsgListReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type DelMsgListResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=errCode,proto3" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg,omitempty"` -} - -func (x *DelMsgListResp) Reset() { - *x = DelMsgListResp{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[75] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DelMsgListResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DelMsgListResp) ProtoMessage() {} - -func (x *DelMsgListResp) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[75] - 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 DelMsgListResp.ProtoReflect.Descriptor instead. -func (*DelMsgListResp) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{75} -} - -func (x *DelMsgListResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode - } - return 0 -} - -func (x *DelMsgListResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg - } - return "" -} - -var File_sdk_ws_ws_proto protoreflect.FileDescriptor - -var file_sdk_ws_ws_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x11, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x27, 0x4f, 0x70, 0x65, 0x6e, 0x5f, 0x49, 0x4d, 0x2f, 0x70, 0x6b, - 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x2f, 0x77, - 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdf, 0x04, - 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, - 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, - 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x10, 0x6e, 0x65, 0x65, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x2e, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, - 0x94, 0x03, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x6f, 0x72, - 0x53, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, - 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x0e, 0x0a, - 0x02, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x47, 0x0a, - 0x10, 0x6e, 0x65, 0x65, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x6c, 0x6f, 0x6f, - 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x49, 0x0a, 0x11, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x22, 0xff, 0x02, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, - 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, - 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, - 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, - 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, - 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, - 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, - 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6a, 0x6f, - 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, - 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x86, 0x01, 0x0a, 0x0e, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, - 0x78, 0x22, 0x8e, 0x04, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, - 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x16, 0x0a, 0x06, - 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, - 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4c, 0x6f, 0x67, 0x69, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4c, 0x6f, 0x67, 0x69, - 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, - 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, - 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2a, - 0x0a, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, - 0x70, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, - 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x64, 0x65, 0x22, 0xf9, 0x01, 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x66, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x66, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x64, 0x64, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, - 0x0a, 0x02, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xec, - 0x01, 0x0a, 0x09, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x47, - 0x0a, 0x0d, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x64, 0x64, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, - 0x02, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x97, 0x03, - 0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, - 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, - 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x65, 0x71, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, - 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, - 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, - 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0xdb, 0x03, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, - 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, - 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x6f, - 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, - 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, - 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, - 0x6f, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x74, 0x6f, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x6f, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x74, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x47, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x6f, 0x47, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, - 0x4d, 0x73, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, - 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, - 0x65, 0x4d, 0x73, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xb2, 0x02, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, - 0x55, 0x52, 0x4c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, - 0x52, 0x4c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0e, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x75, 0x62, 0x44, - 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, - 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xac, 0x02, 0x0a, 0x10, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x67, 0x6c, 0x69, 0x73, - 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, - 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x69, - 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xc0, 0x01, 0x0a, 0x10, 0x44, 0x65, - 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, - 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, - 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, - 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, - 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xb8, 0x01, 0x0a, - 0x14, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x10, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xbc, 0x01, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x10, - 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x10, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x57, 0x0a, - 0x14, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x52, 0x14, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xac, 0x02, 0x0a, 0x17, 0x50, 0x75, 0x6c, 0x6c, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, - 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x60, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, - 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, - 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, - 0x71, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x5b, 0x0a, 0x11, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x23, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x0b, 0x4d, 0x73, - 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0b, 0x6d, 0x73, 0x67, - 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x44, - 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xd0, 0x02, 0x0a, 0x18, 0x50, 0x75, 0x6c, 0x6c, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x6d, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x41, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, - 0x61, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x63, 0x0a, 0x15, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, - 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x70, 0x0a, 0x12, 0x47, 0x65, - 0x74, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, 0x65, 0x71, - 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x3e, 0x0a, 0x0c, - 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, - 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61, - 0x78, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x22, 0xcb, 0x02, 0x0a, - 0x13, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, - 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, - 0x6e, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x6b, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x3d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, - 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, - 0x53, 0x65, 0x71, 0x1a, 0x65, 0x0a, 0x16, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x41, - 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x71, 0x0a, 0x0f, 0x55, 0x73, - 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, - 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb6, 0x06, - 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, - 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, - 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x73, 0x67, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, - 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, - 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x20, 0x0a, - 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x73, - 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, - 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x41, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, - 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, - 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x44, 0x61, - 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, - 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x95, 0x01, 0x0a, 0x0f, 0x4f, 0x66, 0x66, 0x6c, 0x69, - 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x64, 0x65, 0x73, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x4f, 0x53, 0x50, 0x75, 0x73, 0x68, 0x53, - 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x4f, 0x53, 0x50, - 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x4f, 0x53, 0x42, - 0x61, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x64, - 0x0a, 0x08, 0x54, 0x69, 0x70, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x69, 0x70, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x54, 0x69, 0x70, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x22, 0xc4, 0x02, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, - 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, - 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x46, 0x0a, - 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x0e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x10, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x74, 0x54, 0x69, 0x70, 0x73, - 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x75, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x08, 0x6d, 0x75, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x05, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, - 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x3f, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x22, 0xae, 0x01, 0x0a, 0x0e, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x51, 0x75, 0x69, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, - 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x42, 0x0a, 0x08, 0x71, 0x75, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x71, 0x75, 0x69, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x1c, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0xb0, - 0x01, 0x0a, 0x1c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, - 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, - 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, - 0x67, 0x22, 0x83, 0x02, 0x0a, 0x19, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, - 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, - 0x73, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, - 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x4b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x4e, 0x0a, 0x0e, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x0e, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x11, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x50, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb5, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x48, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x65, - 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x22, 0xae, 0x01, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, - 0x73, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, - 0x65, 0x22, 0x9a, 0x02, 0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, - 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, - 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, - 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x09, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, - 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0c, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xfc, - 0x01, 0x0a, 0x1a, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, - 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x64, - 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x22, 0xaa, 0x01, - 0x0a, 0x0e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, - 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, - 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x14, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x54, - 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xfc, 0x01, - 0x0a, 0x16, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x53, 0x65, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, - 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x22, 0x74, 0x0a, 0x17, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x22, 0x6b, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, - 0x4a, 0x0a, 0x0c, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x5c, 0x0a, 0x15, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, - 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, - 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x82, 0x01, 0x0a, 0x1d, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, - 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0x82, - 0x01, 0x0a, 0x1d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, - 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, - 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x4d, 0x73, 0x67, 0x22, 0xa9, 0x01, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x64, - 0x64, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x35, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x24, - 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x22, - 0x58, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, - 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, - 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x55, 0x0a, 0x0e, 0x42, 0x6c, 0x61, - 0x63, 0x6b, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, - 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x22, 0x57, 0x0a, 0x10, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, - 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, - 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x5c, 0x0a, 0x15, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x69, - 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, - 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, - 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x60, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x70, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6a, 0x0a, 0x1a, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x22, 0x61, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x69, 0x70, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, - 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, - 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x53, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x56, 0x0a, 0x12, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x22, 0x9f, 0x03, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, - 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x12, 0x51, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, - 0x70, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x12, - 0x3c, 0x0a, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, - 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x12, 0x3c, 0x0a, - 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x71, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xac, 0x03, 0x0a, 0x0a, 0x53, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x69, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x53, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, - 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x06, 0x61, 0x63, - 0x63, 0x65, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x68, 0x75, - 0x6e, 0x67, 0x55, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x48, 0x00, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x72, 0x65, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xd4, 0x02, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2c, - 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, - 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, - 0x69, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe2, 0x01, 0x0a, - 0x13, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x50, 0x0a, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x22, 0x88, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, - 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x5b, 0x0a, 0x11, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, - 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0x8f, 0x02, 0x0a, 0x16, 0x53, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, - 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x62, 0x0a, 0x18, 0x53, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, - 0x88, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, - 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, - 0xb4, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, - 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, - 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x70, - 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x22, 0x5b, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, - 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, - 0x55, 0x52, 0x4c, 0x22, 0xbe, 0x01, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, - 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, - 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, - 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0xb4, 0x02, 0x0a, 0x0f, 0x53, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, - 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0f, - 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, - 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, - 0x70, 0x61, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, - 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, - 0x22, 0x13, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x7f, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, - 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x71, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x42, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x4d, 0x73, 0x67, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x42, 0x1c, 0x5a, 0x1a, 0x2e, 0x2f, - 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_sdk_ws_ws_proto_rawDescOnce sync.Once - file_sdk_ws_ws_proto_rawDescData = file_sdk_ws_ws_proto_rawDesc -) - -func file_sdk_ws_ws_proto_rawDescGZIP() []byte { - file_sdk_ws_ws_proto_rawDescOnce.Do(func() { - file_sdk_ws_ws_proto_rawDescData = protoimpl.X.CompressGZIP(file_sdk_ws_ws_proto_rawDescData) - }) - return file_sdk_ws_ws_proto_rawDescData -} - -var file_sdk_ws_ws_proto_msgTypes = make([]protoimpl.MessageInfo, 80) -var file_sdk_ws_ws_proto_goTypes = []interface{}{ - (*GroupInfo)(nil), // 0: server_api_params.GroupInfo - (*GroupInfoForSet)(nil), // 1: server_api_params.GroupInfoForSet - (*GroupMemberFullInfo)(nil), // 2: server_api_params.GroupMemberFullInfo - (*PublicUserInfo)(nil), // 3: server_api_params.PublicUserInfo - (*UserInfo)(nil), // 4: server_api_params.UserInfo - (*FriendInfo)(nil), // 5: server_api_params.FriendInfo - (*BlackInfo)(nil), // 6: server_api_params.BlackInfo - (*GroupRequest)(nil), // 7: server_api_params.GroupRequest - (*FriendRequest)(nil), // 8: server_api_params.FriendRequest - (*Department)(nil), // 9: server_api_params.Department - (*OrganizationUser)(nil), // 10: server_api_params.OrganizationUser - (*DepartmentMember)(nil), // 11: server_api_params.DepartmentMember - (*UserDepartmentMember)(nil), // 12: server_api_params.UserDepartmentMember - (*UserInDepartment)(nil), // 13: server_api_params.UserInDepartment - (*PullMessageBySeqListReq)(nil), // 14: server_api_params.PullMessageBySeqListReq - (*SeqList)(nil), // 15: server_api_params.seqList - (*MsgDataList)(nil), // 16: server_api_params.MsgDataList - (*PullMessageBySeqListResp)(nil), // 17: server_api_params.PullMessageBySeqListResp - (*GetMaxAndMinSeqReq)(nil), // 18: server_api_params.GetMaxAndMinSeqReq - (*MaxAndMinSeq)(nil), // 19: server_api_params.MaxAndMinSeq - (*GetMaxAndMinSeqResp)(nil), // 20: server_api_params.GetMaxAndMinSeqResp - (*UserSendMsgResp)(nil), // 21: server_api_params.UserSendMsgResp - (*MsgData)(nil), // 22: server_api_params.MsgData - (*OfflinePushInfo)(nil), // 23: server_api_params.OfflinePushInfo - (*TipsComm)(nil), // 24: server_api_params.TipsComm - (*GroupCreatedTips)(nil), // 25: server_api_params.GroupCreatedTips - (*GroupInfoSetTips)(nil), // 26: server_api_params.GroupInfoSetTips - (*JoinGroupApplicationTips)(nil), // 27: server_api_params.JoinGroupApplicationTips - (*MemberQuitTips)(nil), // 28: server_api_params.MemberQuitTips - (*GroupApplicationAcceptedTips)(nil), // 29: server_api_params.GroupApplicationAcceptedTips - (*GroupApplicationRejectedTips)(nil), // 30: server_api_params.GroupApplicationRejectedTips - (*GroupOwnerTransferredTips)(nil), // 31: server_api_params.GroupOwnerTransferredTips - (*MemberKickedTips)(nil), // 32: server_api_params.MemberKickedTips - (*MemberInvitedTips)(nil), // 33: server_api_params.MemberInvitedTips - (*MemberEnterTips)(nil), // 34: server_api_params.MemberEnterTips - (*GroupDismissedTips)(nil), // 35: server_api_params.GroupDismissedTips - (*GroupMemberMutedTips)(nil), // 36: server_api_params.GroupMemberMutedTips - (*GroupMemberCancelMutedTips)(nil), // 37: server_api_params.GroupMemberCancelMutedTips - (*GroupMutedTips)(nil), // 38: server_api_params.GroupMutedTips - (*GroupCancelMutedTips)(nil), // 39: server_api_params.GroupCancelMutedTips - (*GroupMemberInfoSetTips)(nil), // 40: server_api_params.GroupMemberInfoSetTips - (*OrganizationChangedTips)(nil), // 41: server_api_params.OrganizationChangedTips - (*FriendApplication)(nil), // 42: server_api_params.FriendApplication - (*FromToUserID)(nil), // 43: server_api_params.FromToUserID - (*FriendApplicationTips)(nil), // 44: server_api_params.FriendApplicationTips - (*FriendApplicationApprovedTips)(nil), // 45: server_api_params.FriendApplicationApprovedTips - (*FriendApplicationRejectedTips)(nil), // 46: server_api_params.FriendApplicationRejectedTips - (*FriendAddedTips)(nil), // 47: server_api_params.FriendAddedTips - (*FriendDeletedTips)(nil), // 48: server_api_params.FriendDeletedTips - (*BlackAddedTips)(nil), // 49: server_api_params.BlackAddedTips - (*BlackDeletedTips)(nil), // 50: server_api_params.BlackDeletedTips - (*FriendInfoChangedTips)(nil), // 51: server_api_params.FriendInfoChangedTips - (*UserInfoUpdatedTips)(nil), // 52: server_api_params.UserInfoUpdatedTips - (*ConversationUpdateTips)(nil), // 53: server_api_params.ConversationUpdateTips - (*ConversationSetPrivateTips)(nil), // 54: server_api_params.ConversationSetPrivateTips - (*DeleteMessageTips)(nil), // 55: server_api_params.DeleteMessageTips - (*RequestPagination)(nil), // 56: server_api_params.RequestPagination - (*ResponsePagination)(nil), // 57: server_api_params.ResponsePagination - (*SignalReq)(nil), // 58: server_api_params.SignalReq - (*SignalResp)(nil), // 59: server_api_params.SignalResp - (*InvitationInfo)(nil), // 60: server_api_params.InvitationInfo - (*ParticipantMetaData)(nil), // 61: server_api_params.ParticipantMetaData - (*SignalInviteReq)(nil), // 62: server_api_params.SignalInviteReq - (*SignalInviteReply)(nil), // 63: server_api_params.SignalInviteReply - (*SignalInviteInGroupReq)(nil), // 64: server_api_params.SignalInviteInGroupReq - (*SignalInviteInGroupReply)(nil), // 65: server_api_params.SignalInviteInGroupReply - (*SignalCancelReq)(nil), // 66: server_api_params.SignalCancelReq - (*SignalCancelReply)(nil), // 67: server_api_params.SignalCancelReply - (*SignalAcceptReq)(nil), // 68: server_api_params.SignalAcceptReq - (*SignalAcceptReply)(nil), // 69: server_api_params.SignalAcceptReply - (*SignalHungUpReq)(nil), // 70: server_api_params.SignalHungUpReq - (*SignalHungUpReply)(nil), // 71: server_api_params.SignalHungUpReply - (*SignalRejectReq)(nil), // 72: server_api_params.SignalRejectReq - (*SignalRejectReply)(nil), // 73: server_api_params.SignalRejectReply - (*DelMsgListReq)(nil), // 74: server_api_params.DelMsgListReq - (*DelMsgListResp)(nil), // 75: server_api_params.DelMsgListResp - nil, // 76: server_api_params.PullMessageBySeqListReq.GroupSeqListEntry - nil, // 77: server_api_params.PullMessageBySeqListResp.GroupMsgDataListEntry - nil, // 78: server_api_params.GetMaxAndMinSeqResp.GroupMaxAndMinSeqEntry - nil, // 79: server_api_params.MsgData.OptionsEntry - (*wrapperspb.Int32Value)(nil), // 80: google.protobuf.Int32Value -} -var file_sdk_ws_ws_proto_depIdxs = []int32{ - 80, // 0: server_api_params.GroupInfoForSet.needVerification:type_name -> google.protobuf.Int32Value - 80, // 1: server_api_params.GroupInfoForSet.lookMemberInfo:type_name -> google.protobuf.Int32Value - 80, // 2: server_api_params.GroupInfoForSet.applyMemberFriend:type_name -> google.protobuf.Int32Value - 4, // 3: server_api_params.FriendInfo.friendUser:type_name -> server_api_params.UserInfo - 3, // 4: server_api_params.BlackInfo.blackUserInfo:type_name -> server_api_params.PublicUserInfo - 3, // 5: server_api_params.GroupRequest.userInfo:type_name -> server_api_params.PublicUserInfo - 0, // 6: server_api_params.GroupRequest.groupInfo:type_name -> server_api_params.GroupInfo - 10, // 7: server_api_params.UserDepartmentMember.organizationUser:type_name -> server_api_params.OrganizationUser - 11, // 8: server_api_params.UserDepartmentMember.departmentMember:type_name -> server_api_params.DepartmentMember - 10, // 9: server_api_params.UserInDepartment.organizationUser:type_name -> server_api_params.OrganizationUser - 11, // 10: server_api_params.UserInDepartment.departmentMemberList:type_name -> server_api_params.DepartmentMember - 76, // 11: server_api_params.PullMessageBySeqListReq.groupSeqList:type_name -> server_api_params.PullMessageBySeqListReq.GroupSeqListEntry - 22, // 12: server_api_params.MsgDataList.msgDataList:type_name -> server_api_params.MsgData - 22, // 13: server_api_params.PullMessageBySeqListResp.list:type_name -> server_api_params.MsgData - 77, // 14: server_api_params.PullMessageBySeqListResp.groupMsgDataList:type_name -> server_api_params.PullMessageBySeqListResp.GroupMsgDataListEntry - 78, // 15: server_api_params.GetMaxAndMinSeqResp.groupMaxAndMinSeq:type_name -> server_api_params.GetMaxAndMinSeqResp.GroupMaxAndMinSeqEntry - 79, // 16: server_api_params.MsgData.options:type_name -> server_api_params.MsgData.OptionsEntry - 23, // 17: server_api_params.MsgData.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo - 0, // 18: server_api_params.GroupCreatedTips.group:type_name -> server_api_params.GroupInfo - 2, // 19: server_api_params.GroupCreatedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 2, // 20: server_api_params.GroupCreatedTips.memberList:type_name -> server_api_params.GroupMemberFullInfo - 2, // 21: server_api_params.GroupCreatedTips.groupOwnerUser:type_name -> server_api_params.GroupMemberFullInfo - 2, // 22: server_api_params.GroupInfoSetTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 0, // 23: server_api_params.GroupInfoSetTips.group:type_name -> server_api_params.GroupInfo - 0, // 24: server_api_params.JoinGroupApplicationTips.group:type_name -> server_api_params.GroupInfo - 3, // 25: server_api_params.JoinGroupApplicationTips.applicant:type_name -> server_api_params.PublicUserInfo - 0, // 26: server_api_params.MemberQuitTips.group:type_name -> server_api_params.GroupInfo - 2, // 27: server_api_params.MemberQuitTips.quitUser:type_name -> server_api_params.GroupMemberFullInfo - 0, // 28: server_api_params.GroupApplicationAcceptedTips.group:type_name -> server_api_params.GroupInfo - 2, // 29: server_api_params.GroupApplicationAcceptedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 0, // 30: server_api_params.GroupApplicationRejectedTips.group:type_name -> server_api_params.GroupInfo - 2, // 31: server_api_params.GroupApplicationRejectedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 0, // 32: server_api_params.GroupOwnerTransferredTips.group:type_name -> server_api_params.GroupInfo - 2, // 33: server_api_params.GroupOwnerTransferredTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 2, // 34: server_api_params.GroupOwnerTransferredTips.newGroupOwner:type_name -> server_api_params.GroupMemberFullInfo - 0, // 35: server_api_params.MemberKickedTips.group:type_name -> server_api_params.GroupInfo - 2, // 36: server_api_params.MemberKickedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 2, // 37: server_api_params.MemberKickedTips.kickedUserList:type_name -> server_api_params.GroupMemberFullInfo - 0, // 38: server_api_params.MemberInvitedTips.group:type_name -> server_api_params.GroupInfo - 2, // 39: server_api_params.MemberInvitedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 2, // 40: server_api_params.MemberInvitedTips.invitedUserList:type_name -> server_api_params.GroupMemberFullInfo - 0, // 41: server_api_params.MemberEnterTips.group:type_name -> server_api_params.GroupInfo - 2, // 42: server_api_params.MemberEnterTips.entrantUser:type_name -> server_api_params.GroupMemberFullInfo - 0, // 43: server_api_params.GroupDismissedTips.group:type_name -> server_api_params.GroupInfo - 2, // 44: server_api_params.GroupDismissedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 0, // 45: server_api_params.GroupMemberMutedTips.group:type_name -> server_api_params.GroupInfo - 2, // 46: server_api_params.GroupMemberMutedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 2, // 47: server_api_params.GroupMemberMutedTips.mutedUser:type_name -> server_api_params.GroupMemberFullInfo - 0, // 48: server_api_params.GroupMemberCancelMutedTips.group:type_name -> server_api_params.GroupInfo - 2, // 49: server_api_params.GroupMemberCancelMutedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 2, // 50: server_api_params.GroupMemberCancelMutedTips.mutedUser:type_name -> server_api_params.GroupMemberFullInfo - 0, // 51: server_api_params.GroupMutedTips.group:type_name -> server_api_params.GroupInfo - 2, // 52: server_api_params.GroupMutedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 0, // 53: server_api_params.GroupCancelMutedTips.group:type_name -> server_api_params.GroupInfo - 2, // 54: server_api_params.GroupCancelMutedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 0, // 55: server_api_params.GroupMemberInfoSetTips.group:type_name -> server_api_params.GroupInfo - 2, // 56: server_api_params.GroupMemberInfoSetTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 2, // 57: server_api_params.GroupMemberInfoSetTips.changedUser:type_name -> server_api_params.GroupMemberFullInfo - 4, // 58: server_api_params.OrganizationChangedTips.opUser:type_name -> server_api_params.UserInfo - 43, // 59: server_api_params.FriendApplicationTips.fromToUserID:type_name -> server_api_params.FromToUserID - 43, // 60: server_api_params.FriendApplicationApprovedTips.fromToUserID:type_name -> server_api_params.FromToUserID - 43, // 61: server_api_params.FriendApplicationRejectedTips.fromToUserID:type_name -> server_api_params.FromToUserID - 5, // 62: server_api_params.FriendAddedTips.friend:type_name -> server_api_params.FriendInfo - 3, // 63: server_api_params.FriendAddedTips.opUser:type_name -> server_api_params.PublicUserInfo - 43, // 64: server_api_params.FriendDeletedTips.fromToUserID:type_name -> server_api_params.FromToUserID - 43, // 65: server_api_params.BlackAddedTips.fromToUserID:type_name -> server_api_params.FromToUserID - 43, // 66: server_api_params.BlackDeletedTips.fromToUserID:type_name -> server_api_params.FromToUserID - 43, // 67: server_api_params.FriendInfoChangedTips.fromToUserID:type_name -> server_api_params.FromToUserID - 62, // 68: server_api_params.SignalReq.invite:type_name -> server_api_params.SignalInviteReq - 64, // 69: server_api_params.SignalReq.inviteInGroup:type_name -> server_api_params.SignalInviteInGroupReq - 66, // 70: server_api_params.SignalReq.cancel:type_name -> server_api_params.SignalCancelReq - 68, // 71: server_api_params.SignalReq.accept:type_name -> server_api_params.SignalAcceptReq - 70, // 72: server_api_params.SignalReq.hungUp:type_name -> server_api_params.SignalHungUpReq - 72, // 73: server_api_params.SignalReq.reject:type_name -> server_api_params.SignalRejectReq - 63, // 74: server_api_params.SignalResp.invite:type_name -> server_api_params.SignalInviteReply - 65, // 75: server_api_params.SignalResp.inviteInGroup:type_name -> server_api_params.SignalInviteInGroupReply - 67, // 76: server_api_params.SignalResp.cancel:type_name -> server_api_params.SignalCancelReply - 69, // 77: server_api_params.SignalResp.accept:type_name -> server_api_params.SignalAcceptReply - 71, // 78: server_api_params.SignalResp.hungUp:type_name -> server_api_params.SignalHungUpReply - 73, // 79: server_api_params.SignalResp.reject:type_name -> server_api_params.SignalRejectReply - 0, // 80: server_api_params.ParticipantMetaData.groupInfo:type_name -> server_api_params.GroupInfo - 2, // 81: server_api_params.ParticipantMetaData.groupMemberInfo:type_name -> server_api_params.GroupMemberFullInfo - 3, // 82: server_api_params.ParticipantMetaData.userInfo:type_name -> server_api_params.PublicUserInfo - 60, // 83: server_api_params.SignalInviteReq.invitation:type_name -> server_api_params.InvitationInfo - 23, // 84: server_api_params.SignalInviteReq.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo - 61, // 85: server_api_params.SignalInviteReq.participant:type_name -> server_api_params.ParticipantMetaData - 60, // 86: server_api_params.SignalInviteInGroupReq.invitation:type_name -> server_api_params.InvitationInfo - 23, // 87: server_api_params.SignalInviteInGroupReq.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo - 61, // 88: server_api_params.SignalInviteInGroupReq.participant:type_name -> server_api_params.ParticipantMetaData - 60, // 89: server_api_params.SignalCancelReq.invitation:type_name -> server_api_params.InvitationInfo - 23, // 90: server_api_params.SignalCancelReq.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo - 61, // 91: server_api_params.SignalCancelReq.participant:type_name -> server_api_params.ParticipantMetaData - 60, // 92: server_api_params.SignalAcceptReq.invitation:type_name -> server_api_params.InvitationInfo - 23, // 93: server_api_params.SignalAcceptReq.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo - 61, // 94: server_api_params.SignalAcceptReq.participant:type_name -> server_api_params.ParticipantMetaData - 60, // 95: server_api_params.SignalHungUpReq.invitation:type_name -> server_api_params.InvitationInfo - 23, // 96: server_api_params.SignalHungUpReq.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo - 60, // 97: server_api_params.SignalRejectReq.invitation:type_name -> server_api_params.InvitationInfo - 23, // 98: server_api_params.SignalRejectReq.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo - 61, // 99: server_api_params.SignalRejectReq.participant:type_name -> server_api_params.ParticipantMetaData - 15, // 100: server_api_params.PullMessageBySeqListReq.GroupSeqListEntry.value:type_name -> server_api_params.seqList - 16, // 101: server_api_params.PullMessageBySeqListResp.GroupMsgDataListEntry.value:type_name -> server_api_params.MsgDataList - 19, // 102: server_api_params.GetMaxAndMinSeqResp.GroupMaxAndMinSeqEntry.value:type_name -> server_api_params.MaxAndMinSeq - 103, // [103:103] is the sub-list for method output_type - 103, // [103:103] is the sub-list for method input_type - 103, // [103:103] is the sub-list for extension type_name - 103, // [103:103] is the sub-list for extension extendee - 0, // [0:103] is the sub-list for field type_name -} - -func init() { file_sdk_ws_ws_proto_init() } -func file_sdk_ws_ws_proto_init() { - if File_sdk_ws_ws_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_sdk_ws_ws_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupInfoForSet); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupMemberFullInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PublicUserInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[5].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_sdk_ws_ws_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlackInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Department); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrganizationUser); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DepartmentMember); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserDepartmentMember); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserInDepartment); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PullMessageBySeqListReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SeqList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgDataList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PullMessageBySeqListResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMaxAndMinSeqReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MaxAndMinSeq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMaxAndMinSeqResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserSendMsgResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OfflinePushInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TipsComm); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupCreatedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupInfoSetTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JoinGroupApplicationTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MemberQuitTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupApplicationAcceptedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupApplicationRejectedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupOwnerTransferredTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MemberKickedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MemberInvitedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MemberEnterTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupDismissedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupMemberMutedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupMemberCancelMutedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupMutedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupCancelMutedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupMemberInfoSetTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrganizationChangedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendApplication); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FromToUserID); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendApplicationTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendApplicationApprovedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendApplicationRejectedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendAddedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendDeletedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlackAddedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlackDeletedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendInfoChangedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserInfoUpdatedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConversationUpdateTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConversationSetPrivateTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteMessageTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RequestPagination); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResponsePagination); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InvitationInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParticipantMetaData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalInviteReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalInviteReply); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalInviteInGroupReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalInviteInGroupReply); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalCancelReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalCancelReply); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalAcceptReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalAcceptReply); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalHungUpReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalHungUpReply); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalRejectReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalRejectReply); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelMsgListReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelMsgListResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_sdk_ws_ws_proto_msgTypes[58].OneofWrappers = []interface{}{ - (*SignalReq_Invite)(nil), - (*SignalReq_InviteInGroup)(nil), - (*SignalReq_Cancel)(nil), - (*SignalReq_Accept)(nil), - (*SignalReq_HungUp)(nil), - (*SignalReq_Reject)(nil), - } - file_sdk_ws_ws_proto_msgTypes[59].OneofWrappers = []interface{}{ +// XXX_OneofFuncs is for the internal use of the proto package. +func (*SignalResp) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _SignalResp_OneofMarshaler, _SignalResp_OneofUnmarshaler, _SignalResp_OneofSizer, []interface{}{ (*SignalResp_Invite)(nil), (*SignalResp_InviteInGroup)(nil), (*SignalResp_Cancel)(nil), (*SignalResp_Accept)(nil), (*SignalResp_HungUp)(nil), (*SignalResp_Reject)(nil), + (*SignalResp_GetRoomByGroupID)(nil), } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_sdk_ws_ws_proto_rawDesc, - NumEnums: 0, - NumMessages: 80, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_sdk_ws_ws_proto_goTypes, - DependencyIndexes: file_sdk_ws_ws_proto_depIdxs, - MessageInfos: file_sdk_ws_ws_proto_msgTypes, - }.Build() - File_sdk_ws_ws_proto = out.File - file_sdk_ws_ws_proto_rawDesc = nil - file_sdk_ws_ws_proto_goTypes = nil - file_sdk_ws_ws_proto_depIdxs = nil +} + +func _SignalResp_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*SignalResp) + // payload + switch x := m.Payload.(type) { + case *SignalResp_Invite: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Invite); err != nil { + return err + } + case *SignalResp_InviteInGroup: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.InviteInGroup); err != nil { + return err + } + case *SignalResp_Cancel: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Cancel); err != nil { + return err + } + case *SignalResp_Accept: + b.EncodeVarint(4<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Accept); err != nil { + return err + } + case *SignalResp_HungUp: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.HungUp); err != nil { + return err + } + case *SignalResp_Reject: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Reject); err != nil { + return err + } + case *SignalResp_GetRoomByGroupID: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.GetRoomByGroupID); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("SignalResp.Payload has unexpected type %T", x) + } + return nil +} + +func _SignalResp_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*SignalResp) + switch tag { + case 1: // payload.invite + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalInviteReply) + err := b.DecodeMessage(msg) + m.Payload = &SignalResp_Invite{msg} + return true, err + case 2: // payload.inviteInGroup + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalInviteInGroupReply) + err := b.DecodeMessage(msg) + m.Payload = &SignalResp_InviteInGroup{msg} + return true, err + case 3: // payload.cancel + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalCancelReply) + err := b.DecodeMessage(msg) + m.Payload = &SignalResp_Cancel{msg} + return true, err + case 4: // payload.accept + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalAcceptReply) + err := b.DecodeMessage(msg) + m.Payload = &SignalResp_Accept{msg} + return true, err + case 5: // payload.hungUp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalHungUpReply) + err := b.DecodeMessage(msg) + m.Payload = &SignalResp_HungUp{msg} + return true, err + case 6: // payload.reject + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalRejectReply) + err := b.DecodeMessage(msg) + m.Payload = &SignalResp_Reject{msg} + return true, err + case 7: // payload.GetRoomByGroupID + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalGetRoomByGroupIDReply) + err := b.DecodeMessage(msg) + m.Payload = &SignalResp_GetRoomByGroupID{msg} + return true, err + default: + return false, nil + } +} + +func _SignalResp_OneofSizer(msg proto.Message) (n int) { + m := msg.(*SignalResp) + // payload + switch x := m.Payload.(type) { + case *SignalResp_Invite: + s := proto.Size(x.Invite) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalResp_InviteInGroup: + s := proto.Size(x.InviteInGroup) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalResp_Cancel: + s := proto.Size(x.Cancel) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalResp_Accept: + s := proto.Size(x.Accept) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalResp_HungUp: + s := proto.Size(x.HungUp) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalResp_Reject: + s := proto.Size(x.Reject) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalResp_GetRoomByGroupID: + s := proto.Size(x.GetRoomByGroupID) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type InvitationInfo struct { + InviterUserID string `protobuf:"bytes,1,opt,name=inviterUserID" json:"inviterUserID,omitempty"` + InviteeUserIDList []string `protobuf:"bytes,2,rep,name=inviteeUserIDList" json:"inviteeUserIDList,omitempty"` + CustomData string `protobuf:"bytes,3,opt,name=customData" json:"customData,omitempty"` + GroupID string `protobuf:"bytes,4,opt,name=groupID" json:"groupID,omitempty"` + RoomID string `protobuf:"bytes,5,opt,name=roomID" json:"roomID,omitempty"` + Timeout int32 `protobuf:"varint,6,opt,name=timeout" json:"timeout,omitempty"` + MediaType string `protobuf:"bytes,7,opt,name=mediaType" json:"mediaType,omitempty"` + PlatformID int32 `protobuf:"varint,8,opt,name=platformID" json:"platformID,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=sessionType" json:"sessionType,omitempty"` + InitiateTime int32 `protobuf:"varint,10,opt,name=initiateTime" json:"initiateTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } +func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } +func (*InvitationInfo) ProtoMessage() {} +func (*InvitationInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{60} +} +func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) +} +func (m *InvitationInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_InvitationInfo.Marshal(b, m, deterministic) +} +func (dst *InvitationInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_InvitationInfo.Merge(dst, src) +} +func (m *InvitationInfo) XXX_Size() int { + return xxx_messageInfo_InvitationInfo.Size(m) +} +func (m *InvitationInfo) XXX_DiscardUnknown() { + xxx_messageInfo_InvitationInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_InvitationInfo proto.InternalMessageInfo + +func (m *InvitationInfo) GetInviterUserID() string { + if m != nil { + return m.InviterUserID + } + return "" +} + +func (m *InvitationInfo) GetInviteeUserIDList() []string { + if m != nil { + return m.InviteeUserIDList + } + return nil +} + +func (m *InvitationInfo) GetCustomData() string { + if m != nil { + return m.CustomData + } + return "" +} + +func (m *InvitationInfo) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *InvitationInfo) GetRoomID() string { + if m != nil { + return m.RoomID + } + return "" +} + +func (m *InvitationInfo) GetTimeout() int32 { + if m != nil { + return m.Timeout + } + return 0 +} + +func (m *InvitationInfo) GetMediaType() string { + if m != nil { + return m.MediaType + } + return "" +} + +func (m *InvitationInfo) GetPlatformID() int32 { + if m != nil { + return m.PlatformID + } + return 0 +} + +func (m *InvitationInfo) GetSessionType() int32 { + if m != nil { + return m.SessionType + } + return 0 +} + +func (m *InvitationInfo) GetInitiateTime() int32 { + if m != nil { + return m.InitiateTime + } + return 0 +} + +type ParticipantMetaData struct { + GroupInfo *GroupInfo `protobuf:"bytes,1,opt,name=groupInfo" json:"groupInfo,omitempty"` + GroupMemberInfo *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=groupMemberInfo" json:"groupMemberInfo,omitempty"` + UserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=userInfo" json:"userInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } +func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } +func (*ParticipantMetaData) ProtoMessage() {} +func (*ParticipantMetaData) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{61} +} +func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) +} +func (m *ParticipantMetaData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ParticipantMetaData.Marshal(b, m, deterministic) +} +func (dst *ParticipantMetaData) XXX_Merge(src proto.Message) { + xxx_messageInfo_ParticipantMetaData.Merge(dst, src) +} +func (m *ParticipantMetaData) XXX_Size() int { + return xxx_messageInfo_ParticipantMetaData.Size(m) +} +func (m *ParticipantMetaData) XXX_DiscardUnknown() { + xxx_messageInfo_ParticipantMetaData.DiscardUnknown(m) +} + +var xxx_messageInfo_ParticipantMetaData proto.InternalMessageInfo + +func (m *ParticipantMetaData) GetGroupInfo() *GroupInfo { + if m != nil { + return m.GroupInfo + } + return nil +} + +func (m *ParticipantMetaData) GetGroupMemberInfo() *GroupMemberFullInfo { + if m != nil { + return m.GroupMemberInfo + } + return nil +} + +func (m *ParticipantMetaData) GetUserInfo() *PublicUserInfo { + if m != nil { + return m.UserInfo + } + return nil +} + +type SignalInviteReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } +func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } +func (*SignalInviteReq) ProtoMessage() {} +func (*SignalInviteReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{62} +} +func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) +} +func (m *SignalInviteReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalInviteReq.Marshal(b, m, deterministic) +} +func (dst *SignalInviteReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalInviteReq.Merge(dst, src) +} +func (m *SignalInviteReq) XXX_Size() int { + return xxx_messageInfo_SignalInviteReq.Size(m) +} +func (m *SignalInviteReq) XXX_DiscardUnknown() { + xxx_messageInfo_SignalInviteReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalInviteReq proto.InternalMessageInfo + +func (m *SignalInviteReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *SignalInviteReq) GetInvitation() *InvitationInfo { + if m != nil { + return m.Invitation + } + return nil +} + +func (m *SignalInviteReq) GetOfflinePushInfo() *OfflinePushInfo { + if m != nil { + return m.OfflinePushInfo + } + return nil +} + +func (m *SignalInviteReq) GetParticipant() *ParticipantMetaData { + if m != nil { + return m.Participant + } + return nil +} + +type SignalInviteReply struct { + Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + RoomID string `protobuf:"bytes,2,opt,name=roomID" json:"roomID,omitempty"` + LiveURL string `protobuf:"bytes,3,opt,name=liveURL" json:"liveURL,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } +func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } +func (*SignalInviteReply) ProtoMessage() {} +func (*SignalInviteReply) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{63} +} +func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) +} +func (m *SignalInviteReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalInviteReply.Marshal(b, m, deterministic) +} +func (dst *SignalInviteReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalInviteReply.Merge(dst, src) +} +func (m *SignalInviteReply) XXX_Size() int { + return xxx_messageInfo_SignalInviteReply.Size(m) +} +func (m *SignalInviteReply) XXX_DiscardUnknown() { + xxx_messageInfo_SignalInviteReply.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalInviteReply proto.InternalMessageInfo + +func (m *SignalInviteReply) GetToken() string { + if m != nil { + return m.Token + } + return "" +} + +func (m *SignalInviteReply) GetRoomID() string { + if m != nil { + return m.RoomID + } + return "" +} + +func (m *SignalInviteReply) GetLiveURL() string { + if m != nil { + return m.LiveURL + } + return "" +} + +type SignalInviteInGroupReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} } +func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } +func (*SignalInviteInGroupReq) ProtoMessage() {} +func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{64} +} +func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) +} +func (m *SignalInviteInGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalInviteInGroupReq.Marshal(b, m, deterministic) +} +func (dst *SignalInviteInGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalInviteInGroupReq.Merge(dst, src) +} +func (m *SignalInviteInGroupReq) XXX_Size() int { + return xxx_messageInfo_SignalInviteInGroupReq.Size(m) +} +func (m *SignalInviteInGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_SignalInviteInGroupReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalInviteInGroupReq proto.InternalMessageInfo + +func (m *SignalInviteInGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *SignalInviteInGroupReq) GetInvitation() *InvitationInfo { + if m != nil { + return m.Invitation + } + return nil +} + +func (m *SignalInviteInGroupReq) GetOfflinePushInfo() *OfflinePushInfo { + if m != nil { + return m.OfflinePushInfo + } + return nil +} + +func (m *SignalInviteInGroupReq) GetParticipant() *ParticipantMetaData { + if m != nil { + return m.Participant + } + return nil +} + +type SignalInviteInGroupReply struct { + Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + RoomID string `protobuf:"bytes,2,opt,name=roomID" json:"roomID,omitempty"` + LiveURL string `protobuf:"bytes,3,opt,name=liveURL" json:"liveURL,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupReply{} } +func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } +func (*SignalInviteInGroupReply) ProtoMessage() {} +func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{65} +} +func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) +} +func (m *SignalInviteInGroupReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalInviteInGroupReply.Marshal(b, m, deterministic) +} +func (dst *SignalInviteInGroupReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalInviteInGroupReply.Merge(dst, src) +} +func (m *SignalInviteInGroupReply) XXX_Size() int { + return xxx_messageInfo_SignalInviteInGroupReply.Size(m) +} +func (m *SignalInviteInGroupReply) XXX_DiscardUnknown() { + xxx_messageInfo_SignalInviteInGroupReply.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalInviteInGroupReply proto.InternalMessageInfo + +func (m *SignalInviteInGroupReply) GetToken() string { + if m != nil { + return m.Token + } + return "" +} + +func (m *SignalInviteInGroupReply) GetRoomID() string { + if m != nil { + return m.RoomID + } + return "" +} + +func (m *SignalInviteInGroupReply) GetLiveURL() string { + if m != nil { + return m.LiveURL + } + return "" +} + +type SignalCancelReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } +func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } +func (*SignalCancelReq) ProtoMessage() {} +func (*SignalCancelReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{66} +} +func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) +} +func (m *SignalCancelReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalCancelReq.Marshal(b, m, deterministic) +} +func (dst *SignalCancelReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalCancelReq.Merge(dst, src) +} +func (m *SignalCancelReq) XXX_Size() int { + return xxx_messageInfo_SignalCancelReq.Size(m) +} +func (m *SignalCancelReq) XXX_DiscardUnknown() { + xxx_messageInfo_SignalCancelReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalCancelReq proto.InternalMessageInfo + +func (m *SignalCancelReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *SignalCancelReq) GetInvitation() *InvitationInfo { + if m != nil { + return m.Invitation + } + return nil +} + +func (m *SignalCancelReq) GetOfflinePushInfo() *OfflinePushInfo { + if m != nil { + return m.OfflinePushInfo + } + return nil +} + +func (m *SignalCancelReq) GetParticipant() *ParticipantMetaData { + if m != nil { + return m.Participant + } + return nil +} + +type SignalCancelReply struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } +func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } +func (*SignalCancelReply) ProtoMessage() {} +func (*SignalCancelReply) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{67} +} +func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) +} +func (m *SignalCancelReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalCancelReply.Marshal(b, m, deterministic) +} +func (dst *SignalCancelReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalCancelReply.Merge(dst, src) +} +func (m *SignalCancelReply) XXX_Size() int { + return xxx_messageInfo_SignalCancelReply.Size(m) +} +func (m *SignalCancelReply) XXX_DiscardUnknown() { + xxx_messageInfo_SignalCancelReply.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalCancelReply proto.InternalMessageInfo + +type SignalAcceptReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` + OpUserPlatformID int32 `protobuf:"varint,5,opt,name=opUserPlatformID" json:"opUserPlatformID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } +func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } +func (*SignalAcceptReq) ProtoMessage() {} +func (*SignalAcceptReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{68} +} +func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) +} +func (m *SignalAcceptReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalAcceptReq.Marshal(b, m, deterministic) +} +func (dst *SignalAcceptReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalAcceptReq.Merge(dst, src) +} +func (m *SignalAcceptReq) XXX_Size() int { + return xxx_messageInfo_SignalAcceptReq.Size(m) +} +func (m *SignalAcceptReq) XXX_DiscardUnknown() { + xxx_messageInfo_SignalAcceptReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalAcceptReq proto.InternalMessageInfo + +func (m *SignalAcceptReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *SignalAcceptReq) GetInvitation() *InvitationInfo { + if m != nil { + return m.Invitation + } + return nil +} + +func (m *SignalAcceptReq) GetOfflinePushInfo() *OfflinePushInfo { + if m != nil { + return m.OfflinePushInfo + } + return nil +} + +func (m *SignalAcceptReq) GetParticipant() *ParticipantMetaData { + if m != nil { + return m.Participant + } + return nil +} + +func (m *SignalAcceptReq) GetOpUserPlatformID() int32 { + if m != nil { + return m.OpUserPlatformID + } + return 0 +} + +type SignalAcceptReply struct { + Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + RoomID string `protobuf:"bytes,2,opt,name=roomID" json:"roomID,omitempty"` + LiveURL string `protobuf:"bytes,3,opt,name=liveURL" json:"liveURL,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } +func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } +func (*SignalAcceptReply) ProtoMessage() {} +func (*SignalAcceptReply) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{69} +} +func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) +} +func (m *SignalAcceptReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalAcceptReply.Marshal(b, m, deterministic) +} +func (dst *SignalAcceptReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalAcceptReply.Merge(dst, src) +} +func (m *SignalAcceptReply) XXX_Size() int { + return xxx_messageInfo_SignalAcceptReply.Size(m) +} +func (m *SignalAcceptReply) XXX_DiscardUnknown() { + xxx_messageInfo_SignalAcceptReply.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalAcceptReply proto.InternalMessageInfo + +func (m *SignalAcceptReply) GetToken() string { + if m != nil { + return m.Token + } + return "" +} + +func (m *SignalAcceptReply) GetRoomID() string { + if m != nil { + return m.RoomID + } + return "" +} + +func (m *SignalAcceptReply) GetLiveURL() string { + if m != nil { + return m.LiveURL + } + return "" +} + +type SignalHungUpReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } +func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } +func (*SignalHungUpReq) ProtoMessage() {} +func (*SignalHungUpReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{70} +} +func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) +} +func (m *SignalHungUpReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalHungUpReq.Marshal(b, m, deterministic) +} +func (dst *SignalHungUpReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalHungUpReq.Merge(dst, src) +} +func (m *SignalHungUpReq) XXX_Size() int { + return xxx_messageInfo_SignalHungUpReq.Size(m) +} +func (m *SignalHungUpReq) XXX_DiscardUnknown() { + xxx_messageInfo_SignalHungUpReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalHungUpReq proto.InternalMessageInfo + +func (m *SignalHungUpReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *SignalHungUpReq) GetInvitation() *InvitationInfo { + if m != nil { + return m.Invitation + } + return nil +} + +func (m *SignalHungUpReq) GetOfflinePushInfo() *OfflinePushInfo { + if m != nil { + return m.OfflinePushInfo + } + return nil +} + +type SignalHungUpReply struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } +func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } +func (*SignalHungUpReply) ProtoMessage() {} +func (*SignalHungUpReply) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{71} +} +func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) +} +func (m *SignalHungUpReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalHungUpReply.Marshal(b, m, deterministic) +} +func (dst *SignalHungUpReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalHungUpReply.Merge(dst, src) +} +func (m *SignalHungUpReply) XXX_Size() int { + return xxx_messageInfo_SignalHungUpReply.Size(m) +} +func (m *SignalHungUpReply) XXX_DiscardUnknown() { + xxx_messageInfo_SignalHungUpReply.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalHungUpReply proto.InternalMessageInfo + +type SignalRejectReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` + OpUserPlatformID int32 `protobuf:"varint,5,opt,name=opUserPlatformID" json:"opUserPlatformID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } +func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } +func (*SignalRejectReq) ProtoMessage() {} +func (*SignalRejectReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{72} +} +func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) +} +func (m *SignalRejectReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalRejectReq.Marshal(b, m, deterministic) +} +func (dst *SignalRejectReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalRejectReq.Merge(dst, src) +} +func (m *SignalRejectReq) XXX_Size() int { + return xxx_messageInfo_SignalRejectReq.Size(m) +} +func (m *SignalRejectReq) XXX_DiscardUnknown() { + xxx_messageInfo_SignalRejectReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalRejectReq proto.InternalMessageInfo + +func (m *SignalRejectReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *SignalRejectReq) GetInvitation() *InvitationInfo { + if m != nil { + return m.Invitation + } + return nil +} + +func (m *SignalRejectReq) GetOfflinePushInfo() *OfflinePushInfo { + if m != nil { + return m.OfflinePushInfo + } + return nil +} + +func (m *SignalRejectReq) GetParticipant() *ParticipantMetaData { + if m != nil { + return m.Participant + } + return nil +} + +func (m *SignalRejectReq) GetOpUserPlatformID() int32 { + if m != nil { + return m.OpUserPlatformID + } + return 0 +} + +type SignalRejectReply struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } +func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } +func (*SignalRejectReply) ProtoMessage() {} +func (*SignalRejectReply) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{73} +} +func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) +} +func (m *SignalRejectReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalRejectReply.Marshal(b, m, deterministic) +} +func (dst *SignalRejectReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalRejectReply.Merge(dst, src) +} +func (m *SignalRejectReply) XXX_Size() int { + return xxx_messageInfo_SignalRejectReply.Size(m) +} +func (m *SignalRejectReply) XXX_DiscardUnknown() { + xxx_messageInfo_SignalRejectReply.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalRejectReply proto.InternalMessageInfo + +type SignalGetRoomByGroupIDReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + GroupID string `protobuf:"bytes,2,opt,name=groupID" json:"groupID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalGetRoomByGroupIDReq) Reset() { *m = SignalGetRoomByGroupIDReq{} } +func (m *SignalGetRoomByGroupIDReq) String() string { return proto.CompactTextString(m) } +func (*SignalGetRoomByGroupIDReq) ProtoMessage() {} +func (*SignalGetRoomByGroupIDReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{74} +} +func (m *SignalGetRoomByGroupIDReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalGetRoomByGroupIDReq.Unmarshal(m, b) +} +func (m *SignalGetRoomByGroupIDReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalGetRoomByGroupIDReq.Marshal(b, m, deterministic) +} +func (dst *SignalGetRoomByGroupIDReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalGetRoomByGroupIDReq.Merge(dst, src) +} +func (m *SignalGetRoomByGroupIDReq) XXX_Size() int { + return xxx_messageInfo_SignalGetRoomByGroupIDReq.Size(m) +} +func (m *SignalGetRoomByGroupIDReq) XXX_DiscardUnknown() { + xxx_messageInfo_SignalGetRoomByGroupIDReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalGetRoomByGroupIDReq proto.InternalMessageInfo + +func (m *SignalGetRoomByGroupIDReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *SignalGetRoomByGroupIDReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +type SignalGetRoomByGroupIDReply struct { + Invitation *InvitationInfo `protobuf:"bytes,1,opt,name=invitation" json:"invitation,omitempty"` + OnConnectingUserIDList []string `protobuf:"bytes,2,rep,name=onConnectingUserIDList" json:"onConnectingUserIDList,omitempty"` + Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` + RoomID string `protobuf:"bytes,4,opt,name=roomID" json:"roomID,omitempty"` + LiveURL string `protobuf:"bytes,5,opt,name=liveURL" json:"liveURL,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalGetRoomByGroupIDReply) Reset() { *m = SignalGetRoomByGroupIDReply{} } +func (m *SignalGetRoomByGroupIDReply) String() string { return proto.CompactTextString(m) } +func (*SignalGetRoomByGroupIDReply) ProtoMessage() {} +func (*SignalGetRoomByGroupIDReply) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{75} +} +func (m *SignalGetRoomByGroupIDReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalGetRoomByGroupIDReply.Unmarshal(m, b) +} +func (m *SignalGetRoomByGroupIDReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalGetRoomByGroupIDReply.Marshal(b, m, deterministic) +} +func (dst *SignalGetRoomByGroupIDReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalGetRoomByGroupIDReply.Merge(dst, src) +} +func (m *SignalGetRoomByGroupIDReply) XXX_Size() int { + return xxx_messageInfo_SignalGetRoomByGroupIDReply.Size(m) +} +func (m *SignalGetRoomByGroupIDReply) XXX_DiscardUnknown() { + xxx_messageInfo_SignalGetRoomByGroupIDReply.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalGetRoomByGroupIDReply proto.InternalMessageInfo + +func (m *SignalGetRoomByGroupIDReply) GetInvitation() *InvitationInfo { + if m != nil { + return m.Invitation + } + return nil +} + +func (m *SignalGetRoomByGroupIDReply) GetOnConnectingUserIDList() []string { + if m != nil { + return m.OnConnectingUserIDList + } + return nil +} + +func (m *SignalGetRoomByGroupIDReply) GetToken() string { + if m != nil { + return m.Token + } + return "" +} + +func (m *SignalGetRoomByGroupIDReply) GetRoomID() string { + if m != nil { + return m.RoomID + } + return "" +} + +func (m *SignalGetRoomByGroupIDReply) GetLiveURL() string { + if m != nil { + return m.LiveURL + } + return "" +} + +type DelMsgListReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } +func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } +func (*DelMsgListReq) ProtoMessage() {} +func (*DelMsgListReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{76} +} +func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) +} +func (m *DelMsgListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DelMsgListReq.Marshal(b, m, deterministic) +} +func (dst *DelMsgListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_DelMsgListReq.Merge(dst, src) +} +func (m *DelMsgListReq) XXX_Size() int { + return xxx_messageInfo_DelMsgListReq.Size(m) +} +func (m *DelMsgListReq) XXX_DiscardUnknown() { + xxx_messageInfo_DelMsgListReq.DiscardUnknown(m) +} + +var xxx_messageInfo_DelMsgListReq proto.InternalMessageInfo + +func (m *DelMsgListReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *DelMsgListReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *DelMsgListReq) GetSeqList() []uint32 { + if m != nil { + return m.SeqList + } + return nil +} + +func (m *DelMsgListReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type DelMsgListResp struct { + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } +func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } +func (*DelMsgListResp) ProtoMessage() {} +func (*DelMsgListResp) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9506eea4334b9b75, []int{77} +} +func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) +} +func (m *DelMsgListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DelMsgListResp.Marshal(b, m, deterministic) +} +func (dst *DelMsgListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_DelMsgListResp.Merge(dst, src) +} +func (m *DelMsgListResp) XXX_Size() int { + return xxx_messageInfo_DelMsgListResp.Size(m) +} +func (m *DelMsgListResp) XXX_DiscardUnknown() { + xxx_messageInfo_DelMsgListResp.DiscardUnknown(m) +} + +var xxx_messageInfo_DelMsgListResp proto.InternalMessageInfo + +func (m *DelMsgListResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *DelMsgListResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +func init() { + proto.RegisterType((*GroupInfo)(nil), "server_api_params.GroupInfo") + proto.RegisterType((*GroupInfoForSet)(nil), "server_api_params.GroupInfoForSet") + proto.RegisterType((*GroupMemberFullInfo)(nil), "server_api_params.GroupMemberFullInfo") + proto.RegisterType((*PublicUserInfo)(nil), "server_api_params.PublicUserInfo") + proto.RegisterType((*UserInfo)(nil), "server_api_params.UserInfo") + proto.RegisterType((*FriendInfo)(nil), "server_api_params.FriendInfo") + proto.RegisterType((*BlackInfo)(nil), "server_api_params.BlackInfo") + proto.RegisterType((*GroupRequest)(nil), "server_api_params.GroupRequest") + proto.RegisterType((*FriendRequest)(nil), "server_api_params.FriendRequest") + proto.RegisterType((*Department)(nil), "server_api_params.Department") + proto.RegisterType((*OrganizationUser)(nil), "server_api_params.OrganizationUser") + proto.RegisterType((*DepartmentMember)(nil), "server_api_params.DepartmentMember") + proto.RegisterType((*UserDepartmentMember)(nil), "server_api_params.UserDepartmentMember") + proto.RegisterType((*UserInDepartment)(nil), "server_api_params.UserInDepartment") + proto.RegisterType((*PullMessageBySeqListReq)(nil), "server_api_params.PullMessageBySeqListReq") + proto.RegisterMapType((map[string]*SeqList)(nil), "server_api_params.PullMessageBySeqListReq.GroupSeqListEntry") + proto.RegisterType((*SeqList)(nil), "server_api_params.seqList") + proto.RegisterType((*MsgDataList)(nil), "server_api_params.MsgDataList") + proto.RegisterType((*PullMessageBySeqListResp)(nil), "server_api_params.PullMessageBySeqListResp") + proto.RegisterMapType((map[string]*MsgDataList)(nil), "server_api_params.PullMessageBySeqListResp.GroupMsgDataListEntry") + proto.RegisterType((*GetMaxAndMinSeqReq)(nil), "server_api_params.GetMaxAndMinSeqReq") + proto.RegisterType((*MaxAndMinSeq)(nil), "server_api_params.MaxAndMinSeq") + proto.RegisterType((*GetMaxAndMinSeqResp)(nil), "server_api_params.GetMaxAndMinSeqResp") + proto.RegisterMapType((map[string]*MaxAndMinSeq)(nil), "server_api_params.GetMaxAndMinSeqResp.GroupMaxAndMinSeqEntry") + proto.RegisterType((*UserSendMsgResp)(nil), "server_api_params.UserSendMsgResp") + proto.RegisterType((*MsgData)(nil), "server_api_params.MsgData") + proto.RegisterMapType((map[string]bool)(nil), "server_api_params.MsgData.OptionsEntry") + proto.RegisterType((*OfflinePushInfo)(nil), "server_api_params.OfflinePushInfo") + proto.RegisterType((*TipsComm)(nil), "server_api_params.TipsComm") + proto.RegisterType((*GroupCreatedTips)(nil), "server_api_params.GroupCreatedTips") + proto.RegisterType((*GroupInfoSetTips)(nil), "server_api_params.GroupInfoSetTips") + proto.RegisterType((*JoinGroupApplicationTips)(nil), "server_api_params.JoinGroupApplicationTips") + proto.RegisterType((*MemberQuitTips)(nil), "server_api_params.MemberQuitTips") + proto.RegisterType((*GroupApplicationAcceptedTips)(nil), "server_api_params.GroupApplicationAcceptedTips") + proto.RegisterType((*GroupApplicationRejectedTips)(nil), "server_api_params.GroupApplicationRejectedTips") + proto.RegisterType((*GroupOwnerTransferredTips)(nil), "server_api_params.GroupOwnerTransferredTips") + proto.RegisterType((*MemberKickedTips)(nil), "server_api_params.MemberKickedTips") + proto.RegisterType((*MemberInvitedTips)(nil), "server_api_params.MemberInvitedTips") + proto.RegisterType((*MemberEnterTips)(nil), "server_api_params.MemberEnterTips") + proto.RegisterType((*GroupDismissedTips)(nil), "server_api_params.GroupDismissedTips") + proto.RegisterType((*GroupMemberMutedTips)(nil), "server_api_params.GroupMemberMutedTips") + proto.RegisterType((*GroupMemberCancelMutedTips)(nil), "server_api_params.GroupMemberCancelMutedTips") + proto.RegisterType((*GroupMutedTips)(nil), "server_api_params.GroupMutedTips") + proto.RegisterType((*GroupCancelMutedTips)(nil), "server_api_params.GroupCancelMutedTips") + proto.RegisterType((*GroupMemberInfoSetTips)(nil), "server_api_params.GroupMemberInfoSetTips") + proto.RegisterType((*OrganizationChangedTips)(nil), "server_api_params.OrganizationChangedTips") + proto.RegisterType((*FriendApplication)(nil), "server_api_params.FriendApplication") + proto.RegisterType((*FromToUserID)(nil), "server_api_params.FromToUserID") + proto.RegisterType((*FriendApplicationTips)(nil), "server_api_params.FriendApplicationTips") + proto.RegisterType((*FriendApplicationApprovedTips)(nil), "server_api_params.FriendApplicationApprovedTips") + proto.RegisterType((*FriendApplicationRejectedTips)(nil), "server_api_params.FriendApplicationRejectedTips") + proto.RegisterType((*FriendAddedTips)(nil), "server_api_params.FriendAddedTips") + proto.RegisterType((*FriendDeletedTips)(nil), "server_api_params.FriendDeletedTips") + proto.RegisterType((*BlackAddedTips)(nil), "server_api_params.BlackAddedTips") + proto.RegisterType((*BlackDeletedTips)(nil), "server_api_params.BlackDeletedTips") + proto.RegisterType((*FriendInfoChangedTips)(nil), "server_api_params.FriendInfoChangedTips") + proto.RegisterType((*UserInfoUpdatedTips)(nil), "server_api_params.UserInfoUpdatedTips") + proto.RegisterType((*ConversationUpdateTips)(nil), "server_api_params.ConversationUpdateTips") + proto.RegisterType((*ConversationSetPrivateTips)(nil), "server_api_params.ConversationSetPrivateTips") + proto.RegisterType((*DeleteMessageTips)(nil), "server_api_params.DeleteMessageTips") + proto.RegisterType((*RequestPagination)(nil), "server_api_params.RequestPagination") + proto.RegisterType((*ResponsePagination)(nil), "server_api_params.ResponsePagination") + proto.RegisterType((*SignalReq)(nil), "server_api_params.SignalReq") + proto.RegisterType((*SignalResp)(nil), "server_api_params.SignalResp") + proto.RegisterType((*InvitationInfo)(nil), "server_api_params.InvitationInfo") + proto.RegisterType((*ParticipantMetaData)(nil), "server_api_params.ParticipantMetaData") + proto.RegisterType((*SignalInviteReq)(nil), "server_api_params.SignalInviteReq") + proto.RegisterType((*SignalInviteReply)(nil), "server_api_params.SignalInviteReply") + proto.RegisterType((*SignalInviteInGroupReq)(nil), "server_api_params.SignalInviteInGroupReq") + proto.RegisterType((*SignalInviteInGroupReply)(nil), "server_api_params.SignalInviteInGroupReply") + proto.RegisterType((*SignalCancelReq)(nil), "server_api_params.SignalCancelReq") + proto.RegisterType((*SignalCancelReply)(nil), "server_api_params.SignalCancelReply") + proto.RegisterType((*SignalAcceptReq)(nil), "server_api_params.SignalAcceptReq") + proto.RegisterType((*SignalAcceptReply)(nil), "server_api_params.SignalAcceptReply") + proto.RegisterType((*SignalHungUpReq)(nil), "server_api_params.SignalHungUpReq") + proto.RegisterType((*SignalHungUpReply)(nil), "server_api_params.SignalHungUpReply") + proto.RegisterType((*SignalRejectReq)(nil), "server_api_params.SignalRejectReq") + proto.RegisterType((*SignalRejectReply)(nil), "server_api_params.SignalRejectReply") + proto.RegisterType((*SignalGetRoomByGroupIDReq)(nil), "server_api_params.SignalGetRoomByGroupIDReq") + proto.RegisterType((*SignalGetRoomByGroupIDReply)(nil), "server_api_params.SignalGetRoomByGroupIDReply") + proto.RegisterType((*DelMsgListReq)(nil), "server_api_params.DelMsgListReq") + proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") +} + +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_9506eea4334b9b75) } + +var fileDescriptor_ws_9506eea4334b9b75 = []byte{ + // 3681 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5c, 0xcd, 0x6f, 0x1c, 0xc7, + 0xb1, 0x7f, 0x33, 0xfb, 0x41, 0x6e, 0x2d, 0x3f, 0x96, 0x23, 0x99, 0x5e, 0xd3, 0xb2, 0x1e, 0xdf, + 0x58, 0xb0, 0xfd, 0xf4, 0xfc, 0xa8, 0x07, 0xf9, 0xd9, 0x78, 0xcf, 0x1f, 0x0a, 0x44, 0xd2, 0xa2, + 0x68, 0x93, 0x22, 0x3d, 0x2b, 0xd9, 0x81, 0x6d, 0x40, 0x1e, 0xee, 0x34, 0x97, 0x63, 0xce, 0x4e, + 0x0f, 0xe7, 0x83, 0x12, 0x73, 0x09, 0x90, 0x00, 0x41, 0x90, 0x43, 0x72, 0x49, 0x10, 0x20, 0xc7, + 0x5c, 0x82, 0x04, 0x81, 0x11, 0x04, 0x49, 0x90, 0x43, 0x10, 0xe4, 0x90, 0x5b, 0x2e, 0x39, 0xe4, + 0x96, 0x43, 0x82, 0x9c, 0xf3, 0x0f, 0x04, 0x09, 0xe0, 0xa0, 0xbb, 0x7a, 0x66, 0xba, 0x67, 0x66, + 0xc9, 0x15, 0x41, 0x58, 0x32, 0x94, 0x1b, 0xab, 0xa6, 0xab, 0xba, 0xba, 0xea, 0xd7, 0xd5, 0xd5, + 0x1f, 0x4b, 0x98, 0x8d, 0x9c, 0xfd, 0xbb, 0xf7, 0xa2, 0x2b, 0xf7, 0xa2, 0xa5, 0x20, 0xa4, 0x31, + 0x35, 0xe6, 0x22, 0x12, 0x1e, 0x92, 0xf0, 0xae, 0x1d, 0xb8, 0x77, 0x03, 0x3b, 0xb4, 0x87, 0xd1, + 0xc2, 0xf3, 0x5b, 0x01, 0xf1, 0xef, 0xae, 0x6f, 0x5e, 0x09, 0xf6, 0x07, 0x57, 0x78, 0xab, 0x2b, + 0xa9, 0x54, 0x68, 0x07, 0x01, 0x09, 0x85, 0xac, 0xf9, 0xa7, 0x3a, 0xb4, 0xd6, 0x42, 0x9a, 0x04, + 0xeb, 0xfe, 0x2e, 0x35, 0xba, 0x30, 0x31, 0xe0, 0xc4, 0x6a, 0x57, 0x5b, 0xd4, 0x5e, 0x68, 0x59, + 0x29, 0x69, 0x5c, 0x80, 0x16, 0xff, 0xf3, 0x96, 0x3d, 0x24, 0x5d, 0x9d, 0x7f, 0xcb, 0x19, 0x86, + 0x09, 0x53, 0x3e, 0x8d, 0xdd, 0x5d, 0xb7, 0x6f, 0xc7, 0x2e, 0xf5, 0xbb, 0x35, 0xde, 0x40, 0xe1, + 0xb1, 0x36, 0xae, 0x1f, 0x87, 0xd4, 0x49, 0xfa, 0xbc, 0x4d, 0x1d, 0xdb, 0xc8, 0x3c, 0xd6, 0xff, + 0xae, 0xdd, 0x27, 0x77, 0xac, 0x8d, 0x6e, 0x03, 0xfb, 0x17, 0xa4, 0xb1, 0x08, 0x6d, 0x7a, 0xcf, + 0x27, 0xe1, 0x9d, 0x88, 0x84, 0xeb, 0xab, 0xdd, 0x26, 0xff, 0x2a, 0xb3, 0x8c, 0x8b, 0x00, 0xfd, + 0x90, 0xd8, 0x31, 0xb9, 0xed, 0x0e, 0x49, 0x77, 0x62, 0x51, 0x7b, 0x61, 0xda, 0x92, 0x38, 0x4c, + 0xc3, 0x90, 0x0c, 0x77, 0x48, 0xb8, 0x42, 0x13, 0x3f, 0xee, 0x4e, 0xf2, 0x06, 0x32, 0xcb, 0x98, + 0x01, 0x9d, 0xdc, 0xef, 0xb6, 0xb8, 0x6a, 0x9d, 0xdc, 0x37, 0xe6, 0xa1, 0x19, 0xc5, 0x76, 0x9c, + 0x44, 0x5d, 0x58, 0xd4, 0x5e, 0x68, 0x58, 0x82, 0x32, 0x2e, 0xc1, 0x34, 0xd7, 0x4b, 0x53, 0x6b, + 0xda, 0x5c, 0x44, 0x65, 0x66, 0x1e, 0xbb, 0x7d, 0x14, 0x90, 0xee, 0x14, 0x57, 0x90, 0x33, 0x8c, + 0xcb, 0xd0, 0xf1, 0x09, 0x71, 0xde, 0x25, 0x61, 0xee, 0xb5, 0x69, 0xde, 0xa8, 0xc4, 0x37, 0x9e, + 0x83, 0x19, 0x8f, 0xd2, 0xfd, 0x4d, 0x6e, 0x2a, 0x8b, 0x53, 0x77, 0x86, 0xb7, 0x2c, 0x70, 0x8d, + 0x17, 0x61, 0xce, 0x0e, 0x02, 0xef, 0x08, 0x59, 0x37, 0x42, 0x97, 0xf8, 0x4e, 0x77, 0x96, 0x37, + 0x2d, 0x7f, 0x30, 0x5e, 0x81, 0x79, 0x39, 0x3e, 0x77, 0x02, 0x27, 0xf5, 0x5d, 0x87, 0xbb, 0x66, + 0xc4, 0x57, 0x63, 0x09, 0x0c, 0xe5, 0x0b, 0xba, 0x60, 0x8e, 0xbb, 0xa0, 0xe2, 0x8b, 0xf9, 0xed, + 0x1a, 0xcc, 0x66, 0x08, 0xbb, 0x41, 0xc3, 0x1e, 0x89, 0x1f, 0x61, 0x9c, 0x21, 0x06, 0x9a, 0x19, + 0x06, 0xd6, 0x2a, 0xe2, 0xc4, 0xb0, 0xd5, 0xbe, 0xfa, 0xf4, 0xd2, 0x80, 0xd2, 0x81, 0x47, 0x70, + 0x22, 0xed, 0x24, 0xbb, 0x4b, 0xeb, 0x7e, 0xfc, 0xd2, 0xd5, 0x77, 0x6d, 0x2f, 0x21, 0x15, 0x41, + 0x5c, 0x29, 0x05, 0x71, 0xf2, 0x64, 0x35, 0xc5, 0x08, 0xaf, 0x57, 0x45, 0xb8, 0x75, 0xb2, 0x9e, + 0xb2, 0x94, 0xf9, 0xa9, 0x0e, 0xe7, 0x78, 0x58, 0x04, 0x37, 0xf1, 0xbc, 0x13, 0x52, 0xc0, 0x3c, + 0x34, 0x13, 0x0c, 0x36, 0xc6, 0x45, 0x50, 0x2c, 0x64, 0x21, 0xf5, 0xc8, 0x06, 0x39, 0x24, 0x1e, + 0x8f, 0x48, 0xc3, 0xca, 0x19, 0xc6, 0x02, 0x4c, 0x7e, 0x4c, 0x5d, 0x9f, 0x03, 0xab, 0xce, 0x3f, + 0x66, 0x34, 0xfb, 0xe6, 0xbb, 0xfd, 0x7d, 0x9f, 0xc5, 0x1a, 0xe3, 0x90, 0xd1, 0x72, 0x88, 0x9a, + 0x6a, 0x88, 0x9e, 0x83, 0x19, 0x3b, 0x08, 0x36, 0x6d, 0x7f, 0x40, 0x42, 0xec, 0x74, 0x02, 0xa7, + 0x83, 0xca, 0x65, 0x09, 0x81, 0xf5, 0xd4, 0xa3, 0x49, 0xd8, 0x27, 0xdc, 0xdb, 0x0d, 0x4b, 0xe2, + 0x30, 0x3d, 0x34, 0x20, 0xa1, 0x34, 0x8f, 0x71, 0xea, 0x17, 0xb8, 0x02, 0x12, 0x90, 0x41, 0x82, + 0x25, 0x92, 0x24, 0x26, 0x6f, 0xfa, 0x0e, 0x1f, 0x54, 0x5b, 0x24, 0x92, 0x9c, 0xc5, 0x12, 0x84, + 0xeb, 0x1f, 0xba, 0x71, 0x96, 0xae, 0xa6, 0x30, 0x41, 0x28, 0x4c, 0xf3, 0x6b, 0x1a, 0xcc, 0x6c, + 0x27, 0x3b, 0x9e, 0xdb, 0xe7, 0x0c, 0xe6, 0xfc, 0xdc, 0xc5, 0x9a, 0xe2, 0x62, 0xd9, 0x51, 0xfa, + 0x68, 0x47, 0xd5, 0x54, 0x47, 0xcd, 0x43, 0x73, 0x40, 0x7c, 0x87, 0x84, 0xc2, 0xf1, 0x82, 0x12, + 0x03, 0x6a, 0xa4, 0x03, 0x32, 0xbf, 0x59, 0x87, 0xc9, 0xcf, 0xd8, 0x84, 0x45, 0x68, 0x07, 0x7b, + 0xd4, 0x27, 0xb7, 0x12, 0x06, 0x3e, 0x61, 0x8b, 0xcc, 0x32, 0xce, 0x43, 0x63, 0xc7, 0x0d, 0xe3, + 0x3d, 0x1e, 0xfd, 0x69, 0x0b, 0x09, 0xc6, 0x25, 0x43, 0xdb, 0xc5, 0x90, 0xb7, 0x2c, 0x24, 0xc4, + 0x80, 0x26, 0xb3, 0x08, 0x2d, 0xc0, 0x24, 0x26, 0xfe, 0xf5, 0x40, 0xc4, 0x34, 0xa3, 0x0b, 0xcb, + 0x04, 0x54, 0x2d, 0x13, 0x1b, 0x76, 0x14, 0x6f, 0xd0, 0x81, 0xeb, 0xaf, 0x07, 0x22, 0xb5, 0xcb, + 0x2c, 0x16, 0xdd, 0x8c, 0xe4, 0x4a, 0xa6, 0xb8, 0x12, 0x95, 0xc9, 0xfa, 0xc9, 0x88, 0x48, 0xa4, + 0x76, 0x89, 0x93, 0x7d, 0xdf, 0x70, 0x87, 0x6e, 0x2c, 0x12, 0xba, 0xc4, 0xa9, 0x40, 0xf9, 0x6c, + 0x25, 0xca, 0x2f, 0x43, 0x67, 0xe0, 0xd1, 0x1d, 0xdb, 0xb3, 0x48, 0xff, 0x70, 0x33, 0x1a, 0x6c, + 0x05, 0x31, 0x4f, 0xe0, 0x0d, 0xab, 0xc4, 0x67, 0x3a, 0x39, 0x04, 0x79, 0x46, 0x5a, 0xa1, 0x0e, + 0x11, 0x69, 0xbb, 0xc0, 0x35, 0xff, 0xa6, 0x01, 0x60, 0x9a, 0xe0, 0x90, 0x28, 0xac, 0xbd, 0x5a, + 0x79, 0xed, 0x9d, 0x87, 0x66, 0x48, 0x86, 0x76, 0xb8, 0x9f, 0xa6, 0x06, 0xa4, 0x0a, 0xce, 0xae, + 0x95, 0x9c, 0xfd, 0x1a, 0xc0, 0x2e, 0xef, 0x87, 0xe9, 0xe1, 0x10, 0x61, 0x89, 0xac, 0x54, 0xce, + 0x2c, 0xa5, 0xe8, 0xb4, 0xa4, 0xe6, 0x2c, 0xef, 0xd8, 0x8e, 0x23, 0xa6, 0x77, 0x03, 0xf3, 0x4e, + 0xc6, 0xa8, 0x98, 0xdd, 0xcd, 0x63, 0x66, 0xf7, 0x44, 0x36, 0x19, 0xfe, 0xaa, 0x41, 0x6b, 0xd9, + 0xb3, 0xfb, 0xfb, 0x63, 0x0e, 0x5d, 0x1d, 0xa2, 0x5e, 0x1a, 0xe2, 0x1a, 0x4c, 0xef, 0x30, 0x75, + 0xe9, 0x10, 0xb8, 0x17, 0xda, 0x57, 0xff, 0xa3, 0x62, 0x94, 0x6a, 0x32, 0xb0, 0x54, 0x39, 0x75, + 0xb8, 0xf5, 0x93, 0x87, 0xdb, 0x38, 0x66, 0xb8, 0xd9, 0xfa, 0x66, 0x7e, 0xb7, 0x06, 0x53, 0x7c, + 0x19, 0xb0, 0xc8, 0x41, 0x42, 0xa2, 0xd8, 0x78, 0x03, 0x26, 0x93, 0xd4, 0x54, 0x6d, 0x5c, 0x53, + 0x33, 0x11, 0xe3, 0x55, 0xb1, 0x7e, 0x73, 0x79, 0x9d, 0xcb, 0x5f, 0xa8, 0x90, 0xcf, 0x0a, 0x02, + 0x2b, 0x6f, 0xce, 0x56, 0xee, 0x3d, 0xdb, 0x77, 0x3c, 0x62, 0x91, 0x28, 0xf1, 0x62, 0xb1, 0x96, + 0x28, 0x3c, 0x44, 0xda, 0xc1, 0x66, 0x34, 0x10, 0xeb, 0xba, 0xa0, 0x98, 0x77, 0xb0, 0x1d, 0xfb, + 0x84, 0x43, 0xcf, 0x19, 0x2c, 0x41, 0x85, 0xe4, 0x80, 0x47, 0x08, 0xd3, 0x49, 0x4a, 0xe6, 0x7d, + 0x0a, 0xaf, 0x21, 0x10, 0x14, 0x1e, 0x0b, 0x31, 0xd2, 0x5c, 0x01, 0x16, 0x8e, 0x12, 0xa7, 0x54, + 0x37, 0xaa, 0x0b, 0x0f, 0x94, 0x16, 0x9e, 0xd2, 0xf2, 0xd0, 0xae, 0x5a, 0x1e, 0xfe, 0x58, 0x83, + 0x69, 0x9c, 0x84, 0x69, 0x68, 0x2e, 0xb2, 0xd9, 0x42, 0x87, 0x0a, 0x16, 0x25, 0x0e, 0x1b, 0x0b, + 0xa3, 0x6e, 0xa9, 0x69, 0x5a, 0xe1, 0x31, 0x40, 0x33, 0xfa, 0x86, 0x92, 0xae, 0x65, 0x56, 0xda, + 0xcb, 0x9a, 0x9c, 0xb6, 0x25, 0x0e, 0x4b, 0xae, 0x31, 0x55, 0x30, 0x96, 0xd1, 0x4c, 0x36, 0xa6, + 0x59, 0xff, 0x88, 0x32, 0x89, 0xc3, 0xa2, 0x14, 0xd3, 0xb4, 0x6f, 0x74, 0x75, 0xce, 0x40, 0xcd, + 0xa2, 0x5f, 0x5c, 0xae, 0x33, 0xba, 0x84, 0x8d, 0xd6, 0xb1, 0xd8, 0x00, 0x05, 0x1b, 0xea, 0x14, + 0x6d, 0x97, 0xa6, 0xe8, 0x25, 0x98, 0x46, 0x3d, 0x85, 0xe5, 0x5a, 0x61, 0xaa, 0x08, 0x9b, 0x2e, + 0x22, 0x4c, 0xc5, 0xc8, 0xcc, 0x08, 0x8c, 0xcc, 0x66, 0xf3, 0xee, 0xa7, 0x3a, 0xc0, 0x2a, 0x09, + 0xec, 0x30, 0x1e, 0x12, 0x3f, 0x66, 0xc3, 0x73, 0x32, 0x2a, 0x0b, 0xae, 0xc2, 0x93, 0x57, 0x59, + 0x5d, 0x5d, 0x65, 0x0d, 0xa8, 0x73, 0x87, 0x63, 0x34, 0xf9, 0xdf, 0xcc, 0x99, 0x81, 0x1d, 0xa2, + 0x36, 0x9c, 0x2a, 0x19, 0xcd, 0x56, 0x51, 0x1a, 0x3a, 0x62, 0xdd, 0x6d, 0x58, 0x48, 0xb0, 0x14, + 0x92, 0xf7, 0xc7, 0x77, 0x2d, 0x4d, 0x5c, 0x71, 0x54, 0xee, 0x89, 0x1b, 0xad, 0xcb, 0xd0, 0x89, + 0x92, 0x9d, 0x7c, 0x70, 0xb7, 0x92, 0xa1, 0x98, 0x34, 0x25, 0x3e, 0x73, 0x2a, 0xee, 0xc0, 0x58, + 0xa3, 0x16, 0x6f, 0x94, 0x33, 0x8a, 0x95, 0x97, 0xf9, 0x63, 0x1d, 0x3a, 0x5b, 0xe1, 0xc0, 0xf6, + 0xdd, 0x2f, 0x65, 0x3b, 0x8c, 0x53, 0x15, 0x2c, 0x8b, 0xd0, 0x26, 0xfe, 0xc0, 0x73, 0xa3, 0xbd, + 0x5b, 0xb9, 0xdf, 0x64, 0x96, 0xec, 0xec, 0xfa, 0xa8, 0x92, 0xa6, 0xa1, 0x94, 0x34, 0xf3, 0xd0, + 0x1c, 0xd2, 0x1d, 0xd7, 0x4b, 0x71, 0x2f, 0x28, 0x8e, 0x79, 0xe2, 0x11, 0x5e, 0xdb, 0x64, 0x98, + 0x4f, 0x19, 0x79, 0x99, 0x33, 0x59, 0x59, 0xe6, 0xb4, 0xe4, 0x32, 0xe7, 0xa4, 0xd2, 0x05, 0xdd, + 0xd5, 0xce, 0xdc, 0xf5, 0x1b, 0x0d, 0x3a, 0xb9, 0xbb, 0xb1, 0xce, 0x1f, 0xe9, 0xae, 0x22, 0x02, + 0xf5, 0x0a, 0x04, 0x66, 0xb8, 0xa9, 0xc9, 0xb8, 0x61, 0x48, 0xa3, 0x91, 0x2b, 0x6d, 0xb6, 0x32, + 0x9a, 0xf5, 0xe6, 0x11, 0x5b, 0x72, 0x16, 0x52, 0xd2, 0xd6, 0xba, 0xa9, 0x6c, 0xad, 0x8b, 0xab, + 0xf1, 0x2f, 0x35, 0x38, 0xcf, 0xa2, 0x5c, 0x1a, 0xc6, 0x16, 0x74, 0x68, 0x01, 0x09, 0x62, 0xb9, + 0x7a, 0xb6, 0x62, 0xb9, 0x29, 0x82, 0xc6, 0x2a, 0x09, 0x33, 0x85, 0x4e, 0xa1, 0x13, 0xb1, 0x7e, + 0x55, 0x29, 0x2c, 0xda, 0x63, 0x95, 0x84, 0xcd, 0x5f, 0x69, 0xd0, 0xc1, 0x05, 0x52, 0x9a, 0xe7, + 0x67, 0x6e, 0xf6, 0x7b, 0x70, 0xbe, 0xd8, 0xf3, 0x86, 0x1b, 0xc5, 0x5d, 0x7d, 0xb1, 0x36, 0xae, + 0xe9, 0x95, 0x0a, 0xd8, 0x5c, 0x7b, 0x72, 0x3b, 0xf1, 0xbc, 0x4d, 0x12, 0x45, 0xf6, 0x80, 0x2c, + 0x1f, 0xf5, 0xc8, 0x01, 0xfb, 0x60, 0x91, 0x83, 0x91, 0x18, 0x62, 0xd5, 0x12, 0x2f, 0x37, 0x5c, + 0xea, 0x67, 0x10, 0x92, 0x59, 0x6c, 0x5a, 0x45, 0xa8, 0xa7, 0x5b, 0x5b, 0xac, 0xb1, 0x85, 0x58, + 0x90, 0xc6, 0x47, 0x30, 0xc5, 0x2b, 0x01, 0xd1, 0x4d, 0xb7, 0xce, 0x07, 0xf0, 0x7a, 0x65, 0xed, + 0x51, 0x69, 0x15, 0xd6, 0x14, 0x82, 0x7e, 0xd3, 0x8f, 0xc3, 0x23, 0x4b, 0xd1, 0xb8, 0xf0, 0x01, + 0xcc, 0x95, 0x9a, 0x18, 0x1d, 0xa8, 0xed, 0x93, 0x23, 0x31, 0x0e, 0xf6, 0xa7, 0xf1, 0x3f, 0xd0, + 0x38, 0x64, 0x9b, 0x66, 0x11, 0xfd, 0x85, 0x0a, 0x0b, 0x84, 0xcd, 0x16, 0x36, 0x7c, 0x55, 0xff, + 0x3f, 0xcd, 0x7c, 0x36, 0x1b, 0x98, 0x3c, 0x46, 0x4d, 0x19, 0xa3, 0xf9, 0x36, 0xb4, 0x37, 0xa3, + 0xc1, 0xaa, 0x1d, 0xdb, 0xbc, 0xe1, 0xeb, 0xd0, 0x1e, 0xe6, 0x24, 0x6f, 0x5c, 0xdd, 0x9f, 0x10, + 0xb2, 0xe4, 0xe6, 0xe6, 0xef, 0x75, 0xe8, 0x56, 0xbb, 0x22, 0x0a, 0x98, 0x0d, 0x24, 0x0c, 0x79, + 0x89, 0xaf, 0xf1, 0x09, 0x96, 0x92, 0x2c, 0x76, 0x24, 0x0c, 0xd9, 0x1a, 0x26, 0x4a, 0x75, 0xa4, + 0x8c, 0x25, 0xa8, 0x7b, 0x69, 0x58, 0x8e, 0xb7, 0x82, 0xb7, 0x33, 0x86, 0xd0, 0xe1, 0xde, 0x95, + 0x06, 0x24, 0x62, 0x76, 0x7d, 0xec, 0x98, 0x45, 0x01, 0x06, 0x4d, 0xd2, 0x81, 0x81, 0x2b, 0xa9, + 0x5e, 0xe8, 0xc3, 0x13, 0x95, 0x4d, 0x2b, 0x02, 0xf8, 0xbf, 0x6a, 0x00, 0x2f, 0x8e, 0x1e, 0x4a, + 0x31, 0x88, 0x01, 0x18, 0x6b, 0x24, 0xde, 0xb4, 0xef, 0x5f, 0xf7, 0x9d, 0x4d, 0xd7, 0xef, 0x91, + 0x03, 0x86, 0xf6, 0x45, 0x68, 0x8b, 0x23, 0x90, 0x2c, 0x4c, 0x2d, 0x4b, 0x66, 0x8d, 0x3c, 0x19, + 0x29, 0xcc, 0x87, 0x5a, 0x69, 0x3e, 0x98, 0xd7, 0x60, 0x4a, 0xee, 0x8e, 0x2f, 0x22, 0xf6, 0xfd, + 0x1e, 0x39, 0xe0, 0x03, 0x9a, 0xb6, 0x04, 0xc5, 0xf9, 0xbc, 0x85, 0xd8, 0x61, 0x08, 0xca, 0xfc, + 0x9d, 0x0e, 0xe7, 0x4a, 0x26, 0x47, 0xc1, 0x83, 0xea, 0x91, 0xf1, 0x52, 0x1b, 0x85, 0x97, 0xba, + 0x82, 0x97, 0x7d, 0x98, 0xc3, 0x20, 0x49, 0x5d, 0x77, 0x1b, 0x1c, 0x00, 0x6f, 0x54, 0x15, 0xfc, + 0x65, 0x23, 0x45, 0xec, 0x25, 0x2e, 0x06, 0xbf, 0xac, 0x77, 0x81, 0xc0, 0x7c, 0x75, 0xe3, 0x8a, + 0xf0, 0xbf, 0xac, 0x86, 0xff, 0xdf, 0xab, 0xc2, 0x2f, 0x5b, 0x22, 0xc5, 0xff, 0x00, 0x66, 0x59, + 0x52, 0xed, 0x11, 0xdf, 0xd9, 0x8c, 0x06, 0xdc, 0x91, 0x8b, 0xd0, 0x46, 0xf9, 0xcd, 0x68, 0x90, + 0x6f, 0x00, 0x25, 0x16, 0x6b, 0xd1, 0xf7, 0x5c, 0x96, 0x3c, 0x79, 0x0b, 0x91, 0xf4, 0x24, 0x16, + 0x5b, 0x20, 0x23, 0x22, 0x4e, 0x8b, 0x98, 0x77, 0x6b, 0x56, 0x46, 0x9b, 0xbf, 0x68, 0xc2, 0x84, + 0x40, 0x23, 0x5f, 0x14, 0xd9, 0x9e, 0x3b, 0x4b, 0xab, 0x48, 0x61, 0x5d, 0xdb, 0x3f, 0xcc, 0xe1, + 0x85, 0x94, 0x7c, 0x54, 0x57, 0x53, 0x8f, 0xea, 0x0a, 0x36, 0xd5, 0xcb, 0x36, 0x15, 0xc6, 0xd5, + 0x28, 0x8f, 0x8b, 0x95, 0x71, 0xbc, 0xb2, 0xd9, 0xf6, 0xec, 0x78, 0x97, 0x86, 0x43, 0xb1, 0x85, + 0x6e, 0x58, 0x25, 0x3e, 0x2b, 0x1d, 0x91, 0x97, 0xd5, 0xfe, 0xb8, 0x84, 0x17, 0xb8, 0xac, 0xd2, + 0x46, 0x4e, 0xba, 0x07, 0xc0, 0x33, 0x1b, 0x95, 0x89, 0xb6, 0x45, 0x91, 0x4b, 0x7d, 0x5e, 0x85, + 0x62, 0xa9, 0x2f, 0xb3, 0xd8, 0xc8, 0x87, 0xd1, 0xe0, 0x46, 0x48, 0x87, 0x62, 0x7b, 0x95, 0x92, + 0x7c, 0xe4, 0xd4, 0x8f, 0xd3, 0x0a, 0xb6, 0x8d, 0xb2, 0x12, 0x8b, 0xc9, 0x0a, 0x92, 0xd7, 0xf9, + 0x53, 0x56, 0x4a, 0x32, 0x2c, 0x45, 0xe4, 0x40, 0x14, 0xef, 0xec, 0x4f, 0x25, 0x72, 0xb3, 0x6a, + 0xe4, 0x0a, 0xd5, 0x58, 0x87, 0x7f, 0x95, 0xab, 0xb1, 0xbc, 0xc4, 0x99, 0x53, 0x4a, 0x9c, 0xeb, + 0x30, 0x41, 0x03, 0x36, 0xfd, 0xa3, 0xae, 0xc1, 0xa7, 0xcb, 0xf3, 0xa3, 0x13, 0xd4, 0xd2, 0x16, + 0xb6, 0xc4, 0x89, 0x91, 0xca, 0x19, 0x1b, 0x30, 0x4b, 0x77, 0x77, 0x3d, 0xd7, 0x27, 0xdb, 0x49, + 0xb4, 0xc7, 0xb7, 0xda, 0xe7, 0x38, 0xd8, 0xcd, 0xaa, 0x22, 0x42, 0x6d, 0x69, 0x15, 0x45, 0x59, + 0xe5, 0x67, 0xc7, 0xb8, 0xc9, 0xe1, 0x09, 0xee, 0x3c, 0x4f, 0x70, 0x0a, 0x8f, 0x9f, 0x79, 0x4a, + 0x89, 0xfe, 0x09, 0xee, 0x38, 0x99, 0x85, 0x5a, 0x62, 0xbb, 0xbf, 0x47, 0xf8, 0xa1, 0x51, 0x77, + 0x1e, 0xeb, 0x47, 0x99, 0x27, 0xaa, 0xbb, 0x27, 0xd3, 0xea, 0x6e, 0xe1, 0x55, 0x98, 0x92, 0x07, + 0x58, 0x31, 0x99, 0xcf, 0xcb, 0x93, 0x79, 0x52, 0x9e, 0xab, 0xdf, 0xd1, 0x60, 0xb6, 0x30, 0x34, + 0xd6, 0x3a, 0x76, 0x63, 0x8f, 0x08, 0x0d, 0x48, 0xb0, 0xdd, 0x91, 0x43, 0xa2, 0xbe, 0x98, 0x3c, + 0xfc, 0x6f, 0x61, 0x49, 0x2d, 0xdb, 0xb2, 0x9b, 0x30, 0xe5, 0x6e, 0xf5, 0x98, 0xa2, 0x1e, 0x4d, + 0x7c, 0x27, 0xbb, 0x34, 0x90, 0x78, 0x7c, 0xdb, 0xbe, 0xd5, 0x5b, 0xb6, 0x9d, 0x01, 0xc1, 0x2b, + 0xa4, 0x06, 0xb7, 0x49, 0x65, 0x9a, 0x0e, 0x4c, 0xde, 0x76, 0x83, 0x68, 0x85, 0x0e, 0x87, 0x0c, + 0x02, 0x0e, 0x89, 0x59, 0x1d, 0xaf, 0x71, 0x87, 0x09, 0x8a, 0x79, 0xd3, 0x21, 0xbb, 0x76, 0xe2, + 0xc5, 0xac, 0x69, 0x9a, 0x32, 0x24, 0x16, 0x3f, 0x42, 0x88, 0xa8, 0xbf, 0x8a, 0xd2, 0x68, 0xa7, + 0xc4, 0x31, 0x7f, 0xab, 0x43, 0x87, 0x67, 0xc4, 0x15, 0x0e, 0x38, 0x87, 0x0b, 0x5d, 0x85, 0x06, + 0x4f, 0x00, 0xa2, 0xa2, 0x3c, 0xfe, 0xdc, 0x05, 0x9b, 0x1a, 0xd7, 0xa0, 0x49, 0x03, 0x5e, 0x86, + 0x62, 0xba, 0x7c, 0x6e, 0x94, 0x90, 0x7a, 0x4d, 0x60, 0x09, 0x29, 0xe3, 0x06, 0xc0, 0x30, 0xaf, + 0x3a, 0xb1, 0x78, 0x18, 0x57, 0x87, 0x24, 0xc9, 0x9c, 0x9b, 0xad, 0x8b, 0xd9, 0x5d, 0x41, 0xcd, + 0x52, 0x99, 0xc6, 0x2d, 0x98, 0xe1, 0x66, 0x6f, 0xa5, 0x07, 0x70, 0x3c, 0x06, 0xe3, 0xf7, 0x58, + 0x90, 0x36, 0xbf, 0xaf, 0x09, 0x37, 0xb2, 0xaf, 0x3d, 0x82, 0xbe, 0xcf, 0x5d, 0xa2, 0x9d, 0xca, + 0x25, 0x0b, 0x30, 0x39, 0x4c, 0xa4, 0xf3, 0xc0, 0x9a, 0x95, 0xd1, 0x79, 0x88, 0x6a, 0x63, 0x87, + 0xc8, 0xfc, 0x81, 0x06, 0xdd, 0xb7, 0xa8, 0xeb, 0xf3, 0x0f, 0xd7, 0x83, 0xc0, 0x13, 0x57, 0x4a, + 0xa7, 0x8e, 0xf9, 0x17, 0xa0, 0x65, 0xa3, 0x1a, 0x3f, 0x16, 0x61, 0x1f, 0xe3, 0x8c, 0x2f, 0x97, + 0x91, 0x0e, 0x5a, 0x6a, 0xf2, 0x41, 0x8b, 0xf9, 0x89, 0x06, 0x33, 0xe8, 0x94, 0x77, 0x12, 0x37, + 0x3e, 0xb5, 0x7d, 0xcb, 0x30, 0x79, 0x90, 0xb8, 0xf1, 0x29, 0x50, 0x99, 0xc9, 0x95, 0xf1, 0x54, + 0xab, 0xc0, 0x93, 0xf9, 0x13, 0x0d, 0x2e, 0x14, 0xdd, 0x7a, 0xbd, 0xdf, 0x27, 0xc1, 0xc3, 0x9c, + 0x52, 0xca, 0x41, 0x53, 0xbd, 0x70, 0xd0, 0x54, 0x69, 0xb2, 0x45, 0x3e, 0x26, 0xfd, 0x47, 0xd7, + 0xe4, 0xaf, 0xea, 0xf0, 0xd4, 0x5a, 0x36, 0xf1, 0x6e, 0x87, 0xb6, 0x1f, 0xed, 0x92, 0x30, 0x7c, + 0x88, 0xf6, 0x6e, 0xc0, 0xb4, 0x4f, 0xee, 0xe5, 0x36, 0x89, 0xe9, 0x38, 0xae, 0x1a, 0x55, 0x78, + 0xbc, 0xdc, 0x65, 0xfe, 0x43, 0x83, 0x0e, 0xea, 0x79, 0xdb, 0xed, 0xef, 0x3f, 0xc4, 0xc1, 0xdf, + 0x82, 0x99, 0x7d, 0x6e, 0x01, 0xa3, 0x4e, 0x91, 0xb6, 0x0b, 0xd2, 0x63, 0x0e, 0xff, 0x53, 0x0d, + 0xe6, 0xd2, 0x9b, 0xec, 0x43, 0xf7, 0x61, 0x82, 0x75, 0x1b, 0x66, 0xf1, 0xa4, 0xfd, 0xb4, 0x0e, + 0x28, 0x8a, 0x8f, 0xe9, 0x81, 0x9f, 0x6b, 0x30, 0x8b, 0x9a, 0xde, 0xf4, 0x63, 0x12, 0x9e, 0x7a, + 0xfc, 0x37, 0xa1, 0x4d, 0xfc, 0x38, 0xb4, 0xfd, 0xd3, 0x64, 0x48, 0x59, 0x74, 0xcc, 0x24, 0xf9, + 0x89, 0x06, 0x06, 0x57, 0xb5, 0xea, 0x46, 0x43, 0x37, 0x8a, 0x1e, 0x62, 0xe8, 0xc6, 0x33, 0xf8, + 0x7b, 0x3a, 0x9c, 0x97, 0xb4, 0x6c, 0x26, 0xf1, 0xa3, 0x6e, 0xb2, 0xb1, 0x0a, 0x2d, 0x56, 0x23, + 0xc8, 0xf7, 0xa0, 0xe3, 0x76, 0x94, 0x0b, 0xb2, 0x2a, 0x96, 0x13, 0x3d, 0xd2, 0xa7, 0xbe, 0x13, + 0xf1, 0xe2, 0x68, 0xda, 0x52, 0x78, 0x2c, 0x0d, 0x2d, 0x48, 0x6a, 0x56, 0x6c, 0xbf, 0x4f, 0xbc, + 0xc7, 0xc6, 0x45, 0xe6, 0x8f, 0x34, 0x98, 0xc1, 0x26, 0x8f, 0xfe, 0x90, 0xd9, 0x5a, 0x8f, 0x40, + 0xfe, 0xdc, 0x44, 0x89, 0xc1, 0x6b, 0x5e, 0xd2, 0x22, 0xd7, 0xd5, 0x8f, 0x2e, 0xb4, 0x6e, 0x42, + 0xbb, 0xbf, 0x67, 0xfb, 0x83, 0x53, 0x81, 0x4b, 0x16, 0x35, 0x63, 0x78, 0x52, 0x3e, 0xb4, 0x5f, + 0xc1, 0x4f, 0x7c, 0xf8, 0x2f, 0x15, 0x86, 0x72, 0xec, 0x3b, 0x87, 0x07, 0x73, 0xfa, 0x3e, 0xcc, + 0xe1, 0x4d, 0xb1, 0x54, 0x13, 0x1a, 0x5d, 0x98, 0xb0, 0x1d, 0x3c, 0xba, 0xd0, 0xb8, 0x50, 0x4a, + 0xaa, 0x2f, 0x09, 0xc4, 0x1b, 0xbb, 0xfc, 0x25, 0xc1, 0x45, 0x00, 0xdb, 0x71, 0xde, 0xa3, 0xa1, + 0xe3, 0xfa, 0x69, 0x81, 0x2f, 0x71, 0xcc, 0xb7, 0x60, 0xea, 0x46, 0x48, 0x87, 0xb7, 0xa5, 0x3b, + 0xdf, 0x63, 0x6f, 0xa5, 0xe5, 0xfb, 0x62, 0x5d, 0xbd, 0x2f, 0x36, 0x3f, 0x84, 0x27, 0x4a, 0x86, + 0x73, 0x67, 0xad, 0xe0, 0x55, 0x76, 0xda, 0x89, 0x80, 0x4c, 0xd5, 0x59, 0x9e, 0x6c, 0x8b, 0xa5, + 0x08, 0x99, 0x5f, 0xd1, 0xe0, 0x99, 0x92, 0xfa, 0xeb, 0x41, 0x10, 0xd2, 0x43, 0x11, 0x93, 0xb3, + 0xe8, 0x46, 0x2d, 0x7e, 0xf5, 0x62, 0xf1, 0x5b, 0x69, 0x84, 0x52, 0xb0, 0x7f, 0x06, 0x46, 0xfc, + 0x50, 0x83, 0x59, 0x61, 0x84, 0xe3, 0x88, 0x6e, 0x5f, 0x86, 0x26, 0x3e, 0xa6, 0x11, 0x1d, 0x3e, + 0x53, 0xd9, 0x61, 0xfa, 0x08, 0xc8, 0x12, 0x8d, 0xcb, 0x88, 0xd4, 0xab, 0x66, 0xd4, 0xff, 0x67, + 0x60, 0x1f, 0xfb, 0xb9, 0x8b, 0x10, 0x30, 0xbf, 0x98, 0x82, 0x79, 0x95, 0x78, 0xe4, 0x2c, 0x7d, + 0x64, 0xde, 0x81, 0x19, 0xfe, 0xb2, 0x27, 0xf7, 0xc1, 0x99, 0xa8, 0x7d, 0x0f, 0x3a, 0x5c, 0xed, + 0x99, 0xdb, 0x9b, 0xcd, 0x0e, 0xe6, 0x1f, 0x39, 0x95, 0x9c, 0x89, 0xf6, 0xff, 0x86, 0x73, 0xa9, + 0xef, 0xf1, 0x75, 0x2f, 0xea, 0x1e, 0x71, 0xb7, 0x67, 0x7e, 0x04, 0xf3, 0x2b, 0xd4, 0x3f, 0x24, + 0x61, 0xa4, 0x3c, 0x08, 0x46, 0x09, 0x65, 0xf2, 0x0b, 0xca, 0x58, 0x02, 0xa3, 0x2f, 0x49, 0x88, + 0xd3, 0x45, 0x9d, 0x9f, 0x2e, 0x56, 0x7c, 0x31, 0x3f, 0x86, 0x05, 0xb9, 0x87, 0x1e, 0x89, 0xb7, + 0x43, 0xf7, 0x50, 0xea, 0x45, 0x1c, 0x82, 0x6b, 0xca, 0x21, 0x78, 0x7e, 0x68, 0xae, 0x2b, 0x87, + 0xe6, 0x17, 0xa0, 0xe5, 0x46, 0x42, 0x01, 0x07, 0xe1, 0xa4, 0x95, 0x33, 0x4c, 0x1b, 0xe6, 0x30, + 0x5c, 0xe2, 0x52, 0x8a, 0x77, 0xb1, 0x00, 0x93, 0x88, 0xc1, 0xac, 0x93, 0x8c, 0x1e, 0x79, 0xc5, + 0x33, 0xf2, 0x42, 0xd3, 0xec, 0xc1, 0x9c, 0x78, 0xb8, 0xb3, 0x6d, 0x0f, 0x5c, 0x1f, 0x93, 0xf2, + 0x45, 0x80, 0xc0, 0x1e, 0xa4, 0xcf, 0x1e, 0xf1, 0x6a, 0x4e, 0xe2, 0xb0, 0xef, 0xd1, 0x1e, 0xbd, + 0x27, 0xbe, 0xeb, 0xf8, 0x3d, 0xe7, 0x98, 0xef, 0x82, 0x61, 0x91, 0x28, 0xa0, 0x7e, 0x44, 0x24, + 0xad, 0x8b, 0xd0, 0x5e, 0x49, 0xc2, 0x90, 0xf8, 0xac, 0xab, 0xf4, 0x2d, 0x9c, 0xcc, 0x62, 0x7a, + 0x7b, 0xb9, 0x5e, 0x3c, 0xc6, 0x97, 0x38, 0xe6, 0xdf, 0x6b, 0xd0, 0xea, 0xb9, 0x03, 0xdf, 0xf6, + 0x2c, 0x72, 0x60, 0xbc, 0x0e, 0x4d, 0xdc, 0xe2, 0x08, 0x64, 0x55, 0x1d, 0x2b, 0x63, 0x6b, 0xdc, + 0xcb, 0x59, 0xe4, 0xe0, 0xe6, 0xbf, 0x59, 0x42, 0xc6, 0x78, 0x27, 0x7d, 0xde, 0xb4, 0x8e, 0x47, + 0x56, 0x62, 0xbd, 0xfb, 0xcf, 0x13, 0x94, 0x88, 0xd6, 0xa8, 0x4b, 0xd5, 0xc0, 0x0c, 0xea, 0xf3, + 0x12, 0x48, 0xa4, 0x93, 0xd1, 0x06, 0x61, 0xa5, 0x24, 0x0c, 0x42, 0x19, 0x26, 0x6d, 0xf3, 0x43, + 0x1d, 0xb1, 0xb2, 0x8f, 0x96, 0xc6, 0xb3, 0x1f, 0x21, 0x8d, 0x32, 0x4c, 0x7a, 0x2f, 0xf1, 0x07, + 0x77, 0x02, 0x71, 0xd6, 0x38, 0x5a, 0xfa, 0x26, 0x6f, 0x26, 0xa4, 0x51, 0x86, 0x49, 0x87, 0x3c, + 0xd9, 0x73, 0xa7, 0x1f, 0x27, 0x8d, 0x6b, 0x82, 0x90, 0x46, 0x19, 0xe3, 0x7d, 0xe8, 0xac, 0x91, + 0xd8, 0xa2, 0x74, 0xb8, 0x7c, 0xb4, 0x26, 0xae, 0x7a, 0xf0, 0xf5, 0xf9, 0x8b, 0x23, 0xf5, 0x14, + 0x05, 0x50, 0x63, 0x49, 0xcf, 0x72, 0x0b, 0x26, 0x02, 0xfb, 0xc8, 0xa3, 0xb6, 0x63, 0x7e, 0xa3, + 0x0e, 0x90, 0x1a, 0x11, 0xf1, 0xa2, 0x4b, 0x09, 0xff, 0xa5, 0x13, 0xc3, 0x1f, 0x78, 0x47, 0x12, + 0x00, 0x7a, 0xd5, 0x00, 0xf8, 0xaf, 0x71, 0x01, 0x80, 0xda, 0x0a, 0x10, 0xb8, 0x56, 0x80, 0xc0, + 0xa5, 0x13, 0x21, 0x20, 0x8c, 0x12, 0x20, 0xb8, 0x56, 0x00, 0xc1, 0xa5, 0x13, 0x41, 0x20, 0xe4, + 0x05, 0x0c, 0xae, 0x15, 0x60, 0x70, 0xe9, 0x44, 0x18, 0x08, 0x79, 0x01, 0x84, 0x6b, 0x05, 0x20, + 0x5c, 0x3a, 0x11, 0x08, 0x42, 0x5e, 0x40, 0xe1, 0xc3, 0x91, 0x50, 0x58, 0x7a, 0x00, 0x28, 0xa0, + 0xce, 0x63, 0xc1, 0xf0, 0x07, 0x1d, 0x66, 0xd6, 0xb3, 0xf7, 0xc0, 0xfc, 0x5e, 0xa5, 0xf4, 0x60, + 0x51, 0xab, 0x78, 0xb0, 0x68, 0xbc, 0x08, 0x73, 0xc8, 0x20, 0xd2, 0x65, 0x12, 0xa6, 0xfb, 0xf2, + 0x07, 0x7e, 0x7d, 0x96, 0x44, 0x31, 0x1d, 0xae, 0xda, 0xb1, 0x9d, 0x96, 0x99, 0x39, 0x47, 0xbe, + 0xdc, 0xac, 0x97, 0x7e, 0x87, 0x10, 0x52, 0x3a, 0xcc, 0x6e, 0x2d, 0x05, 0xc5, 0x24, 0x62, 0x77, + 0x48, 0x68, 0x12, 0x8b, 0x04, 0x97, 0x92, 0xf8, 0xca, 0xcc, 0x71, 0x6d, 0x7e, 0x25, 0x28, 0x9e, + 0x60, 0x65, 0x0c, 0x9e, 0x93, 0xf3, 0x2b, 0x4e, 0xf1, 0x3b, 0x81, 0x9c, 0x33, 0xc6, 0x75, 0x24, + 0xff, 0xc9, 0x89, 0x1b, 0xbb, 0xf2, 0xd3, 0xac, 0x86, 0xa5, 0xf0, 0xcc, 0xbf, 0x68, 0x70, 0x6e, + 0xdb, 0x0e, 0x63, 0xb7, 0xef, 0x06, 0xb6, 0x1f, 0x6f, 0x92, 0xd8, 0xe6, 0xe3, 0x54, 0x1e, 0xcc, + 0x6a, 0x0f, 0xf6, 0x60, 0x76, 0x1b, 0x66, 0x07, 0xea, 0x5e, 0xeb, 0x01, 0xb7, 0x49, 0x45, 0x71, + 0xe5, 0xf5, 0x6f, 0xed, 0x81, 0x5f, 0xff, 0x9a, 0x5f, 0xd7, 0x61, 0xb6, 0xb0, 0x30, 0x1c, 0xbb, + 0xaa, 0x5e, 0x07, 0xc8, 0x9f, 0x9e, 0x1f, 0x73, 0x15, 0xa1, 0xe2, 0xd1, 0x92, 0x84, 0xaa, 0xee, + 0x42, 0x6b, 0xa7, 0xbf, 0x0b, 0xbd, 0x09, 0xed, 0x20, 0x0f, 0xd2, 0x31, 0x3b, 0xc1, 0x8a, 0x50, + 0x5a, 0xb2, 0xa8, 0xf9, 0x01, 0xcc, 0x95, 0x72, 0x24, 0xbf, 0xa0, 0xa4, 0xfb, 0xc4, 0xcf, 0x2e, + 0x28, 0x19, 0x21, 0x01, 0x5a, 0x2f, 0x02, 0xda, 0x73, 0x0f, 0xe5, 0x9f, 0x55, 0x08, 0xd2, 0xfc, + 0x96, 0x0e, 0xf3, 0xd5, 0x6b, 0xe7, 0xe3, 0xea, 0xee, 0x1d, 0xe8, 0x8e, 0x5a, 0x4b, 0xce, 0xcc, + 0xeb, 0x39, 0xba, 0xb3, 0x2a, 0xe3, 0x71, 0x75, 0xf7, 0xb9, 0x14, 0xdd, 0xd2, 0x62, 0x6b, 0xfe, + 0x2c, 0xf3, 0x4f, 0x56, 0x47, 0x3d, 0xa6, 0xfe, 0x31, 0x2e, 0x43, 0x07, 0x87, 0x29, 0x3d, 0x9e, + 0xc1, 0xb2, 0xbc, 0xc4, 0xcf, 0x33, 0x85, 0x54, 0x78, 0x9c, 0x19, 0x66, 0x7f, 0xad, 0xa5, 0x31, + 0xc9, 0xaa, 0xd3, 0xcf, 0x55, 0x4c, 0x72, 0xa4, 0x49, 0x65, 0x95, 0x84, 0xb4, 0xac, 0x6a, 0xfe, + 0x17, 0xd2, 0x4e, 0x46, 0x5a, 0xe6, 0x4b, 0xa9, 0xc4, 0x34, 0xdf, 0x81, 0xa7, 0x46, 0x6e, 0x1c, + 0x8e, 0x75, 0xaa, 0x54, 0xa1, 0xe9, 0x4a, 0x85, 0x66, 0xfe, 0x59, 0x83, 0xa7, 0x8f, 0xa9, 0x40, + 0x0b, 0xe1, 0xd0, 0x4e, 0x13, 0x8e, 0x57, 0x60, 0x9e, 0xfa, 0x2b, 0xd4, 0xf7, 0x49, 0x3f, 0x76, + 0xfd, 0x41, 0xa9, 0xe2, 0x1c, 0xf1, 0x35, 0x9f, 0x57, 0xb5, 0xea, 0x79, 0x55, 0x1f, 0x35, 0xaf, + 0x1a, 0xea, 0xbc, 0xfa, 0x32, 0x4c, 0xaf, 0x12, 0x6f, 0x33, 0x1a, 0xa4, 0x6f, 0xa2, 0xcf, 0xf4, + 0xf0, 0xa0, 0xf8, 0x72, 0xb4, 0x5e, 0x7e, 0x39, 0xba, 0x0c, 0x33, 0xb2, 0x01, 0xa7, 0x79, 0xf3, + 0xbb, 0x7c, 0xe1, 0xfd, 0x85, 0x25, 0xf1, 0x7f, 0x01, 0x5e, 0x2b, 0x79, 0x7f, 0xa7, 0xc9, 0x7f, + 0x49, 0xfc, 0xd2, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x80, 0x2b, 0x62, 0xc9, 0x70, 0x40, 0x00, + 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index be603554c..226ac5dcf 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -529,6 +529,7 @@ message SignalReq { SignalAcceptReq accept = 4; SignalHungUpReq hungUp = 5; SignalRejectReq reject = 6; + SignalGetRoomByGroupIDReq GetRoomByGroupID = 7; } } @@ -540,6 +541,7 @@ message SignalResp { SignalAcceptReply accept = 4; SignalHungUpReply hungUp = 5; SignalRejectReply reject = 6; + SignalGetRoomByGroupIDReply GetRoomByGroupID = 7; } } @@ -637,6 +639,19 @@ message SignalRejectReply { } +message SignalGetRoomByGroupIDReq { + string opUserID = 1; + string groupID = 2; +} + +message SignalGetRoomByGroupIDReply { + InvitationInfo invitation = 1; + repeated string onConnectingUserIDList = 2; + string token = 3; + string roomID = 4; + string liveURL = 5; +} + message DelMsgListReq{ string opUserID = 1; From 3b9cc6166967b157298132c0c26a90018da326fa Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 17 Aug 2022 11:27:56 +0800 Subject: [PATCH 176/230] update orgnization after update user --- pkg/grpc-etcdv3/getcdv3/resolver.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkg/grpc-etcdv3/getcdv3/resolver.go b/pkg/grpc-etcdv3/getcdv3/resolver.go index b72df5fc9..6e0b39256 100644 --- a/pkg/grpc-etcdv3/getcdv3/resolver.go +++ b/pkg/grpc-etcdv3/getcdv3/resolver.go @@ -96,6 +96,16 @@ func GetConn(schema, etcdaddr, serviceName string, operationID string) *grpc.Cli return r.grpcClientConn } +func GetDefaultConn(schema, etcdaddr, serviceName string, operationID string) *grpc.ClientConn { + conn := GetConn(schema, etcdaddr, serviceName, operationID) + if conn != nil { + log.NewWarn(operationID, utils.GetSelfFuncName(), schema, etcdaddr, serviceName, "conn is nil") + return conn + } + conn = GetConfigConn(serviceName, operationID) + return conn +} + func (r *Resolver) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) { if r.cli == nil { return nil, fmt.Errorf("etcd clientv3 client failed, etcd:%s", target) From cdf09aa1bdee9e0e10841ee6983c7b6b71c78cbf Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Wed, 17 Aug 2022 11:35:33 +0800 Subject: [PATCH 177/230] get grpc conn from config --- config/config.yaml | 4 +- pkg/grpc-etcdv3/getcdv3/resolver.go | 113 ++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 58cc41814..9c14726ae 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -73,7 +73,7 @@ kafka: serverip: 0.0.0.0 #作为rpc时,注册到etcd的地址,单机默认即可,如果是集群部署,需要修改(具体使用内网地址还是外网地址,要依情况而定,目的是api/gateway能访问到) -rpcRegisterIP: 127.0.0.1 +rpcRegisterIP: #默认即可 listenIP: 0.0.0.0 @@ -149,7 +149,7 @@ rpcport: #rpc服务端口 默认即可 openImOfficePort: [ 10210 ] openImOrganizationPort: [ 10220 ] openImConversationPort: [ 10230 ] - openImCachePort: [10240] + openImCachePort: [ 10240 ] c2c: callbackBeforeSendMsg: switch: false diff --git a/pkg/grpc-etcdv3/getcdv3/resolver.go b/pkg/grpc-etcdv3/getcdv3/resolver.go index b72df5fc9..92a3b5a64 100644 --- a/pkg/grpc-etcdv3/getcdv3/resolver.go +++ b/pkg/grpc-etcdv3/getcdv3/resolver.go @@ -1,6 +1,7 @@ package getcdv3 import ( + "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "context" @@ -96,6 +97,118 @@ func GetConn(schema, etcdaddr, serviceName string, operationID string) *grpc.Cli return r.grpcClientConn } +func GetConfigConn(serviceName string, operationID string) *grpc.ClientConn { + rpcRegisterIP := config.Config.RpcRegisterIP + var err error + if config.Config.RpcRegisterIP == "" { + rpcRegisterIP, err = utils.GetLocalIP() + if err != nil { + log.Error("", "GetLocalIP failed ", err.Error()) + return nil + } + } + + var configPortList []int + //1 + if config.Config.RpcRegisterName.OpenImUserName == serviceName { + configPortList = config.Config.RpcPort.OpenImAuthPort + } + //2 + if config.Config.RpcRegisterName.OpenImFriendName == serviceName { + configPortList = config.Config.RpcPort.OpenImAuthPort + } + //3 + if config.Config.RpcRegisterName.OpenImMsgName == serviceName { + configPortList = config.Config.RpcPort.OpenImAuthPort + } + //4 + if config.Config.RpcRegisterName.OpenImPushName == serviceName { + configPortList = config.Config.RpcPort.OpenImAuthPort + } + //5 + if config.Config.RpcRegisterName.OpenImRelayName == serviceName { + configPortList = config.Config.RpcPort.OpenImAuthPort + } + //6 + if config.Config.RpcRegisterName.OpenImGroupName == serviceName { + configPortList = config.Config.RpcPort.OpenImAuthPort + } + //7 + if config.Config.RpcRegisterName.OpenImAuthName == serviceName { + configPortList = config.Config.RpcPort.OpenImAuthPort + } + //8 + if config.Config.RpcRegisterName.OpenImMessageCMSName == serviceName { + configPortList = config.Config.RpcPort.OpenImAuthPort + } + //9 + if config.Config.RpcRegisterName.OpenImAdminCMSName == serviceName { + configPortList = config.Config.RpcPort.OpenImAuthPort + } + //10 + if config.Config.RpcRegisterName.OpenImOfficeName == serviceName { + configPortList = config.Config.RpcPort.OpenImAuthPort + } + //11 + if config.Config.RpcRegisterName.OpenImOrganizationName == serviceName { + configPortList = config.Config.RpcPort.OpenImAuthPort + } + //12 + if config.Config.RpcRegisterName.OpenImConversationName == serviceName { + configPortList = config.Config.RpcPort.OpenImAuthPort + } + //13 + if config.Config.RpcRegisterName.OpenImCacheName == serviceName { + configPortList = config.Config.RpcPort.OpenImAuthPort + } + //14 + if config.Config.RpcRegisterName.OpenImRealTimeCommName == serviceName { + configPortList = config.Config.RpcPort.OpenImAuthPort + } + if len(configPortList) == 0 { + log.Error("", "len(configPortList) == 0 ") + return nil + } + target := rpcRegisterIP + ":" + utils.Int32ToString(int32(configPortList[0])) + log.Info("", "rpcRegisterIP ", rpcRegisterIP, "port ", configPortList, "grpc target: ", target, "serviceName: ", serviceName) + conn, err := grpc.Dial(target, grpc.WithInsecure()) + if err != nil { + log.Error("", "grpc.Dail failed ", err.Error()) + return nil + } + return conn +} + +func GetDefaultConn(schema, etcdaddr, serviceName string, operationID string) *grpc.ClientConn { + rwNameResolverMutex.RLock() + r, ok := nameResolver[schema+serviceName] + rwNameResolverMutex.RUnlock() + if ok { + log.Debug(operationID, "etcd key ", schema+serviceName, "value ", *r.grpcClientConn, *r) + return r.grpcClientConn + } + + rwNameResolverMutex.Lock() + r, ok = nameResolver[schema+serviceName] + if ok { + rwNameResolverMutex.Unlock() + log.Debug(operationID, "etcd key ", schema+serviceName, "value ", *r.grpcClientConn, *r) + return r.grpcClientConn + } + + r, err := NewResolver(schema, etcdaddr, serviceName, operationID) + if err != nil { + log.Error(operationID, "etcd failed ", schema, etcdaddr, serviceName, err.Error()) + rwNameResolverMutex.Unlock() + return nil + } + + log.Debug(operationID, "etcd key ", schema+serviceName, "value ", *r.grpcClientConn, *r) + nameResolver[schema+serviceName] = r + rwNameResolverMutex.Unlock() + return r.grpcClientConn +} + func (r *Resolver) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) { if r.cli == nil { return nil, fmt.Errorf("etcd clientv3 client failed, etcd:%s", target) From 85a52f5d6bafb7946fe2522e30f9bb2521f6a540 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Wed, 17 Aug 2022 11:42:12 +0800 Subject: [PATCH 178/230] get grpc conn from config --- config/config.yaml | 1 + pkg/common/config/config.go | 1 + pkg/grpc-etcdv3/getcdv3/resolver.go | 34 ++++++++++++++--------------- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 9c14726ae..6e10a65b2 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -150,6 +150,7 @@ rpcport: #rpc服务端口 默认即可 openImOrganizationPort: [ 10220 ] openImConversationPort: [ 10230 ] openImCachePort: [ 10240 ] + openImRealTimeCommPort: [ 11300 ] c2c: callbackBeforeSendMsg: switch: false diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 53082d375..d5450aa11 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -128,6 +128,7 @@ type config struct { OpenImOrganizationPort []int `yaml:"openImOrganizationPort"` OpenImConversationPort []int `yaml:"openImConversationPort"` OpenImCachePort []int `yaml:"openImCachePort"` + OpenImRealTimeCommPort []int `yaml:"openImRealTimeCommPort"` } RpcRegisterName struct { OpenImStatisticsName string `yaml:"openImStatisticsName"` diff --git a/pkg/grpc-etcdv3/getcdv3/resolver.go b/pkg/grpc-etcdv3/getcdv3/resolver.go index 92a3b5a64..d8b544e9c 100644 --- a/pkg/grpc-etcdv3/getcdv3/resolver.go +++ b/pkg/grpc-etcdv3/getcdv3/resolver.go @@ -103,7 +103,7 @@ func GetConfigConn(serviceName string, operationID string) *grpc.ClientConn { if config.Config.RpcRegisterIP == "" { rpcRegisterIP, err = utils.GetLocalIP() if err != nil { - log.Error("", "GetLocalIP failed ", err.Error()) + log.Error(operationID, "GetLocalIP failed ", err.Error()) return nil } } @@ -111,27 +111,27 @@ func GetConfigConn(serviceName string, operationID string) *grpc.ClientConn { var configPortList []int //1 if config.Config.RpcRegisterName.OpenImUserName == serviceName { - configPortList = config.Config.RpcPort.OpenImAuthPort + configPortList = config.Config.RpcPort.OpenImUserPort } //2 if config.Config.RpcRegisterName.OpenImFriendName == serviceName { - configPortList = config.Config.RpcPort.OpenImAuthPort + configPortList = config.Config.RpcPort.OpenImFriendPort } //3 if config.Config.RpcRegisterName.OpenImMsgName == serviceName { - configPortList = config.Config.RpcPort.OpenImAuthPort + configPortList = config.Config.RpcPort.OpenImMessagePort } //4 if config.Config.RpcRegisterName.OpenImPushName == serviceName { - configPortList = config.Config.RpcPort.OpenImAuthPort + configPortList = config.Config.RpcPort.OpenImPushPort } //5 if config.Config.RpcRegisterName.OpenImRelayName == serviceName { - configPortList = config.Config.RpcPort.OpenImAuthPort + configPortList = config.Config.RpcPort.OpenIm } //6 if config.Config.RpcRegisterName.OpenImGroupName == serviceName { - configPortList = config.Config.RpcPort.OpenImAuthPort + configPortList = config.Config.RpcPort.OpenImGroupPort } //7 if config.Config.RpcRegisterName.OpenImAuthName == serviceName { @@ -139,41 +139,41 @@ func GetConfigConn(serviceName string, operationID string) *grpc.ClientConn { } //8 if config.Config.RpcRegisterName.OpenImMessageCMSName == serviceName { - configPortList = config.Config.RpcPort.OpenImAuthPort + configPortList = config.Config.RpcPort.OpenImMessageCmsPort } //9 if config.Config.RpcRegisterName.OpenImAdminCMSName == serviceName { - configPortList = config.Config.RpcPort.OpenImAuthPort + configPortList = config.Config.RpcPort.OpenImAdminCmsPort } //10 if config.Config.RpcRegisterName.OpenImOfficeName == serviceName { - configPortList = config.Config.RpcPort.OpenImAuthPort + configPortList = config.Config.RpcPort.OpenImOfficePort } //11 if config.Config.RpcRegisterName.OpenImOrganizationName == serviceName { - configPortList = config.Config.RpcPort.OpenImAuthPort + configPortList = config.Config.RpcPort.OpenImOrganizationPort } //12 if config.Config.RpcRegisterName.OpenImConversationName == serviceName { - configPortList = config.Config.RpcPort.OpenImAuthPort + configPortList = config.Config.RpcPort.OpenImConversationPort } //13 if config.Config.RpcRegisterName.OpenImCacheName == serviceName { - configPortList = config.Config.RpcPort.OpenImAuthPort + configPortList = config.Config.RpcPort.OpenImCachePort } //14 if config.Config.RpcRegisterName.OpenImRealTimeCommName == serviceName { - configPortList = config.Config.RpcPort.OpenImAuthPort + configPortList = config.Config.RpcPort.OpenImRealTimeCommPort } if len(configPortList) == 0 { - log.Error("", "len(configPortList) == 0 ") + log.Error(operationID, "len(configPortList) == 0 ") return nil } target := rpcRegisterIP + ":" + utils.Int32ToString(int32(configPortList[0])) - log.Info("", "rpcRegisterIP ", rpcRegisterIP, "port ", configPortList, "grpc target: ", target, "serviceName: ", serviceName) + log.Info(operationID, "rpcRegisterIP ", rpcRegisterIP, " port ", configPortList, " grpc target: ", target, " serviceName: ", serviceName) conn, err := grpc.Dial(target, grpc.WithInsecure()) if err != nil { - log.Error("", "grpc.Dail failed ", err.Error()) + log.Error(operationID, "grpc.Dail failed ", err.Error()) return nil } return conn From a3daaa55b54b77726f7e03b38734ed6c4895f770 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Wed, 17 Aug 2022 11:46:11 +0800 Subject: [PATCH 179/230] get grpc conn from config --- pkg/grpc-etcdv3/getcdv3/resolver.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/grpc-etcdv3/getcdv3/resolver.go b/pkg/grpc-etcdv3/getcdv3/resolver.go index d8b544e9c..c6e661763 100644 --- a/pkg/grpc-etcdv3/getcdv3/resolver.go +++ b/pkg/grpc-etcdv3/getcdv3/resolver.go @@ -127,7 +127,7 @@ func GetConfigConn(serviceName string, operationID string) *grpc.ClientConn { } //5 if config.Config.RpcRegisterName.OpenImRelayName == serviceName { - configPortList = config.Config.RpcPort.OpenIm + configPortList = config.Config.RpcPort.OpenImMessageGatewayPort } //6 if config.Config.RpcRegisterName.OpenImGroupName == serviceName { From 8956df959912b220c8ddb1f6f4f84bdd1e64c004 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 17 Aug 2022 11:51:37 +0800 Subject: [PATCH 180/230] etcd --- pkg/grpc-etcdv3/getcdv3/resolver.go | 34 ++++++----------------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/pkg/grpc-etcdv3/getcdv3/resolver.go b/pkg/grpc-etcdv3/getcdv3/resolver.go index c6e661763..76f5ae35d 100644 --- a/pkg/grpc-etcdv3/getcdv3/resolver.go +++ b/pkg/grpc-etcdv3/getcdv3/resolver.go @@ -67,7 +67,7 @@ func (r1 *Resolver) ResolveNow(rn resolver.ResolveNowOptions) { func (r1 *Resolver) Close() { } -func GetConn(schema, etcdaddr, serviceName string, operationID string) *grpc.ClientConn { +func getConn(schema, etcdaddr, serviceName string, operationID string) *grpc.ClientConn { rwNameResolverMutex.RLock() r, ok := nameResolver[schema+serviceName] rwNameResolverMutex.RUnlock() @@ -180,33 +180,13 @@ func GetConfigConn(serviceName string, operationID string) *grpc.ClientConn { } func GetDefaultConn(schema, etcdaddr, serviceName string, operationID string) *grpc.ClientConn { - rwNameResolverMutex.RLock() - r, ok := nameResolver[schema+serviceName] - rwNameResolverMutex.RUnlock() - if ok { - log.Debug(operationID, "etcd key ", schema+serviceName, "value ", *r.grpcClientConn, *r) - return r.grpcClientConn + con := getConn(schema, etcdaddr, serviceName, operationID) + if con != nil { + log.NewWarn(operationID, utils.GetSelfFuncName(), "conn is nil !!!!!", schema, etcdaddr, serviceName, operationID) + return con } - - rwNameResolverMutex.Lock() - r, ok = nameResolver[schema+serviceName] - if ok { - rwNameResolverMutex.Unlock() - log.Debug(operationID, "etcd key ", schema+serviceName, "value ", *r.grpcClientConn, *r) - return r.grpcClientConn - } - - r, err := NewResolver(schema, etcdaddr, serviceName, operationID) - if err != nil { - log.Error(operationID, "etcd failed ", schema, etcdaddr, serviceName, err.Error()) - rwNameResolverMutex.Unlock() - return nil - } - - log.Debug(operationID, "etcd key ", schema+serviceName, "value ", *r.grpcClientConn, *r) - nameResolver[schema+serviceName] = r - rwNameResolverMutex.Unlock() - return r.grpcClientConn + con = GetConfigConn(serviceName, operationID) + return con } func (r *Resolver) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) { From 864fccbdb24615dd32aaf1a6ec48e16810d5dc80 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Wed, 17 Aug 2022 11:58:23 +0800 Subject: [PATCH 181/230] get grpc conn from config --- pkg/grpc-etcdv3/getcdv3/resolver.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/grpc-etcdv3/getcdv3/resolver.go b/pkg/grpc-etcdv3/getcdv3/resolver.go index 76f5ae35d..142a82c5e 100644 --- a/pkg/grpc-etcdv3/getcdv3/resolver.go +++ b/pkg/grpc-etcdv3/getcdv3/resolver.go @@ -182,9 +182,9 @@ func GetConfigConn(serviceName string, operationID string) *grpc.ClientConn { func GetDefaultConn(schema, etcdaddr, serviceName string, operationID string) *grpc.ClientConn { con := getConn(schema, etcdaddr, serviceName, operationID) if con != nil { - log.NewWarn(operationID, utils.GetSelfFuncName(), "conn is nil !!!!!", schema, etcdaddr, serviceName, operationID) return con } + log.NewWarn(operationID, utils.GetSelfFuncName(), "conn is nil !!!!!", schema, etcdaddr, serviceName, operationID) con = GetConfigConn(serviceName, operationID) return con } From 6f2451edd387e709167687628c373686035bd44f Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 17 Aug 2022 12:12:54 +0800 Subject: [PATCH 182/230] etcd --- internal/api/auth/auth.go | 12 +-- internal/api/conversation/conversation.go | 28 +++--- internal/api/friend/friend.go | 46 +++++----- internal/api/group/group.go | 92 +++++++++---------- internal/api/group/super_group.go | 8 +- internal/api/manage/management_chat.go | 12 +-- internal/api/manage/management_user.go | 12 +-- internal/api/msg/del_msg.go | 16 ++-- internal/api/msg/get_max_min_seq.go | 4 +- internal/api/msg/pull_msg.go | 4 +- internal/api/msg/send_msg.go | 4 +- internal/api/office/tag.go | 28 +++--- internal/api/office/work_moments.go | 36 ++++---- internal/api/organization/organization.go | 48 +++++----- internal/api/user/user.go | 28 +++--- internal/cms_api/admin/admin.go | 4 +- internal/cms_api/group/group.go | 40 ++++---- internal/cms_api/message_cms/message.go | 16 ++-- internal/cms_api/statistics/statistics.go | 20 ++-- internal/cms_api/user/user.go | 42 ++++----- internal/demo/register/onboarding_process.go | 16 ++-- internal/msg_gateway/gate/batch_push.go | 4 +- internal/msg_gateway/gate/logic.go | 20 ++-- .../logic/online_history_msg_handler.go | 2 +- internal/push/logic/push_to_client.go | 6 +- internal/rpc/friend/friend.go | 20 ++-- internal/rpc/group/group.go | 72 +++++++-------- internal/rpc/msg/send_msg.go | 24 ++--- internal/rpc/msg/tag_send_msg.go | 4 +- internal/rpc/office/office.go | 4 +- internal/rpc/organization/organization.go | 12 +-- internal/rpc/user/user.go | 6 +- pkg/grpc-etcdv3/getcdv3/resolver.go | 4 +- 33 files changed, 347 insertions(+), 347 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index eaf1af6fc..a2164ea7e 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -49,9 +49,9 @@ func UserRegister(c *gin.Context) { //copier.Copy(req.UserInfo, ¶ms) req.OperationID = params.OperationID log.NewInfo(req.OperationID, "UserRegister args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + " getcdv3.GetConn == nil" + errMsg := req.OperationID + " getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -118,9 +118,9 @@ func UserToken(c *gin.Context) { } req := &rpc.UserTokenReq{Platform: params.Platform, FromUserID: params.UserID, OperationID: params.OperationID, LoginIp: params.LoginIp} log.NewInfo(req.OperationID, "UserToken args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + " getcdv3.GetConn == nil" + errMsg := req.OperationID + " getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -212,9 +212,9 @@ func ForceLogout(c *gin.Context) { } log.NewInfo(req.OperationID, "ForceLogout args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + " getcdv3.GetConn == nil" + errMsg := req.OperationID + " getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index 2c26d4f0e..e150a20e1 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -32,9 +32,9 @@ func SetConversation(c *gin.Context) { if err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -69,9 +69,9 @@ func ModifyConversationField(c *gin.Context) { if err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImConversationName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImConversationName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -104,9 +104,9 @@ func BatchSetConversations(c *gin.Context) { if err := utils.CopyStructFields(&reqPb, req); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -154,9 +154,9 @@ func GetAllConversations(c *gin.Context) { if err := utils.CopyStructFields(&reqPb, req); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -204,9 +204,9 @@ func GetConversation(c *gin.Context) { if err := utils.CopyStructFields(&reqPb, req); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -254,9 +254,9 @@ func GetConversations(c *gin.Context) { if err := utils.CopyStructFields(&reqPb, req); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -292,9 +292,9 @@ func SetRecvMsgOpt(c *gin.Context) { if err := utils.CopyStructFields(&reqPb, req); err != nil { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index ac637275f..2e896ea4e 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -48,7 +48,7 @@ func AddBlack(c *gin.Context) { } log.NewInfo(params.OperationID, "AddBlacklist args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) client := rpc.NewFriendClient(etcdConn) RpcResp, err := client.AddBlacklist(context.Background(), req) if err != nil { @@ -93,9 +93,9 @@ func ImportFriend(c *gin.Context) { } log.NewInfo(req.OperationID, "ImportFriend args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -156,9 +156,9 @@ func AddFriend(c *gin.Context) { log.NewInfo(req.CommID.OperationID, "AddFriend args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) if etcdConn == nil { - errMsg := req.CommID.OperationID + "getcdv3.GetConn == nil" + errMsg := req.CommID.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.CommID.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -213,9 +213,9 @@ func AddFriendResponse(c *gin.Context) { utils.CopyStructFields(req, ¶ms) log.NewInfo(req.CommID.OperationID, "AddFriendResponse args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) if etcdConn == nil { - errMsg := req.CommID.OperationID + "getcdv3.GetConn == nil" + errMsg := req.CommID.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.CommID.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -268,9 +268,9 @@ func DeleteFriend(c *gin.Context) { log.NewInfo(req.CommID.OperationID, "DeleteFriend args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) if etcdConn == nil { - errMsg := req.CommID.OperationID + "getcdv3.GetConn == nil" + errMsg := req.CommID.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.CommID.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -322,9 +322,9 @@ func GetBlacklist(c *gin.Context) { log.NewInfo(req.CommID.OperationID, "GetBlacklist args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) if etcdConn == nil { - errMsg := req.CommID.OperationID + "getcdv3.GetConn == nil" + errMsg := req.CommID.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.CommID.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -383,9 +383,9 @@ func SetFriendRemark(c *gin.Context) { log.NewInfo(req.CommID.OperationID, "SetFriendComment args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) if etcdConn == nil { - errMsg := req.CommID.OperationID + "getcdv3.GetConn == nil" + errMsg := req.CommID.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.CommID.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -436,9 +436,9 @@ func RemoveBlack(c *gin.Context) { } log.NewInfo(req.CommID.OperationID, "RemoveBlacklist args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) if etcdConn == nil { - errMsg := req.CommID.OperationID + "getcdv3.GetConn == nil" + errMsg := req.CommID.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.CommID.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -490,9 +490,9 @@ func IsFriend(c *gin.Context) { log.NewInfo(req.CommID.OperationID, "IsFriend args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) if etcdConn == nil { - errMsg := req.CommID.OperationID + "getcdv3.GetConn == nil" + errMsg := req.CommID.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.CommID.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -545,9 +545,9 @@ func GetFriendList(c *gin.Context) { log.NewInfo(req.CommID.OperationID, "GetFriendList args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) if etcdConn == nil { - errMsg := req.CommID.OperationID + "getcdv3.GetConn == nil" + errMsg := req.CommID.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.CommID.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -601,9 +601,9 @@ func GetFriendApplyList(c *gin.Context) { log.NewInfo(req.CommID.OperationID, "GetFriendApplyList args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) if etcdConn == nil { - errMsg := req.CommID.OperationID + "getcdv3.GetConn == nil" + errMsg := req.CommID.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.CommID.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -657,9 +657,9 @@ func GetSelfFriendApplyList(c *gin.Context) { log.NewInfo(req.CommID.OperationID, "GetSelfApplyList args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.CommID.OperationID) if etcdConn == nil { - errMsg := req.CommID.OperationID + "getcdv3.GetConn == nil" + errMsg := req.CommID.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.CommID.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/api/group/group.go b/internal/api/group/group.go index f14046b3d..bdb4edc69 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -57,9 +57,9 @@ func KickGroupMember(c *gin.Context) { log.NewInfo(req.OperationID, "KickGroupMember args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -120,9 +120,9 @@ func GetGroupMembersInfo(c *gin.Context) { log.NewInfo(req.OperationID, "GetGroupMembersInfo args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -164,9 +164,9 @@ func GetGroupMemberList(c *gin.Context) { log.NewInfo(req.OperationID, "GetGroupMemberList args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -221,9 +221,9 @@ func GetGroupAllMemberList(c *gin.Context) { log.NewInfo(req.OperationID, "GetGroupAllMember args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -277,9 +277,9 @@ func GetJoinedGroupList(c *gin.Context) { log.NewInfo(req.OperationID, "GetJoinedGroupList args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -337,9 +337,9 @@ func InviteUserToGroup(c *gin.Context) { log.NewInfo(req.OperationID, "InviteUserToGroup args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -407,9 +407,9 @@ func CreateGroup(c *gin.Context) { log.NewInfo(req.OperationID, "CreateGroup args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -463,9 +463,9 @@ func GetRecvGroupApplicationList(c *gin.Context) { } log.NewInfo(req.OperationID, "GetGroupApplicationList args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -515,9 +515,9 @@ func GetUserReqGroupApplicationList(c *gin.Context) { return } log.NewInfo(req.OperationID, "GetGroupsInfo args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -569,9 +569,9 @@ func GetGroupsInfo(c *gin.Context) { } log.NewInfo(req.OperationID, "GetGroupsInfo args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -639,9 +639,9 @@ func ApplicationGroupResponse(c *gin.Context) { log.NewInfo(req.OperationID, "ApplicationGroupResponse args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -692,9 +692,9 @@ func JoinGroup(c *gin.Context) { } log.NewInfo(req.OperationID, "JoinGroup args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -746,9 +746,9 @@ func QuitGroup(c *gin.Context) { log.NewInfo(req.OperationID, "QuitGroup args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -800,9 +800,9 @@ func SetGroupInfo(c *gin.Context) { log.NewInfo(req.OperationID, "SetGroupInfo args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -867,9 +867,9 @@ func TransferGroupOwner(c *gin.Context) { log.NewInfo(req.OperationID, "TransferGroupOwner args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -921,9 +921,9 @@ func DismissGroup(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -975,9 +975,9 @@ func MuteGroupMember(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -1029,9 +1029,9 @@ func CancelMuteGroupMember(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -1083,9 +1083,9 @@ func MuteGroup(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -1137,9 +1137,9 @@ func CancelMuteGroup(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -1181,9 +1181,9 @@ func SetGroupMemberNickname(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -1252,9 +1252,9 @@ func SetGroupMemberInfo(c *gin.Context) { reqPb.RoleLevel = &wrappers.Int32Value{Value: *req.RoleLevel} } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", reqPb.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -1291,9 +1291,9 @@ func GetGroupAbstractInfo(c *gin.Context) { return } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/api/group/super_group.go b/internal/api/group/super_group.go index 27a0aa841..9911ee7b4 100644 --- a/internal/api/group/super_group.go +++ b/internal/api/group/super_group.go @@ -31,9 +31,9 @@ func GetJoinedSuperGroupList(c *gin.Context) { return } reqPb := rpc.GetJoinedSuperGroupListReq{OperationID: req.OperationID, OpUserID: opUserID, UserID: req.FromUserID} - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -67,9 +67,9 @@ func GetSuperGroupsInfo(c *gin.Context) { return } reqPb := rpc.GetSuperGroupsInfoReq{OperationID: req.OperationID, OpUserID: opUserID, GroupIDList: req.GroupIDList} - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index 98d4ac98b..6ad9ed23e 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -202,9 +202,9 @@ func ManagementSendMsg(c *gin.Context) { pbData := newUserSendMsgReq(¶ms) log.Info(params.OperationID, "", "api ManagementSendMsg call start..., [data: %s]", pbData.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, params.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, params.OperationID) if etcdConn == nil { - errMsg := params.OperationID + "getcdv3.GetConn == nil" + errMsg := params.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(params.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -315,9 +315,9 @@ func ManagementBatchSendMsg(c *gin.Context) { log.NewInfo(params.OperationID, "Ws call success to ManagementSendMsgReq", params) var msgSendFailedFlag bool - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, params.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, params.OperationID) if etcdConn == nil { - errMsg := params.OperationID + "getcdv3.GetConn == nil" + errMsg := params.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(params.OperationID, errMsg) //resp.Data.FailedIDList = params.RecvIDList c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "rpc server error: etcdConn == nil"}) @@ -374,9 +374,9 @@ func CheckMsgIsSendSuccess(c *gin.Context) { log.Error(c.PostForm("operationID"), "json unmarshal err", err.Error(), c.PostForm("content")) return } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/api/manage/management_user.go b/internal/api/manage/management_user.go index eb2985258..fa198fa27 100644 --- a/internal/api/manage/management_user.go +++ b/internal/api/manage/management_user.go @@ -42,9 +42,9 @@ func DeleteUser(c *gin.Context) { } log.NewInfo(params.OperationID, "DeleteUser args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -97,9 +97,9 @@ func GetAllUsersUid(c *gin.Context) { } log.NewInfo(params.OperationID, "GetAllUsersUid args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -152,9 +152,9 @@ func AccountCheck(c *gin.Context) { } log.NewInfo(params.OperationID, "AccountCheck args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/api/msg/del_msg.go b/internal/api/msg/del_msg.go index 3fefd0c11..07322f8d9 100644 --- a/internal/api/msg/del_msg.go +++ b/internal/api/msg/del_msg.go @@ -54,9 +54,9 @@ func DelMsg(c *gin.Context) { return } - grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, req.OperationID) + grpcConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, req.OperationID) if grpcConn == nil { - errMsg := req.OperationID + " getcdv3.GetConn == nil" + errMsg := req.OperationID + " getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -130,9 +130,9 @@ func DelSuperGroupMsg(c *gin.Context) { c.JSON(http.StatusOK, resp) } log.Info(req.OperationID, "", "api DelSuperGroupMsg call start..., [data: %s]", pbData.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -203,9 +203,9 @@ func ClearMsg(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + " getcdv3.GetConn == nil" + errMsg := req.OperationID + " getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -251,9 +251,9 @@ func SetMsgMinSeq(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + " getcdv3.GetConn == nil" + errMsg := req.OperationID + " getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/api/msg/get_max_min_seq.go b/internal/api/msg/get_max_min_seq.go index 193fc9322..5b5a7a551 100644 --- a/internal/api/msg/get_max_min_seq.go +++ b/internal/api/msg/get_max_min_seq.go @@ -35,9 +35,9 @@ func GetSeq(c *gin.Context) { pbData := sdk_ws.GetMaxAndMinSeqReq{} pbData.UserID = params.SendID pbData.OperationID = params.OperationID - grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, pbData.OperationID) + grpcConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, pbData.OperationID) if grpcConn == nil { - errMsg := pbData.OperationID + " getcdv3.GetConn == nil" + errMsg := pbData.OperationID + " getcdv3.GetDefaultConn == nil" log.NewError(pbData.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/api/msg/pull_msg.go b/internal/api/msg/pull_msg.go index 418c3b708..9e27619bd 100644 --- a/internal/api/msg/pull_msg.go +++ b/internal/api/msg/pull_msg.go @@ -51,9 +51,9 @@ func PullMsgBySeqList(c *gin.Context) { pbData.OperationID = params.OperationID pbData.SeqList = params.SeqList - grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, pbData.OperationID) + grpcConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, pbData.OperationID) if grpcConn == nil { - errMsg := pbData.OperationID + "getcdv3.GetConn == nil" + errMsg := pbData.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(pbData.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/api/msg/send_msg.go b/internal/api/msg/send_msg.go index 7b41d0866..93502fe33 100644 --- a/internal/api/msg/send_msg.go +++ b/internal/api/msg/send_msg.go @@ -71,9 +71,9 @@ func SendMsg(c *gin.Context) { pbData := newUserSendMsgReq(token, ¶ms) log.Info(params.OperationID, "", "api SendMsg call start..., [data: %s]", pbData.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, params.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, params.OperationID) if etcdConn == nil { - errMsg := params.OperationID + "getcdv3.GetConn == nil" + errMsg := params.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(params.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/api/office/tag.go b/internal/api/office/tag.go index c64e736cd..d16d514e0 100644 --- a/internal/api/office/tag.go +++ b/internal/api/office/tag.go @@ -54,9 +54,9 @@ func GetUserTags(c *gin.Context) { reqPb.UserID = userID reqPb.OperationID = req.OperationID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -119,9 +119,9 @@ func CreateTag(c *gin.Context) { } reqPb.UserID = userID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -179,9 +179,9 @@ func DeleteTag(c *gin.Context) { } reqPb.UserID = userID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -239,9 +239,9 @@ func SetTag(c *gin.Context) { } reqPb.UserID = userID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -299,9 +299,9 @@ func SendMsg2Tag(c *gin.Context) { } reqPb.SendID = userID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -361,9 +361,9 @@ func GetTagSendLogs(c *gin.Context) { PageNumber: req.PageNumber, ShowNumber: req.ShowNumber, } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -428,9 +428,9 @@ func GetUserTagByID(c *gin.Context) { reqPb.UserID = userID reqPb.OperationID = req.OperationID reqPb.TagID = req.TagID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/api/office/work_moments.go b/internal/api/office/work_moments.go index 0c37f5b1d..7a8a8d7d7 100644 --- a/internal/api/office/work_moments.go +++ b/internal/api/office/work_moments.go @@ -56,9 +56,9 @@ func CreateOneWorkMoment(c *gin.Context) { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } reqPb.WorkMoment.UserID = userID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -120,9 +120,9 @@ func DeleteOneWorkMoment(c *gin.Context) { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } reqPb.UserID = userID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -183,9 +183,9 @@ func LikeOneWorkMoment(c *gin.Context) { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } reqPb.UserID = userID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -245,9 +245,9 @@ func CommentOneWorkMoment(c *gin.Context) { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } reqPb.UserID = userID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -305,9 +305,9 @@ func DeleteComment(c *gin.Context) { return } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -366,9 +366,9 @@ func GetWorkMomentByID(c *gin.Context) { reqPb.OperationID = req.OperationID reqPb.OpUserID = userID reqPb.WorkMomentID = req.WorkMomentID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -436,9 +436,9 @@ func GetUserWorkMoments(c *gin.Context) { } reqPb.OpUserID = opUserID reqPb.UserID = req.UserID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -548,9 +548,9 @@ func GetUserFriendWorkMoments(c *gin.Context) { ShowNumber: req.ShowNumber, } reqPb.UserID = userID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -649,9 +649,9 @@ func SetUserWorkMomentsLevel(c *gin.Context) { log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } reqPb.UserID = userID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/api/organization/organization.go b/internal/api/organization/organization.go index 1d6542306..42b6a9de7 100644 --- a/internal/api/organization/organization.go +++ b/internal/api/organization/organization.go @@ -48,9 +48,9 @@ func CreateDepartment(c *gin.Context) { } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "api args ", req.String(), "params", params) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -103,9 +103,9 @@ func UpdateDepartment(c *gin.Context) { } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "api args ", req.String(), "params", params) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -156,9 +156,9 @@ func GetSubDepartment(c *gin.Context) { } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "api args ", req.String(), "params", params) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -212,9 +212,9 @@ func DeleteDepartment(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "api args ", req.String(), "params", params) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -266,9 +266,9 @@ func CreateOrganizationUser(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "api args ", req.String(), "params", params) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -319,9 +319,9 @@ func UpdateOrganizationUser(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "api args ", req.String(), "params", params) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -372,9 +372,9 @@ func CreateDepartmentMember(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "api args ", req.String(), "params", params) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -425,9 +425,9 @@ func GetUserInDepartment(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "api args ", req.String(), "params", params) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -479,9 +479,9 @@ func UpdateUserInDepartment(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "api args ", req.String(), "params", params) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -532,9 +532,9 @@ func DeleteOrganizationUser(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "api args ", req.String(), "params", params) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -584,9 +584,9 @@ func GetDepartmentMember(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "api args ", req.String(), "params", params) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -637,9 +637,9 @@ func DeleteUserInDepartment(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "api args ", req.String(), "params", params) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/api/user/user.go b/internal/api/user/user.go index b861e19ee..977a340b2 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -38,9 +38,9 @@ func GetUsersInfoFromCache(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) return } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -86,9 +86,9 @@ func GetFriendIDListFromCache(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -128,9 +128,9 @@ func GetBlackIDListFromCache(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -181,9 +181,9 @@ func GetUsersInfo(c *gin.Context) { log.NewInfo(params.OperationID, "GetUserInfo args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -239,9 +239,9 @@ func UpdateUserInfo(c *gin.Context) { return } log.NewInfo(params.OperationID, "UpdateUserInfo args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -290,9 +290,9 @@ func SetGlobalRecvMessageOpt(c *gin.Context) { return } log.NewInfo(params.OperationID, "SetGlobalRecvMessageOpt args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -346,9 +346,9 @@ func GetSelfUserInfo(c *gin.Context) { req.UserIDList = append(req.UserIDList, params.UserID) log.NewInfo(params.OperationID, "GetUserInfo args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/cms_api/admin/admin.go b/internal/cms_api/admin/admin.go index a741c8016..1553eccd6 100644 --- a/internal/cms_api/admin/admin.go +++ b/internal/cms_api/admin/admin.go @@ -70,9 +70,9 @@ func AdminLogin(c *gin.Context) { reqPb.Secret = req.Secret reqPb.AdminID = req.AdminName reqPb.OperationID = utils.OperationIDGenerator() - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index d486dbaf5..39c2a86a6 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -32,9 +32,9 @@ func GetGroupByID(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) reqPb.GroupID = req.GroupID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -69,9 +69,9 @@ func GetGroups(c *gin.Context) { log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) reqPb.Pagination = &commonPb.RequestPagination{} utils.CopyStructFields(&reqPb.Pagination, req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -113,9 +113,9 @@ func GetGroupByName(c *gin.Context) { reqPb.GroupName = req.GroupName reqPb.Pagination = &commonPb.RequestPagination{} utils.CopyStructFields(&reqPb.Pagination, req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -165,9 +165,9 @@ func CreateGroup(c *gin.Context) { RoleLevel: 1, }) } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -201,9 +201,9 @@ func GetGroupMembers(c *gin.Context) { } reqPb.GroupID = req.GroupID reqPb.UserName = req.UserName - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -242,9 +242,9 @@ func AddGroupMembers(c *gin.Context) { log.NewInfo("", utils.GetSelfFuncName(), "req: ", req) reqPb.UserIDList = req.Members reqPb.GroupID = req.GroupId - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -277,9 +277,9 @@ func RemoveGroupMembers(c *gin.Context) { log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) reqPb.UserIDList = req.Members reqPb.GroupID = req.GroupId - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -313,9 +313,9 @@ func SetGroupOwner(c *gin.Context) { reqPb.GroupID = req.GroupId reqPb.UserID = req.UserId reqPb.RoleLevel = constant.GroupOwner - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -346,9 +346,9 @@ func SetGroupOrdinaryUsers(c *gin.Context) { reqPb.GroupID = req.GroupId reqPb.UserID = req.UserId reqPb.RoleLevel = constant.GroupOrdinaryUsers - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -384,9 +384,9 @@ func AlterGroupInfo(c *gin.Context) { Notification: req.Notification, FaceURL: req.ProfilePhoto, } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/cms_api/message_cms/message.go b/internal/cms_api/message_cms/message.go index bd5949771..6cfda0ebc 100644 --- a/internal/cms_api/message_cms/message.go +++ b/internal/cms_api/message_cms/message.go @@ -23,9 +23,9 @@ func BroadcastMessage(c *gin.Context) { reqPb pbMessage.BoradcastMessageReq ) reqPb.OperationID = utils.OperationIDGenerator() - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -45,9 +45,9 @@ func MassSendMassage(c *gin.Context) { reqPb pbMessage.MassSendMessageReq ) reqPb.OperationID = utils.OperationIDGenerator() - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -67,9 +67,9 @@ func WithdrawMessage(c *gin.Context) { reqPb pbMessage.WithdrawMessageReq ) reqPb.OperationID = utils.OperationIDGenerator() - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -101,9 +101,9 @@ func GetChatLogs(c *gin.Context) { } utils.CopyStructFields(&reqPb, &req) log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/cms_api/statistics/statistics.go b/internal/cms_api/statistics/statistics.go index b33bdee12..4afdf5673 100644 --- a/internal/cms_api/statistics/statistics.go +++ b/internal/cms_api/statistics/statistics.go @@ -31,9 +31,9 @@ func GetMessagesStatistics(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb.StatisticsReq, &req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -85,9 +85,9 @@ func GetUserStatistics(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb.StatisticsReq, &req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -149,9 +149,9 @@ func GetGroupStatistics(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb.StatisticsReq, &req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -206,9 +206,9 @@ func GetActiveUser(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb.StatisticsReq, req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -240,9 +240,9 @@ func GetActiveGroup(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb.StatisticsReq, req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index 09513a98e..988507e9b 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -32,9 +32,9 @@ func GetUserById(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb, &req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -74,9 +74,9 @@ func GetUsersByName(c *gin.Context) { PageNumber: int32(req.PageNumber), ShowNumber: int32(req.ShowNumber), } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -111,9 +111,9 @@ func GetUsers(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb.Pagination, &req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -147,9 +147,9 @@ func ResignUser(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb, &req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -177,9 +177,9 @@ func AlterUser(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb, &req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -206,7 +206,7 @@ func AddUser(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb, &req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) if etcdConn == nil { errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" log.NewError(reqPb.OperationID, errMsg) @@ -237,9 +237,9 @@ func BlockUser(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb, &req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -268,9 +268,9 @@ func UnblockUser(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb, &req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -302,9 +302,9 @@ func GetBlockUsers(c *gin.Context) { log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb.Pagination, &req) log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "blockUsers", reqPb.Pagination, req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -350,9 +350,9 @@ func GetBlockUserById(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) reqPb.UserId = req.UserId - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return @@ -384,9 +384,9 @@ func DeleteUser(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) reqPb.UserId = req.UserId - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetConn == nil" + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return diff --git a/internal/demo/register/onboarding_process.go b/internal/demo/register/onboarding_process.go index 5a10b6ec0..f4a03a647 100644 --- a/internal/demo/register/onboarding_process.go +++ b/internal/demo/register/onboarding_process.go @@ -89,9 +89,9 @@ func createOrganizationUser(operationID, userID, userName, phoneNumber, email st log.NewInfo(operationID, utils.GetSelfFuncName(), userID) }() log.NewInfo(operationID, utils.GetSelfFuncName(), "start createOrganizationUser") - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, operationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, operationID) if etcdConn == nil { - errMsg := operationID + "getcdv3.GetConn == nil" + errMsg := operationID + "getcdv3.GetDefaultConn == nil" log.NewError(operationID, errMsg) return errors.New(errMsg) } @@ -128,9 +128,9 @@ func joinTestDepartment(operationID, userID, departmentID string) error { defer func() { log.NewInfo(operationID, utils.GetSelfFuncName(), userID) }() - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, operationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, operationID) if etcdConn == nil { - errMsg := operationID + "getcdv3.GetConn == nil" + errMsg := operationID + "getcdv3.GetDefaultConn == nil" log.NewError(operationID, errMsg) return errors.New(errMsg) } @@ -160,9 +160,9 @@ func GetDepartmentGroupIDList(operationID, departmentID string) ([]string, error defer func() { log.NewInfo(operationID, utils.GetSelfFuncName(), departmentID) }() - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, operationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, operationID) if etcdConn == nil { - errMsg := operationID + "getcdv3.GetConn == nil" + errMsg := operationID + "getcdv3.GetDefaultConn == nil" log.NewError(operationID, errMsg) return nil, errors.New(errMsg) } @@ -199,9 +199,9 @@ func joinGroups(operationID, userID, userName, faceURL string, groupIDList []str defer func() { log.NewInfo(operationID, utils.GetSelfFuncName(), userID, groupIDList) }() - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, operationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, operationID) if etcdConn == nil { - errMsg := operationID + "getcdv3.GetConn == nil" + errMsg := operationID + "getcdv3.GetDefaultConn == nil" log.NewError(operationID, errMsg) return } diff --git a/internal/msg_gateway/gate/batch_push.go b/internal/msg_gateway/gate/batch_push.go index d0154c260..4ea7b5658 100644 --- a/internal/msg_gateway/gate/batch_push.go +++ b/internal/msg_gateway/gate/batch_push.go @@ -89,9 +89,9 @@ func (r *RPCServer) GetSingleUserMsg(operationID string, currentMsgSeq uint32, u rpcReq.SeqList = seqList rpcReq.UserID = userID rpcReq.OperationID = operationID - grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, rpcReq.OperationID) + grpcConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, rpcReq.OperationID) if grpcConn == nil { - errMsg := "getcdv3.GetConn == nil" + errMsg := "getcdv3.GetDefaultConn == nil" log.NewError(rpcReq.OperationID, errMsg) return nil } diff --git a/internal/msg_gateway/gate/logic.go b/internal/msg_gateway/gate/logic.go index b9d132cd1..a6f3a1974 100644 --- a/internal/msg_gateway/gate/logic.go +++ b/internal/msg_gateway/gate/logic.go @@ -72,9 +72,9 @@ func (ws *WServer) getSeqReq(conn *UserConn, m *Req) { rpcReq.UserID = m.SendID rpcReq.OperationID = m.OperationID log.Debug(m.OperationID, "Ws call success to getMaxAndMinSeq", m.SendID, m.ReqIdentifier, m.MsgIncr, data.(sdk_ws.GetMaxAndMinSeqReq).GroupIDList) - grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, rpcReq.OperationID) + grpcConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, rpcReq.OperationID) if grpcConn == nil { - errMsg := rpcReq.OperationID + "getcdv3.GetConn == nil" + errMsg := rpcReq.OperationID + "getcdv3.GetDefaultConn == nil" nReply.ErrCode = 500 nReply.ErrMsg = errMsg log.NewError(rpcReq.OperationID, errMsg) @@ -127,9 +127,9 @@ func (ws *WServer) pullMsgBySeqListReq(conn *UserConn, m *Req) { rpcReq.OperationID = m.OperationID rpcReq.GroupSeqList = data.(sdk_ws.PullMessageBySeqListReq).GroupSeqList log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq middle", m.SendID, m.ReqIdentifier, m.MsgIncr, data.(sdk_ws.PullMessageBySeqListReq).SeqList) - grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, m.OperationID) + grpcConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, m.OperationID) if grpcConn == nil { - errMsg := rpcReq.OperationID + "getcdv3.GetConn == nil" + errMsg := rpcReq.OperationID + "getcdv3.GetDefaultConn == nil" nReply.ErrCode = 500 nReply.ErrMsg = errMsg log.NewError(rpcReq.OperationID, errMsg) @@ -186,9 +186,9 @@ func (ws *WServer) sendMsgReq(conn *UserConn, m *Req) { MsgData: &data, } log.NewInfo(m.OperationID, "Ws call success to sendMsgReq middle", m.ReqIdentifier, m.SendID, m.MsgIncr, data.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, m.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, m.OperationID) if etcdConn == nil { - errMsg := m.OperationID + "getcdv3.GetConn == nil" + errMsg := m.OperationID + "getcdv3.GetDefaultConn == nil" nReply.ErrCode = 500 nReply.ErrMsg = errMsg log.NewError(m.OperationID, errMsg) @@ -237,9 +237,9 @@ func (ws *WServer) sendSignalMsgReq(conn *UserConn, m *Req) { isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendSignalMsg, m.OperationID) if isPass { signalResp := pbRtc.SignalResp{} - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRealTimeCommName, m.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRealTimeCommName, m.OperationID) if etcdConn == nil { - errMsg := m.OperationID + "getcdv3.GetConn == nil" + errMsg := m.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(m.OperationID, errMsg) ws.sendSignalMsgResp(conn, 204, errMsg, m, &signalResp) return @@ -267,9 +267,9 @@ func (ws *WServer) sendSignalMsgReq(conn *UserConn, m *Req) { } log.NewInfo(m.OperationID, utils.GetSelfFuncName(), "pbData: ", pbData) log.NewInfo(m.OperationID, "Ws call success to sendSignalMsgReq middle", m.ReqIdentifier, m.SendID, m.MsgIncr, msgData) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, m.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, m.OperationID) if etcdConn == nil { - errMsg := m.OperationID + "getcdv3.GetConn == nil" + errMsg := m.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(m.OperationID, errMsg) ws.sendSignalMsgResp(conn, 200, errMsg, m, &signalResp) return diff --git a/internal/msg_transfer/logic/online_history_msg_handler.go b/internal/msg_transfer/logic/online_history_msg_handler.go index 34f950320..75ef6c7c7 100644 --- a/internal/msg_transfer/logic/online_history_msg_handler.go +++ b/internal/msg_transfer/logic/online_history_msg_handler.go @@ -519,7 +519,7 @@ func sendMessageToPush(message *pbMsg.MsgDataToMQ, pushToUserID string) { log.Info(message.OperationID, "msg_transfer send message to push", "message", message.String()) rpcPushMsg := pbPush.PushMsgReq{OperationID: message.OperationID, MsgData: message.MsgData, PushToUserID: pushToUserID} mqPushMsg := pbMsg.PushMsgDataToMQ{OperationID: message.OperationID, MsgData: message.MsgData, PushToUserID: pushToUserID} - grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImPushName, message.OperationID) + grpcConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImPushName, message.OperationID) if grpcConn == nil { log.Error(rpcPushMsg.OperationID, "rpc dial failed", "push data", rpcPushMsg.String()) pid, offset, err := producer.SendMessage(&mqPushMsg, mqPushMsg.PushToUserID, rpcPushMsg.OperationID) diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index c22b26827..451a15a1b 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -169,9 +169,9 @@ func MsgToSuperGroupUser(pushMsg *pbPush.PushMsgReq) { } if len(pushToUserIDList) == 0 { getGroupMemberIDListFromCacheReq := &pbCache.GetGroupMemberIDListFromCacheReq{OperationID: pushMsg.OperationID, GroupID: pushMsg.MsgData.GroupID} - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, pushMsg.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, pushMsg.OperationID) if etcdConn == nil { - errMsg := pushMsg.OperationID + "getcdv3.GetConn == nil" + errMsg := pushMsg.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(pushMsg.OperationID, errMsg) return } @@ -315,7 +315,7 @@ func GetOfflinePushOpts(pushMsg *pbPush.PushMsgReq) (opts push.PushOpts, err err // sendMsgToKafka(m, m.SendID, "msgKey--sendID") // sendMsgToKafka(m, m.RecvID, "msgKey--recvID") // case constant.GroupChatType: -// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) +// etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) // client := pbGroup.NewGroupClient(etcdConn) // req := &pbGroup.Req{ // GroupID: m.RecvID, diff --git a/internal/rpc/friend/friend.go b/internal/rpc/friend/friend.go index 6ce4d62da..6a699d278 100644 --- a/internal/rpc/friend/friend.go +++ b/internal/rpc/friend/friend.go @@ -100,9 +100,9 @@ func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlackl } log.NewInfo(req.CommID.OperationID, "AddBlacklist rpc ok ", req.CommID.FromUserID, req.CommID.ToUserID) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.CommID.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.CommID.OperationID) if etcdConn == nil { - errMsg := req.CommID.OperationID + "getcdv3.GetConn == nil" + errMsg := req.CommID.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.CommID.OperationID, errMsg) return &pbFriend.AddBlacklistResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}}, nil } @@ -211,9 +211,9 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri } } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) resp.CommonResp.ErrMsg = errMsg resp.CommonResp.ErrCode = 500 @@ -315,9 +315,9 @@ func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddF } // cache rpc delFriendIDListFromCacheReq := &pbCache.DelFriendIDListFromCacheReq{OperationID: req.CommID.OperationID} - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.CommID.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.CommID.OperationID) if etcdConn == nil { - errMsg := req.CommID.OperationID + "getcdv3.GetConn == nil" + errMsg := req.CommID.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.CommID.OperationID, errMsg) return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}}, nil } @@ -378,9 +378,9 @@ func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFri } log.NewInfo(req.CommID.OperationID, "DeleteFriend rpc ok") - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.CommID.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.CommID.OperationID) if etcdConn == nil { - errMsg := req.CommID.OperationID + "getcdv3.GetConn == nil" + errMsg := req.CommID.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.CommID.OperationID, errMsg) return &pbFriend.DeleteFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}}, nil } @@ -473,9 +473,9 @@ func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.Remove } log.NewInfo(req.CommID.OperationID, "rpc RemoveBlacklist ok ") - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.CommID.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.CommID.OperationID) if etcdConn == nil { - errMsg := req.CommID.OperationID + "getcdv3.GetConn == nil" + errMsg := req.CommID.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.CommID.OperationID, errMsg) return &pbFriend.RemoveBlacklistResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}}, nil } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index fd180290f..b93720f32 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -396,9 +396,9 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite c.IsNotInGroup = false c.Ex = v.Ex reqPb.Conversation = &c - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}, nil } @@ -418,9 +418,9 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite c.GroupID = req.GroupID c.IsNotInGroup = false reqPb.Conversation = &c - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}, nil } @@ -440,9 +440,9 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite } } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}, nil } @@ -643,9 +643,9 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou c.GroupID = req.GroupID c.IsNotInGroup = true reqPb.Conversation = &c - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) resp.ErrCode = constant.ErrInternal.ErrCode resp.ErrMsg = errMsg @@ -669,9 +669,9 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou } } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}, nil } @@ -889,9 +889,9 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G c.Ex = conversation.Ex } reqPb.Conversation = &c - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}}, nil } @@ -903,9 +903,9 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "SetConversation success", respPb.String()) } - etcdCacheConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) + etcdCacheConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) if etcdCacheConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}}, nil } @@ -974,9 +974,9 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error(), groupMember) return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: constant.ErrInternal.ErrMsg}}, nil } @@ -1069,9 +1069,9 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) c.GroupID = req.GroupID c.IsNotInGroup = true reqPb.Conversation = &c - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}}, nil } @@ -1090,9 +1090,9 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) } } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: constant.ErrInternal.ErrMsg}}, nil } @@ -1245,9 +1245,9 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf if req.GroupInfoForSet.Notification != "" { //get group member user id getGroupMemberIDListFromCacheReq := &pbCache.GetGroupMemberIDListFromCacheReq{OperationID: req.OperationID, GroupID: req.GroupInfoForSet.GroupID} - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}}, http.WrapError(constant.ErrInternal) } @@ -1274,9 +1274,9 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf conversationReq.FieldType = constant.FieldGroupAtType conversation.GroupAtType = constant.GroupNotification conversationReq.UserIDList = cacheResp.UserIDList - nEtcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImConversationName, req.OperationID) + nEtcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImConversationName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}}, http.WrapError(constant.ErrInternal) } @@ -1444,9 +1444,9 @@ func (s *groupServer) OperateUserRole(_ context.Context, req *pbGroup.OperateUse log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster failed", err.Error()) return resp, http.WrapError(constant.ErrDB) } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return resp, http.WrapError(constant.ErrInternal) } @@ -1524,9 +1524,9 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo c.GroupID = req.GroupID c.IsNotInGroup = true reqPb.Conversation = &c - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return resp, http.WrapError(constant.ErrInternal) } @@ -1539,9 +1539,9 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo } } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return resp, http.WrapError(constant.ErrDB) } @@ -1610,9 +1610,9 @@ func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGrou } } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return resp, http.WrapError(constant.ErrDB) } @@ -1709,9 +1709,9 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou c.GroupID = req.GroupID c.IsNotInGroup = true reqPb.Conversation = &c - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}}, nil } @@ -1737,9 +1737,9 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou } } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 500, ErrMsg: errMsg}}, nil } diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 91d8ca1d3..9663c932c 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -82,9 +82,9 @@ func messageVerification(data *pbChat.SendMsgReq) (bool, int32, string, []string } log.NewDebug(data.OperationID, config.Config.MessageVerify.FriendVerify) reqGetBlackIDListFromCache := &cacheRpc.GetBlackIDListFromCacheReq{UserID: data.MsgData.RecvID, OperationID: data.OperationID} - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, data.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, data.OperationID) if etcdConn == nil { - errMsg := data.OperationID + "getcdv3.GetConn == nil" + errMsg := data.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(data.OperationID, errMsg) return true, 0, "", nil } @@ -105,9 +105,9 @@ func messageVerification(data *pbChat.SendMsgReq) (bool, int32, string, []string log.NewDebug(data.OperationID, config.Config.MessageVerify.FriendVerify) if config.Config.MessageVerify.FriendVerify { reqGetFriendIDListFromCache := &cacheRpc.GetFriendIDListFromCacheReq{UserID: data.MsgData.RecvID, OperationID: data.OperationID} - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, data.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, data.OperationID) if etcdConn == nil { - errMsg := data.OperationID + "getcdv3.GetConn == nil" + errMsg := data.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(data.OperationID, errMsg) return true, 0, "", nil } @@ -139,9 +139,9 @@ func messageVerification(data *pbChat.SendMsgReq) (bool, int32, string, []string return true, 0, "", nil } else { getGroupMemberIDListFromCacheReq := &pbCache.GetGroupMemberIDListFromCacheReq{OperationID: data.OperationID, GroupID: data.MsgData.GroupID} - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, data.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, data.OperationID) if etcdConn == nil { - errMsg := data.OperationID + "getcdv3.GetConn == nil" + errMsg := data.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(data.OperationID, errMsg) //return returnMsg(&replay, pb, 201, errMsg, "", 0) return false, 201, errMsg, nil @@ -399,9 +399,9 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S conversationReq.UserIDList = pb.MsgData.AtUserIDList conversation.GroupAtType = constant.AtMe } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImConversationName, pb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImConversationName, pb.OperationID) if etcdConn == nil { - errMsg := pb.OperationID + "getcdv3.GetConn == nil" + errMsg := pb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(pb.OperationID, errMsg) return } @@ -415,9 +415,9 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S if tag { conversationReq.UserIDList = utils.DifferenceString(atUserID, memberUserIDList) conversation.GroupAtType = constant.AtAll - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImConversationName, pb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImConversationName, pb.OperationID) if etcdConn == nil { - errMsg := pb.OperationID + "getcdv3.GetConn == nil" + errMsg := pb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(pb.OperationID, errMsg) return } @@ -861,9 +861,9 @@ func Notification(n *NotificationMsg) { offlineInfo.Ex = ex msg.OfflinePushInfo = &offlineInfo req.MsgData = &msg - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return } diff --git a/internal/rpc/msg/tag_send_msg.go b/internal/rpc/msg/tag_send_msg.go index eb3a60695..0783d740e 100644 --- a/internal/rpc/msg/tag_send_msg.go +++ b/internal/rpc/msg/tag_send_msg.go @@ -33,9 +33,9 @@ func TagSendMessage(operationID string, user *db.User, recvID, content string, s msgData.SenderPlatformID = senderPlatformID req.MsgData = &msgData req.OperationID = operationID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, operationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, operationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return } diff --git a/internal/rpc/office/office.go b/internal/rpc/office/office.go index ace207322..828d8b58c 100644 --- a/internal/rpc/office/office.go +++ b/internal/rpc/office/office.go @@ -205,9 +205,9 @@ func (s *officeServer) SendMsg2Tag(_ context.Context, req *pbOffice.SendMsg2TagR } var groupUserIDList []string for _, groupID := range req.GroupList { - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) resp.CommonResp.ErrCode = constant.ErrInternal.ErrCode resp.CommonResp.ErrMsg = errMsg diff --git a/internal/rpc/organization/organization.go b/internal/rpc/organization/organization.go index a3b0301a6..45e1022d4 100644 --- a/internal/rpc/organization/organization.go +++ b/internal/rpc/organization/organization.go @@ -119,9 +119,9 @@ func (s *organizationServer) CreateDepartment(ctx context.Context, req *rpc.Crea return &rpc.CreateDepartmentResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}, nil } chat.OrganizationNotificationToAll(req.OpUserID, req.OperationID) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) resp.ErrCode = constant.ErrInternal.ErrCode resp.ErrMsg = errMsg @@ -262,9 +262,9 @@ func (s *organizationServer) CreateOrganizationUser(ctx context.Context, req *rp utils.CopyStructFields(authReq.UserInfo, req.OrganizationUser) authReq.OperationID = req.OperationID if req.IsRegister { - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &rpc.CreateOrganizationUserResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}, nil } @@ -308,9 +308,9 @@ func (s *organizationServer) UpdateOrganizationUser(ctx context.Context, req *rp authReq := &pbAuth.UserRegisterReq{UserInfo: &open_im_sdk.UserInfo{}} utils.CopyStructFields(authReq.UserInfo, req.OrganizationUser) authReq.OperationID = req.OperationID - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &rpc.UpdateOrganizationUserResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}, nil } diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index f8d019838..890b8e90d 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -398,9 +398,9 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI log.NewError(req.OperationID, "UpdateUserInfo failed ", err.Error(), user) return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.OperationID) if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetConn == nil" + errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}}, nil } @@ -435,7 +435,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI // OperationID: req.OperationID, // UserInfoList: []*sdkws.UserInfo{req.UserInfo}, //} - //cacheEtcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName) + //cacheEtcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName) //cacheClient := cache.NewCacheClient(cacheEtcdConn) //resp, err := cacheClient.UpdateUserInfoToCache(context.Background(), updateUserInfoToCacheReq) //if err != nil { diff --git a/pkg/grpc-etcdv3/getcdv3/resolver.go b/pkg/grpc-etcdv3/getcdv3/resolver.go index 76f5ae35d..91cb5450b 100644 --- a/pkg/grpc-etcdv3/getcdv3/resolver.go +++ b/pkg/grpc-etcdv3/getcdv3/resolver.go @@ -308,7 +308,7 @@ func GetConn4Unique(schema, etcdaddr, servicename string) []*grpc.ClientConn { allConn := make([]*grpc.ClientConn, 0) for _, v := range allService { - r := GetConn(schema, etcdaddr, v, "0") + r := getConn(schema, etcdaddr, v, "0") allConn = append(allConn, r) } @@ -321,7 +321,7 @@ var ( ) func GetconnFactory(schema, etcdaddr, servicename string) (*grpc.ClientConn, error) { - c := GetConn(schema, etcdaddr, servicename, "0") + c := getConn(schema, etcdaddr, servicename, "0") if c != nil { return c, nil } else { From 9138f90843408297fc8194ce83658def469ccc1b Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 17 Aug 2022 12:58:51 +0800 Subject: [PATCH 183/230] etcd --- pkg/grpc-etcdv3/getcdv3/resolver.go | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/pkg/grpc-etcdv3/getcdv3/resolver.go b/pkg/grpc-etcdv3/getcdv3/resolver.go index a4ed10e51..8cdd80168 100644 --- a/pkg/grpc-etcdv3/getcdv3/resolver.go +++ b/pkg/grpc-etcdv3/getcdv3/resolver.go @@ -274,7 +274,30 @@ func (r *Resolver) watch(prefix string, addrList []resolver.Address) { } } -func GetConn4Unique(schema, etcdaddr, servicename string) []*grpc.ClientConn { +func GetDefaultConn4Unique(schema, etcdaddr, servicename, operationID string) []*grpc.ClientConn { + grpcConns := getConn4Unique(schema, etcdaddr, servicename) + if len(grpcConns) > 0 { + return grpcConns + } + log.NewWarn(operationID, utils.GetSelfFuncName(), " len(grpcConns) < 0 ", schema, etcdaddr, servicename) + grpcConns = getConn4UniqueFromConfig(servicename, operationID) + return grpcConns +} + +func getConn4UniqueFromConfig(servicename, operationID string) []*grpc.ClientConn { + rpcRegisterIP := config.Config.RpcRegisterIP + var err error + if config.Config.RpcRegisterIP == "" { + rpcRegisterIP, err = utils.GetLocalIP() + if err != nil { + log.Error("", "GetLocalIP failed ", err.Error()) + return nil + } + } + return nil +} + +func getConn4Unique(schema, etcdaddr, servicename string) []*grpc.ClientConn { gEtcdCli, err := clientv3.New(clientv3.Config{Endpoints: strings.Split(etcdaddr, ",")}) if err != nil { log.Error("clientv3.New failed", err.Error()) From d0a200f65291e5204c38b474594111003913e5b6 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 17 Aug 2022 14:57:57 +0800 Subject: [PATCH 184/230] etcd --- internal/api/manage/management_user.go | 5 ++-- internal/api/user/user.go | 5 ++-- internal/msg_gateway/gate/ws_server.go | 5 ++-- internal/push/logic/push_to_client.go | 4 +-- internal/rpc/auth/auth.go | 2 +- internal/rpc/msg/send_msg.go | 7 +++--- pkg/grpc-etcdv3/getcdv3/resolver.go | 34 +++++++++++++++++++------- 7 files changed, 41 insertions(+), 21 deletions(-) diff --git a/internal/api/manage/management_user.go b/internal/api/manage/management_user.go index fa198fa27..bbbfb2f2c 100644 --- a/internal/api/manage/management_user.go +++ b/internal/api/manage/management_user.go @@ -17,9 +17,10 @@ import ( rpc "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" - "github.com/gin-gonic/gin" "net/http" "strings" + + "github.com/gin-gonic/gin" ) func DeleteUser(c *gin.Context) { @@ -198,7 +199,7 @@ func GetUsersOnlineStatus(c *gin.Context) { var wsResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult var respResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult flag := false - grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName) + grpcCons := getcdv3.GetDefaultGatewayConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), params.OperationID) for _, v := range grpcCons { client := pbRelay.NewRelayClient(v) reply, err := client.GetUsersOnlineStatus(context.Background(), req) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index 977a340b2..b67e63e72 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -14,9 +14,10 @@ import ( rpc "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" - "github.com/gin-gonic/gin" "net/http" "strings" + + "github.com/gin-gonic/gin" ) func GetUsersInfoFromCache(c *gin.Context) { @@ -415,7 +416,7 @@ func GetUsersOnlineStatus(c *gin.Context) { var wsResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult var respResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult flag := false - grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName) + grpcCons := getcdv3.GetDefaultGatewayConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), params.OperationID) for _, v := range grpcCons { log.Debug(params.OperationID, "get node ", *v, v.Target()) client := pbRelay.NewRelayClient(v) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index a313b8c51..a8565f4b8 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -12,9 +12,10 @@ import ( "bytes" "context" "encoding/gob" + "strings" + go_redis "github.com/go-redis/redis/v8" "github.com/pkg/errors" - "strings" //"gopkg.in/errgo.v2/errors" "net/http" @@ -119,7 +120,7 @@ func (ws *WServer) SetWriteTimeoutWriteMsg(conn *UserConn, a int, msg []byte, ti } func (ws *WServer) MultiTerminalLoginRemoteChecker(userID string, platformID int32, token string, operationID string) { - grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName) + grpcCons := getcdv3.GetDefaultGatewayConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), operationID) log.NewInfo(operationID, utils.GetSelfFuncName(), "args grpcCons: ", userID, platformID, grpcCons) for _, v := range grpcCons { if v.Target() == rpcSvr.target { diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 451a15a1b..c91c93f16 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -43,7 +43,7 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { var wsResult []*pbRelay.SingelMsgToUserResultList isOfflinePush := utils.GetSwitchFromOptions(pushMsg.MsgData.Options, constant.IsOfflinePush) log.Debug(pushMsg.OperationID, "Get msg from msg_transfer And push msg", pushMsg.String()) - grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName) + grpcCons := getcdv3.GetDefaultGatewayConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), pushMsg.OperationID) var UIDList = []string{pushMsg.PushToUserID} callbackResp := callbackOnlinePush(pushMsg.OperationID, UIDList, pushMsg.MsgData) @@ -188,7 +188,7 @@ func MsgToSuperGroupUser(pushMsg *pbPush.PushMsgReq) { pushToUserIDList = cacheResp.UserIDList } - grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName) + grpcCons := getcdv3.GetDefaultGatewayConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), pushMsg.OperationID) //Online push message log.Debug(pushMsg.OperationID, "len grpc", len(grpcCons), "data", pushMsg.String()) diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index 225d40881..8ac577b2c 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -90,7 +90,7 @@ func (rpc *rpcAuth) ForceLogout(_ context.Context, req *pbAuth.ForceLogoutReq) ( func (rpc *rpcAuth) forceKickOff(userID string, platformID int32, operationID string) error { log.NewInfo(operationID, utils.GetSelfFuncName(), " args ", userID, platformID) - grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName) + grpcCons := getcdv3.GetDefaultGatewayConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), operationID) for _, v := range grpcCons { client := pbRelay.NewRelayClient(v) kickReq := &pbRelay.KickUserOfflineReq{OperationID: operationID, KickUserIDList: []string{userID}, PlatformID: platformID} diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 9663c932c..300aa10c6 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -17,13 +17,14 @@ import ( "Open_IM/pkg/utils" "context" "errors" - go_redis "github.com/go-redis/redis/v8" - "github.com/golang/protobuf/proto" "math/rand" "strconv" "strings" "sync" "time" + + go_redis "github.com/go-redis/redis/v8" + "github.com/golang/protobuf/proto" ) //When the number of group members is greater than this value,Online users will be sent first,Guaranteed service availability @@ -884,7 +885,7 @@ func getOnlineAndOfflineUserIDList(memberList []string, m map[string][]string, o req.OperationID = operationID req.OpUserID = config.Config.Manager.AppManagerUid[0] flag := false - grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName) + grpcCons := getcdv3.GetDefaultGatewayConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), operationID) for _, v := range grpcCons { client := pbRelay.NewRelayClient(v) reply, err := client.GetUsersOnlineStatus(context.Background(), req) diff --git a/pkg/grpc-etcdv3/getcdv3/resolver.go b/pkg/grpc-etcdv3/getcdv3/resolver.go index 8cdd80168..75690a883 100644 --- a/pkg/grpc-etcdv3/getcdv3/resolver.go +++ b/pkg/grpc-etcdv3/getcdv3/resolver.go @@ -6,17 +6,19 @@ import ( "Open_IM/pkg/utils" "context" "fmt" + "go.etcd.io/etcd/api/v3/mvccpb" clientv3 "go.etcd.io/etcd/client/v3" //"go.etcd.io/etcd/mvcc/mvccpb" //"google.golang.org/genproto/googleapis/ads/googleads/v1/services" - "google.golang.org/grpc" - "google.golang.org/grpc/balancer/roundrobin" - "google.golang.org/grpc/resolver" "strings" "sync" "time" + + "google.golang.org/grpc" + "google.golang.org/grpc/balancer/roundrobin" + "google.golang.org/grpc/resolver" ) type Resolver struct { @@ -274,17 +276,17 @@ func (r *Resolver) watch(prefix string, addrList []resolver.Address) { } } -func GetDefaultConn4Unique(schema, etcdaddr, servicename, operationID string) []*grpc.ClientConn { - grpcConns := getConn4Unique(schema, etcdaddr, servicename) +func GetDefaultGatewayConn4Unique(schema, etcdaddr, operationID string) []*grpc.ClientConn { + grpcConns := getConn4Unique(schema, etcdaddr, config.Config.RpcRegisterName.OpenImRelayName) if len(grpcConns) > 0 { return grpcConns } - log.NewWarn(operationID, utils.GetSelfFuncName(), " len(grpcConns) < 0 ", schema, etcdaddr, servicename) - grpcConns = getConn4UniqueFromConfig(servicename, operationID) + log.NewWarn(operationID, utils.GetSelfFuncName(), " len(grpcConns) < 0 ", schema, etcdaddr, config.Config.RpcRegisterName.OpenImRelayName) + grpcConns = GetDefaultGatewayConn4UniqueFromcfg(operationID) return grpcConns } -func getConn4UniqueFromConfig(servicename, operationID string) []*grpc.ClientConn { +func GetDefaultGatewayConn4UniqueFromcfg(operationID string) []*grpc.ClientConn { rpcRegisterIP := config.Config.RpcRegisterIP var err error if config.Config.RpcRegisterIP == "" { @@ -294,7 +296,21 @@ func getConn4UniqueFromConfig(servicename, operationID string) []*grpc.ClientCon return nil } } - return nil + var conns []*grpc.ClientConn + configPortList := config.Config.RpcPort.OpenImMessageGatewayPort + for _, port := range configPortList { + target := rpcRegisterIP + ":" + utils.Int32ToString(int32(port)) + log.Info(operationID, "rpcRegisterIP ", rpcRegisterIP, " port ", configPortList, " grpc target: ", target, " serviceName: ", "msgGateway") + conn, err := grpc.Dial(target, grpc.WithInsecure()) + if err != nil { + log.Error(operationID, "grpc.Dail failed ", err.Error()) + continue + } + conns = append(conns, conn) + + } + return conns + } func getConn4Unique(schema, etcdaddr, servicename string) []*grpc.ClientConn { From d6dd99bb4a4ebb1a86637b931d73dd497433a407 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 17 Aug 2022 15:34:07 +0800 Subject: [PATCH 185/230] add --- pkg/grpc-etcdv3/getcdv3/resolver.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/grpc-etcdv3/getcdv3/resolver.go b/pkg/grpc-etcdv3/getcdv3/resolver.go index 75690a883..d95909b6d 100644 --- a/pkg/grpc-etcdv3/getcdv3/resolver.go +++ b/pkg/grpc-etcdv3/getcdv3/resolver.go @@ -178,6 +178,7 @@ func GetConfigConn(serviceName string, operationID string) *grpc.ClientConn { log.Error(operationID, "grpc.Dail failed ", err.Error()) return nil } + log.NewDebug(operationID, utils.GetSelfFuncName(), serviceName, conn) return conn } @@ -283,6 +284,7 @@ func GetDefaultGatewayConn4Unique(schema, etcdaddr, operationID string) []*grpc. } log.NewWarn(operationID, utils.GetSelfFuncName(), " len(grpcConns) < 0 ", schema, etcdaddr, config.Config.RpcRegisterName.OpenImRelayName) grpcConns = GetDefaultGatewayConn4UniqueFromcfg(operationID) + log.NewDebug(operationID, utils.GetSelfFuncName(), config.Config.RpcRegisterName.OpenImRelayName, grpcConns) return grpcConns } From eee98c517587e540b1fab612c40f7f100e314a98 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 17 Aug 2022 20:18:56 +0800 Subject: [PATCH 186/230] revoke super group message and push message modify --- internal/api/manage/management_chat.go | 13 ++++++++++++- internal/push/getui/push.go | 2 +- internal/push/logic/push_to_client.go | 2 ++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index 98d4ac98b..7d0efcc32 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -50,6 +50,8 @@ func newUserSendMsgReq(params *api.ManagementSendMsgReq) *pbChat.SendMsgReq { case constant.Video: fallthrough case constant.File: + fallthrough + case constant.AdvancedRevoke: newContent = utils.StructToJsonString(params.Content) case constant.Revoke: newContent = params.Content["revokeMsgClientID"].(string) @@ -145,6 +147,8 @@ func ManagementSendMsg(c *gin.Context) { data = CustomElem{} case constant.Revoke: data = RevokeElem{} + case constant.AdvancedRevoke: + data = MessageRevoked{} case constant.OANotification: data = OANotificationElem{} params.SessionType = constant.NotificationChatType @@ -189,7 +193,7 @@ func ManagementSendMsg(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "recvID is a null string", "sendTime": 0, "MsgID": ""}) return } - case constant.GroupChatType: + case constant.GroupChatType, constant.SuperGroupChatType: if len(params.GroupID) == 0 { log.NewError(params.OperationID, "groupID is a null string") c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "groupID is a null string", "sendTime": 0, "MsgID": ""}) @@ -473,3 +477,10 @@ type OANotificationElem struct { FileElem FileElem `mapstructure:"fileElem" json:"fileElem"` Ex string `mapstructure:"ex" json:"ex"` } +type MessageRevoked struct { + RevokerID string `mapstructure:"notificationName" json:"revokerID" validate:"required"` + RevokerRole int32 `mapstructure:"notificationName" json:"revokerRole" validate:"required"` + ClientMsgID string `mapstructure:"notificationName" json:"clientMsgID" validate:"required"` + RevokerNickname string `mapstructure:"notificationName" json:"revokerNickname"` + SessionType int32 `mapstructure:"notificationName" json:"sessionType" validate:"required"` +} diff --git a/internal/push/getui/push.go b/internal/push/getui/push.go index 69b4584f9..9c9f37301 100644 --- a/internal/push/getui/push.go +++ b/internal/push/getui/push.go @@ -133,7 +133,7 @@ func (g *Getui) Push(userIDList []string, alert, detailContent, operationID stri } pushReq.PushMessage.Notification = Notification{ Title: alert, - Body: alert, + Body: detailContent, ClickType: "startapp", } pushReq.PushChannel.Ios.Aps.Sound = "default" diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index fa4f8afb2..49b3fdfe7 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -94,6 +94,7 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { var content string if pushMsg.MsgData.OfflinePushInfo != nil { content = pushMsg.MsgData.OfflinePushInfo.Title + jsonCustomContent = pushMsg.MsgData.OfflinePushInfo.Desc } else { switch pushMsg.MsgData.ContentType { @@ -225,6 +226,7 @@ func MsgToSuperGroupUser(pushMsg *pbPush.PushMsgReq) { var content string if pushMsg.MsgData.OfflinePushInfo != nil { content = pushMsg.MsgData.OfflinePushInfo.Title + jsonCustomContent = pushMsg.MsgData.OfflinePushInfo.Desc } else { switch pushMsg.MsgData.ContentType { From 5a995a86247510725ec2ea9b54bade8486cbed4d Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 17 Aug 2022 21:32:34 +0800 Subject: [PATCH 187/230] rtc pb --- pkg/proto/rtc/rtc.proto | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkg/proto/rtc/rtc.proto b/pkg/proto/rtc/rtc.proto index cb99f9b84..aafc9345f 100644 --- a/pkg/proto/rtc/rtc.proto +++ b/pkg/proto/rtc/rtc.proto @@ -100,6 +100,7 @@ message SignalReq { SignalAcceptReq accept = 4; SignalHungUpReq hungUp = 5; SignalRejectReq reject = 6; + SignalGetRoomByGroupIDReq GetRoomByGroupID = 7; } } @@ -111,6 +112,7 @@ message SignalResp { SignalAcceptReply accept = 4; SignalHungUpReply hungUp = 5; SignalRejectReply reject = 6; + SignalGetRoomByGroupIDReply GetRoomByGroupID = 7; } } @@ -203,6 +205,19 @@ message SignalRejectReply { } +message SignalGetRoomByGroupIDReq { + string opUserID = 1; + string groupID = 2; +} + +message SignalGetRoomByGroupIDReply { + InvitationInfo invitation = 1; + repeated string onConnectingUserIDList = 2; + string token = 3; + string roomID = 4; + string liveURL = 5; +} + message SignalMessageAssembleReq { SignalReq signalReq = 1; string operationID = 2; From 30b55ce25ec84d040ab792d458bc9a8f20a694c6 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Thu, 18 Aug 2022 10:50:09 +0800 Subject: [PATCH 188/230] GetSelfUserInfo: Handle the case where the user does not exist --- internal/api/user/user.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index b861e19ee..f3f1db720 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -366,11 +366,10 @@ func GetSelfUserInfo(c *gin.Context) { log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) c.JSON(http.StatusOK, resp) } else { - resp := api.GetSelfUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} + resp := api.GetSelfUserInfoResp{CommResp: api.CommResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}} log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) c.JSON(http.StatusOK, resp) } - } // @Summary 获取用户在线状态 From 5c3a43f602252be9bb8ae638bc0dbd400039aca3 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 18 Aug 2022 11:14:38 +0800 Subject: [PATCH 189/230] fix bug --- pkg/common/db/RedisModel.go | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/pkg/common/db/RedisModel.go b/pkg/common/db/RedisModel.go index 8ad30f878..1f81fc3ef 100644 --- a/pkg/common/db/RedisModel.go +++ b/pkg/common/db/RedisModel.go @@ -11,11 +11,12 @@ import ( "context" "errors" "fmt" + "strconv" + "time" + go_redis "github.com/go-redis/redis/v8" "github.com/golang/protobuf/jsonpb" "github.com/golang/protobuf/proto" - "strconv" - "time" ) const ( @@ -230,16 +231,14 @@ func (d *DataBases) SetMessageToCache(msgList []*pbChat.MsgDataToMQ, uid string, } func (d *DataBases) DeleteMessageFromCache(msgList []*pbChat.MsgDataToMQ, uid string, operationID string) error { ctx := context.Background() - var keys []string for _, msg := range msgList { key := messageCache + uid + "_" + strconv.Itoa(int(msg.MsgData.Seq)) - keys = append(keys, key) + err := d.RDB.Del(ctx, key).Err() + if err != nil { + log2.NewWarn(operationID, utils.GetSelfFuncName(), "redis failed", "args:", key, uid, err.Error(), msgList) + } } - err := d.RDB.Del(ctx, keys...).Err() - if err != nil { - log2.NewWarn(operationID, utils.GetSelfFuncName(), "redis failed", "args:", keys, uid, err.Error(), msgList) - } - return err + return nil } func (d *DataBases) CleanUpOneUserAllMsgFromRedis(userID string, operationID string) error { From 40b7314f6d5bcce20d9ceefca1017ebb7c942dbf Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 19 Aug 2022 11:58:46 +0800 Subject: [PATCH 190/230] model add update time --- pkg/common/db/model_struct.go | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index f59b904a4..560dc29d5 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -248,20 +248,21 @@ type BlackList struct { EndDisableTime time.Time `gorm:"column:end_disable_time"` } type Conversation struct { - OwnerUserID string `gorm:"column:owner_user_id;primary_key;type:char(128)" json:"OwnerUserID"` - ConversationID string `gorm:"column:conversation_id;primary_key;type:char(128)" json:"conversationID"` - ConversationType int32 `gorm:"column:conversation_type" json:"conversationType"` - UserID string `gorm:"column:user_id;type:char(64)" json:"userID"` - GroupID string `gorm:"column:group_id;type:char(128)" json:"groupID"` - RecvMsgOpt int32 `gorm:"column:recv_msg_opt" json:"recvMsgOpt"` - UnreadCount int32 `gorm:"column:unread_count" json:"unreadCount"` - DraftTextTime int64 `gorm:"column:draft_text_time" json:"draftTextTime"` - IsPinned bool `gorm:"column:is_pinned" json:"isPinned"` - IsPrivateChat bool `gorm:"column:is_private_chat" json:"isPrivateChat"` - GroupAtType int32 `gorm:"column:group_at_type" json:"groupAtType"` - IsNotInGroup bool `gorm:"column:is_not_in_group" json:"isNotInGroup"` - AttachedInfo string `gorm:"column:attached_info;type:varchar(1024)" json:"attachedInfo"` - Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` + OwnerUserID string `gorm:"column:owner_user_id;primary_key;type:char(128)" json:"OwnerUserID"` + ConversationID string `gorm:"column:conversation_id;primary_key;type:char(128)" json:"conversationID"` + ConversationType int32 `gorm:"column:conversation_type" json:"conversationType"` + UserID string `gorm:"column:user_id;type:char(64)" json:"userID"` + GroupID string `gorm:"column:group_id;type:char(128)" json:"groupID"` + RecvMsgOpt int32 `gorm:"column:recv_msg_opt" json:"recvMsgOpt"` + UnreadCount int32 `gorm:"column:unread_count" json:"unreadCount"` + DraftTextTime int64 `gorm:"column:draft_text_time" json:"draftTextTime"` + IsPinned bool `gorm:"column:is_pinned" json:"isPinned"` + IsPrivateChat bool `gorm:"column:is_private_chat" json:"isPrivateChat"` + GroupAtType int32 `gorm:"column:group_at_type" json:"groupAtType"` + IsNotInGroup bool `gorm:"column:is_not_in_group" json:"isNotInGroup"` + UpdateUnreadCountTime int64 `gorm:"column:update_unread_count_time" json:"updateUnreadCountTime"` + AttachedInfo string `gorm:"column:attached_info;type:varchar(1024)" json:"attachedInfo"` + Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` } func (Conversation) TableName() string { From 761b8c40d67c4b03475667978ce16be2ffba6a65 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 19 Aug 2022 12:09:05 +0800 Subject: [PATCH 191/230] conversation cache function --- .../im_mysql_model/conversation_model.go | 8 +++ pkg/common/db/rocks_cache/rocks_cache.go | 62 +++++++++++++++++++ 2 files changed, 70 insertions(+) diff --git a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go index 5588ba912..98a97653e 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go @@ -83,12 +83,20 @@ func GetConversations(OwnerUserID string, conversationIDs []string) ([]db.Conver err := db.DB.MysqlDB.DefaultGormDB().Model(&db.Conversation{}).Where("conversation_id IN (?) and owner_user_id=?", conversationIDs, OwnerUserID).Find(&conversations).Error return conversations, err } + func GetConversationsByConversationIDMultipleOwner(OwnerUserIDList []string, conversationID string) ([]db.Conversation, error) { var conversations []db.Conversation err := db.DB.MysqlDB.DefaultGormDB().Model(&db.Conversation{}).Where("owner_user_id IN (?) and conversation_id=?", OwnerUserIDList, conversationID).Find(&conversations).Error return conversations, err } + func UpdateColumnsConversations(ownerUserIDList []string, conversationID string, args map[string]interface{}) error { return db.DB.MysqlDB.DefaultGormDB().Model(&db.Conversation{}).Where("owner_user_id IN (?) and conversation_id=?", ownerUserIDList, conversationID).Updates(args).Error } + +func GetConversationIDListByUserID(userID string) ([]string, error) { + var IDList []string + err := db.DB.MysqlDB.DefaultGormDB().Model(&db.Conversation{}).Where("user_id=?", userID).Pluck("conversation_id", &IDList).Error + return IDList, err +} diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 80f18db6a..af6e75e21 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -32,6 +32,8 @@ const ( joinedSuperGroupListCache = "JOINED_SUPER_GROUP_LIST_CACHE:" groupMemberListHashCache = "GROUP_MEMBER_LIST_HASH_CACHE:" groupMemberNumCache = "GROUP_MEMBER_NUM_CACHE:" + conversationCache = "CONVERSATION_CACHE:" + conversationIDListCache = "CONVERSATION_ID_LIST_CACHE:" ) func init() { @@ -431,3 +433,63 @@ func GetGroupMemberNumFromCache(groupID string) (int64, error) { func DelGroupMemberNumFromCache(groupID string) error { return db.DB.Rc.TagAsDeleted(groupMemberNumCache + groupID) } + +func GetUserConversationIDListFromCache(userID string) ([]string, error) { + getConversationIDList := func() (string, error) { + conversationIDList, err := imdb.GetConversationIDListByUserID(userID) + if err != nil { + return "", utils.Wrap(err, "getConversationIDList failed") + } + bytes, err := json.Marshal(conversationIDList) + return string(bytes), utils.Wrap(err, "") + } + conversationIDListStr, err := db.DB.Rc.Fetch(conversationIDListCache+userID, time.Second*30*60, getConversationIDList) + var conversationIDList []string + err = json.Unmarshal([]byte(conversationIDListStr), &conversationIDList) + if err != nil { + return nil, err + } + return conversationIDList, nil +} + +func DelUserConversationIDListFromCache(userID string) error { + return db.DB.Rc.TagAsDeleted(conversationIDListCache + userID) +} + +func GetConversationFromCache(ownerUserID, conversationID string) (*db.Conversation, error) { + getConversation := func() (string, error) { + conversation, err := imdb.GetConversation(ownerUserID, conversationID) + if err != nil { + return "", utils.Wrap(err, "") + } + bytes, err := json.Marshal(conversation) + return string(bytes), utils.Wrap(err, "") + } + conversationStr, err := db.DB.Rc.Fetch(conversationCache+conversationID, time.Second*30*60, getConversation) + conversation := db.Conversation{} + err = json.Unmarshal([]byte(conversationStr), &conversation) + if err != nil { + return nil, err + } + return &conversation, nil +} + +func GetUserAllConversationList(ownerUserID string) ([]db.Conversation, error) { + IDList, err := GetUserConversationIDListFromCache(ownerUserID) + if err != nil { + return nil, err + } + var conversationList []db.Conversation + for _, conversationID := range IDList { + conversation, err := GetConversationFromCache(ownerUserID, conversationID) + if err != nil { + return nil, utils.Wrap(err, "GetConversationFromCache failed") + } + conversationList = append(conversationList, *conversation) + } + return conversationList, nil +} + +func DelConversationFromCache(conversationID string) error { + return db.DB.Rc.TagAsDeleted(conversationCache + conversationID) +} From 9a82dd356c3a1fd4339221db435d4537edcfb153 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 19 Aug 2022 13:04:38 +0800 Subject: [PATCH 192/230] callback add offline info --- internal/push/logic/callback.go | 11 ++++++++--- internal/push/logic/push_to_client.go | 20 +++++++++++++++++--- pkg/call_back_struct/push.go | 3 ++- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/internal/push/logic/callback.go b/internal/push/logic/callback.go index 44f703ef8..1bb51fcc1 100644 --- a/internal/push/logic/callback.go +++ b/internal/push/logic/callback.go @@ -12,7 +12,7 @@ import ( http2 "net/http" ) -func callbackOfflinePush(operationID string, userIDList []string, msg *commonPb.MsgData, offlinePushUserIDList *[]string) cbApi.CommonCallbackResp { +func callbackOfflinePush(operationID string, userIDList []string, msg *commonPb.MsgData, offlinePushUserIDList *[]string, offlineInfo *commonPb.OfflinePushInfo) cbApi.CommonCallbackResp { callbackResp := cbApi.CommonCallbackResp{OperationID: operationID} if !config.Config.Callback.CallbackOfflinePush.Enable { return callbackResp @@ -47,8 +47,13 @@ func callbackOfflinePush(operationID string, userIDList []string, msg *commonPb. return callbackResp } } - if resp.ErrCode == constant.CallbackHandleSuccess && resp.ActionCode == constant.ActionAllow && len(resp.UserIDList) != 0 { - *offlinePushUserIDList = resp.UserIDList + if resp.ErrCode == constant.CallbackHandleSuccess && resp.ActionCode == constant.ActionAllow { + if len(resp.UserIDList) != 0 { + *offlinePushUserIDList = resp.UserIDList + } + if resp.OfflinePushInfo != nil { + *offlineInfo = *resp.OfflinePushInfo + } } log.NewDebug(operationID, utils.GetSelfFuncName(), offlinePushUserIDList, resp.UserIDList) return callbackResp diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 49b3fdfe7..c398de5fb 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -17,6 +17,7 @@ import ( pbPush "Open_IM/pkg/proto/push" pbRelay "Open_IM/pkg/proto/relay" pbRtc "Open_IM/pkg/proto/rtc" + commonPb "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "encoding/json" @@ -123,8 +124,8 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { } } - - callbackResp := callbackOfflinePush(pushMsg.OperationID, UIDList, pushMsg.MsgData, &[]string{}) + var offlineInfo commonPb.OfflinePushInfo + callbackResp := callbackOfflinePush(pushMsg.OperationID, UIDList, pushMsg.MsgData, &[]string{}, &offlineInfo) log.NewDebug(pushMsg.OperationID, utils.GetSelfFuncName(), "offline callback Resp") if callbackResp.ErrCode != 0 { log.NewError(pushMsg.OperationID, utils.GetSelfFuncName(), "callbackOfflinePush result: ", callbackResp) @@ -133,6 +134,12 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { log.NewDebug(pushMsg.OperationID, utils.GetSelfFuncName(), "offlinePush stop") return } + if offlineInfo.Title != "" { + content = offlineInfo.Title + } + if offlineInfo.Desc != "" { + jsonCustomContent = offlineInfo.Desc + } if offlinePusher == nil { return } @@ -258,7 +265,8 @@ func MsgToSuperGroupUser(pushMsg *pbPush.PushMsgReq) { if len(onlineFailedUserIDList) > 0 { var offlinePushUserIDList []string var needOfflinePushUserIDList []string - callbackResp := callbackOfflinePush(pushMsg.OperationID, onlineFailedUserIDList, pushMsg.MsgData, &offlinePushUserIDList) + var offlineInfo commonPb.OfflinePushInfo + callbackResp := callbackOfflinePush(pushMsg.OperationID, onlineFailedUserIDList, pushMsg.MsgData, &offlinePushUserIDList, &offlineInfo) log.NewDebug(pushMsg.OperationID, utils.GetSelfFuncName(), "offline callback Resp") if callbackResp.ErrCode != 0 { log.NewError(pushMsg.OperationID, utils.GetSelfFuncName(), "callbackOfflinePush result: ", callbackResp) @@ -272,6 +280,12 @@ func MsgToSuperGroupUser(pushMsg *pbPush.PushMsgReq) { } else { needOfflinePushUserIDList = onlineFailedUserIDList } + if offlineInfo.Title != "" { + content = offlineInfo.Title + } + if offlineInfo.Desc != "" { + jsonCustomContent = offlineInfo.Desc + } if offlinePusher == nil { return } diff --git a/pkg/call_back_struct/push.go b/pkg/call_back_struct/push.go index e3803a0e2..6ff649a3d 100644 --- a/pkg/call_back_struct/push.go +++ b/pkg/call_back_struct/push.go @@ -15,7 +15,8 @@ type CallbackBeforePushReq struct { type CallbackBeforePushResp struct { *CommonCallbackResp - UserIDList []string `json:"userIDList"` + UserIDList []string `json:"userIDList"` + OfflinePushInfo *commonPb.OfflinePushInfo `json:"offlinePushInfo"` } type CallbackBeforeSuperGroupOnlinePushReq struct { From 5d661f2fc618d8c72ba5f7d1743ad6bc3372ff2a Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 19 Aug 2022 21:37:39 +0800 Subject: [PATCH 193/230] add user register IP --- internal/rpc/user/user.go | 8 + .../mysql_model/im_mysql_model/demo_model.go | 5 + pkg/proto/user/user.pb.go | 7460 +++++++---------- pkg/proto/user/user.proto | 1 + 4 files changed, 2907 insertions(+), 4567 deletions(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index d120ef99b..0ad2e6d13 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -630,9 +630,16 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUsers failed", err.Error()) return resp, errors.WrapError(constant.ErrDB) } + for _, v := range users { isBlock, err := imdb.UserIsBlock(v.UserID) if err == nil { + registerIP := "" + registerInfo, err := imdb.GetRegisterInfo(v.UserID) + if registerInfo != nil && err == nil { + registerIP = registerInfo.RegisterIP + } + user := &pbUser.User{ ProfilePhoto: v.FaceURL, UserId: v.UserID, @@ -648,6 +655,7 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb LoginTimes: v.LoginTimes, Gender: v.Gender, LoginLimit: v.LoginLimit, + RegisterIp: registerIP, } resp.User = append(resp.User, user) } else { diff --git a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go index fe3a17292..349555c31 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go @@ -12,6 +12,11 @@ func GetRegister(account, areaCode, userID string) (*db.Register, error) { userID, "", account, account, areaCode).Take(&r).Error } +func GetRegisterInfo(userID string) (*db.Register, error) { + var r db.Register + return &r, db.DB.MysqlDB.DefaultGormDB().Table("registers").Where("user_id = ?", userID).Take(&r).Error +} + func SetPassword(account, password, ex, userID, areaCode, ip string) error { r := db.Register{ Account: account, diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 560faee77..df189119c 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -1,4614 +1,2879 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.1 -// protoc v3.15.5 // source: user/user.proto -package user +package user // import "./user" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import sdk_ws "Open_IM/pkg/proto/sdk_ws" import ( - sdk_ws "Open_IM/pkg/proto/sdk_ws" - context "context" + context "golang.org/x/net/context" grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - 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) -) +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type CommonResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=errCode,proto3" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *CommonResp) Reset() { - *x = CommonResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CommonResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CommonResp) ProtoMessage() {} - -func (x *CommonResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 CommonResp.ProtoReflect.Descriptor instead. +func (m *CommonResp) Reset() { *m = CommonResp{} } +func (m *CommonResp) String() string { return proto.CompactTextString(m) } +func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{0} + return fileDescriptor_user_461ee57002abbf2b, []int{0} +} +func (m *CommonResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommonResp.Unmarshal(m, b) +} +func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic) +} +func (dst *CommonResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommonResp.Merge(dst, src) +} +func (m *CommonResp) XXX_Size() int { + return xxx_messageInfo_CommonResp.Size(m) +} +func (m *CommonResp) XXX_DiscardUnknown() { + xxx_messageInfo_CommonResp.DiscardUnknown(m) } -func (x *CommonResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_CommonResp proto.InternalMessageInfo + +func (m *CommonResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *CommonResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *CommonResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } type DeleteUsersReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DeleteUserIDList []string `protobuf:"bytes,2,rep,name=DeleteUserIDList,proto3" json:"DeleteUserIDList,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + DeleteUserIDList []string `protobuf:"bytes,2,rep,name=DeleteUserIDList" json:"DeleteUserIDList,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *DeleteUsersReq) Reset() { - *x = DeleteUsersReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DeleteUsersReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteUsersReq) ProtoMessage() {} - -func (x *DeleteUsersReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 DeleteUsersReq.ProtoReflect.Descriptor instead. +func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } +func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } +func (*DeleteUsersReq) ProtoMessage() {} func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{1} + return fileDescriptor_user_461ee57002abbf2b, []int{1} +} +func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) +} +func (m *DeleteUsersReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteUsersReq.Marshal(b, m, deterministic) +} +func (dst *DeleteUsersReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteUsersReq.Merge(dst, src) +} +func (m *DeleteUsersReq) XXX_Size() int { + return xxx_messageInfo_DeleteUsersReq.Size(m) +} +func (m *DeleteUsersReq) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteUsersReq.DiscardUnknown(m) } -func (x *DeleteUsersReq) GetDeleteUserIDList() []string { - if x != nil { - return x.DeleteUserIDList +var xxx_messageInfo_DeleteUsersReq proto.InternalMessageInfo + +func (m *DeleteUsersReq) GetDeleteUserIDList() []string { + if m != nil { + return m.DeleteUserIDList } return nil } -func (x *DeleteUsersReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *DeleteUsersReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *DeleteUsersReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *DeleteUsersReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type DeleteUsersResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - FailedUserIDList []string `protobuf:"bytes,2,rep,name=FailedUserIDList,proto3" json:"FailedUserIDList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + FailedUserIDList []string `protobuf:"bytes,2,rep,name=FailedUserIDList" json:"FailedUserIDList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *DeleteUsersResp) Reset() { - *x = DeleteUsersResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DeleteUsersResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteUsersResp) ProtoMessage() {} - -func (x *DeleteUsersResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 DeleteUsersResp.ProtoReflect.Descriptor instead. +func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } +func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } +func (*DeleteUsersResp) ProtoMessage() {} func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{2} + return fileDescriptor_user_461ee57002abbf2b, []int{2} +} +func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) +} +func (m *DeleteUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteUsersResp.Marshal(b, m, deterministic) +} +func (dst *DeleteUsersResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteUsersResp.Merge(dst, src) +} +func (m *DeleteUsersResp) XXX_Size() int { + return xxx_messageInfo_DeleteUsersResp.Size(m) +} +func (m *DeleteUsersResp) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteUsersResp.DiscardUnknown(m) } -func (x *DeleteUsersResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +var xxx_messageInfo_DeleteUsersResp proto.InternalMessageInfo + +func (m *DeleteUsersResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp } return nil } -func (x *DeleteUsersResp) GetFailedUserIDList() []string { - if x != nil { - return x.FailedUserIDList +func (m *DeleteUsersResp) GetFailedUserIDList() []string { + if m != nil { + return m.FailedUserIDList } return nil } type GetAllUserIDReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetAllUserIDReq) Reset() { - *x = GetAllUserIDReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAllUserIDReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAllUserIDReq) ProtoMessage() {} - -func (x *GetAllUserIDReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 GetAllUserIDReq.ProtoReflect.Descriptor instead. +func (m *GetAllUserIDReq) Reset() { *m = GetAllUserIDReq{} } +func (m *GetAllUserIDReq) String() string { return proto.CompactTextString(m) } +func (*GetAllUserIDReq) ProtoMessage() {} func (*GetAllUserIDReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{3} + return fileDescriptor_user_461ee57002abbf2b, []int{3} +} +func (m *GetAllUserIDReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAllUserIDReq.Unmarshal(m, b) +} +func (m *GetAllUserIDReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAllUserIDReq.Marshal(b, m, deterministic) +} +func (dst *GetAllUserIDReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAllUserIDReq.Merge(dst, src) +} +func (m *GetAllUserIDReq) XXX_Size() int { + return xxx_messageInfo_GetAllUserIDReq.Size(m) +} +func (m *GetAllUserIDReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetAllUserIDReq.DiscardUnknown(m) } -func (x *GetAllUserIDReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +var xxx_messageInfo_GetAllUserIDReq proto.InternalMessageInfo + +func (m *GetAllUserIDReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *GetAllUserIDReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetAllUserIDReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetAllUserIDResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - UserIDList []string `protobuf:"bytes,2,rep,name=UserIDList,proto3" json:"UserIDList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + UserIDList []string `protobuf:"bytes,2,rep,name=UserIDList" json:"UserIDList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetAllUserIDResp) Reset() { - *x = GetAllUserIDResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAllUserIDResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAllUserIDResp) ProtoMessage() {} - -func (x *GetAllUserIDResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 GetAllUserIDResp.ProtoReflect.Descriptor instead. +func (m *GetAllUserIDResp) Reset() { *m = GetAllUserIDResp{} } +func (m *GetAllUserIDResp) String() string { return proto.CompactTextString(m) } +func (*GetAllUserIDResp) ProtoMessage() {} func (*GetAllUserIDResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{4} + return fileDescriptor_user_461ee57002abbf2b, []int{4} +} +func (m *GetAllUserIDResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAllUserIDResp.Unmarshal(m, b) +} +func (m *GetAllUserIDResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAllUserIDResp.Marshal(b, m, deterministic) +} +func (dst *GetAllUserIDResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAllUserIDResp.Merge(dst, src) +} +func (m *GetAllUserIDResp) XXX_Size() int { + return xxx_messageInfo_GetAllUserIDResp.Size(m) +} +func (m *GetAllUserIDResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetAllUserIDResp.DiscardUnknown(m) } -func (x *GetAllUserIDResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +var xxx_messageInfo_GetAllUserIDResp proto.InternalMessageInfo + +func (m *GetAllUserIDResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp } return nil } -func (x *GetAllUserIDResp) GetUserIDList() []string { - if x != nil { - return x.UserIDList +func (m *GetAllUserIDResp) GetUserIDList() []string { + if m != nil { + return m.UserIDList } return nil } type AccountCheckReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CheckUserIDList []string `protobuf:"bytes,1,rep,name=CheckUserIDList,proto3" json:"CheckUserIDList,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + CheckUserIDList []string `protobuf:"bytes,1,rep,name=CheckUserIDList" json:"CheckUserIDList,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *AccountCheckReq) Reset() { - *x = AccountCheckReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AccountCheckReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AccountCheckReq) ProtoMessage() {} - -func (x *AccountCheckReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 AccountCheckReq.ProtoReflect.Descriptor instead. +func (m *AccountCheckReq) Reset() { *m = AccountCheckReq{} } +func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) } +func (*AccountCheckReq) ProtoMessage() {} func (*AccountCheckReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{5} + return fileDescriptor_user_461ee57002abbf2b, []int{5} +} +func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b) +} +func (m *AccountCheckReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountCheckReq.Marshal(b, m, deterministic) +} +func (dst *AccountCheckReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountCheckReq.Merge(dst, src) +} +func (m *AccountCheckReq) XXX_Size() int { + return xxx_messageInfo_AccountCheckReq.Size(m) +} +func (m *AccountCheckReq) XXX_DiscardUnknown() { + xxx_messageInfo_AccountCheckReq.DiscardUnknown(m) } -func (x *AccountCheckReq) GetCheckUserIDList() []string { - if x != nil { - return x.CheckUserIDList +var xxx_messageInfo_AccountCheckReq proto.InternalMessageInfo + +func (m *AccountCheckReq) GetCheckUserIDList() []string { + if m != nil { + return m.CheckUserIDList } return nil } -func (x *AccountCheckReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *AccountCheckReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *AccountCheckReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *AccountCheckReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type AccountCheckResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - ResultList []*AccountCheckResp_SingleUserStatus `protobuf:"bytes,2,rep,name=ResultList,proto3" json:"ResultList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + ResultList []*AccountCheckResp_SingleUserStatus `protobuf:"bytes,2,rep,name=ResultList" json:"ResultList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *AccountCheckResp) Reset() { - *x = AccountCheckResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AccountCheckResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AccountCheckResp) ProtoMessage() {} - -func (x *AccountCheckResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 AccountCheckResp.ProtoReflect.Descriptor instead. +func (m *AccountCheckResp) Reset() { *m = AccountCheckResp{} } +func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) } +func (*AccountCheckResp) ProtoMessage() {} func (*AccountCheckResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{6} + return fileDescriptor_user_461ee57002abbf2b, []int{6} +} +func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b) +} +func (m *AccountCheckResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountCheckResp.Marshal(b, m, deterministic) +} +func (dst *AccountCheckResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountCheckResp.Merge(dst, src) +} +func (m *AccountCheckResp) XXX_Size() int { + return xxx_messageInfo_AccountCheckResp.Size(m) +} +func (m *AccountCheckResp) XXX_DiscardUnknown() { + xxx_messageInfo_AccountCheckResp.DiscardUnknown(m) } -func (x *AccountCheckResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +var xxx_messageInfo_AccountCheckResp proto.InternalMessageInfo + +func (m *AccountCheckResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp } return nil } -func (x *AccountCheckResp) GetResultList() []*AccountCheckResp_SingleUserStatus { - if x != nil { - return x.ResultList - } - return nil -} - -type GetUserInfoReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserIDList []string `protobuf:"bytes,1,rep,name=userIDList,proto3" json:"userIDList,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetUserInfoReq) Reset() { - *x = GetUserInfoReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUserInfoReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUserInfoReq) ProtoMessage() {} - -func (x *GetUserInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 GetUserInfoReq.ProtoReflect.Descriptor instead. -func (*GetUserInfoReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{7} -} - -func (x *GetUserInfoReq) GetUserIDList() []string { - if x != nil { - return x.UserIDList - } - return nil -} - -func (x *GetUserInfoReq) GetOpUserID() string { - if x != nil { - return x.OpUserID - } - return "" -} - -func (x *GetUserInfoReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GetUserInfoResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - UserInfoList []*sdk_ws.UserInfo `protobuf:"bytes,3,rep,name=UserInfoList,proto3" json:"UserInfoList,omitempty"` -} - -func (x *GetUserInfoResp) Reset() { - *x = GetUserInfoResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUserInfoResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUserInfoResp) ProtoMessage() {} - -func (x *GetUserInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 GetUserInfoResp.ProtoReflect.Descriptor instead. -func (*GetUserInfoResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{8} -} - -func (x *GetUserInfoResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *GetUserInfoResp) GetUserInfoList() []*sdk_ws.UserInfo { - if x != nil { - return x.UserInfoList - } - return nil -} - -type UpdateUserInfoReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserInfo *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=UserInfo,proto3" json:"UserInfo,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` -} - -func (x *UpdateUserInfoReq) Reset() { - *x = UpdateUserInfoReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateUserInfoReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateUserInfoReq) ProtoMessage() {} - -func (x *UpdateUserInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 UpdateUserInfoReq.ProtoReflect.Descriptor instead. -func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{9} -} - -func (x *UpdateUserInfoReq) GetUserInfo() *sdk_ws.UserInfo { - if x != nil { - return x.UserInfo - } - return nil -} - -func (x *UpdateUserInfoReq) GetOpUserID() string { - if x != nil { - return x.OpUserID - } - return "" -} - -func (x *UpdateUserInfoReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type UpdateUserInfoResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` -} - -func (x *UpdateUserInfoResp) Reset() { - *x = UpdateUserInfoResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateUserInfoResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateUserInfoResp) ProtoMessage() {} - -func (x *UpdateUserInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 UpdateUserInfoResp.ProtoReflect.Descriptor instead. -func (*UpdateUserInfoResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{10} -} - -func (x *UpdateUserInfoResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type SetGlobalRecvMessageOptReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` - GlobalRecvMsgOpt int32 `protobuf:"varint,3,opt,name=globalRecvMsgOpt,proto3" json:"globalRecvMsgOpt,omitempty"` -} - -func (x *SetGlobalRecvMessageOptReq) Reset() { - *x = SetGlobalRecvMessageOptReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetGlobalRecvMessageOptReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetGlobalRecvMessageOptReq) ProtoMessage() {} - -func (x *SetGlobalRecvMessageOptReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 SetGlobalRecvMessageOptReq.ProtoReflect.Descriptor instead. -func (*SetGlobalRecvMessageOptReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{11} -} - -func (x *SetGlobalRecvMessageOptReq) GetUserID() string { - if x != nil { - return x.UserID - } - return "" -} - -func (x *SetGlobalRecvMessageOptReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *SetGlobalRecvMessageOptReq) GetGlobalRecvMsgOpt() int32 { - if x != nil { - return x.GlobalRecvMsgOpt - } - return 0 -} - -type SetGlobalRecvMessageOptResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` -} - -func (x *SetGlobalRecvMessageOptResp) Reset() { - *x = SetGlobalRecvMessageOptResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetGlobalRecvMessageOptResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetGlobalRecvMessageOptResp) ProtoMessage() {} - -func (x *SetGlobalRecvMessageOptResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 SetGlobalRecvMessageOptResp.ProtoReflect.Descriptor instead. -func (*SetGlobalRecvMessageOptResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{12} -} - -func (x *SetGlobalRecvMessageOptResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type Conversation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` - ConversationID string `protobuf:"bytes,2,opt,name=ConversationID,proto3" json:"ConversationID,omitempty"` - RecvMsgOpt int32 `protobuf:"varint,3,opt,name=RecvMsgOpt,proto3" json:"RecvMsgOpt,omitempty"` - ConversationType int32 `protobuf:"varint,4,opt,name=ConversationType,proto3" json:"ConversationType,omitempty"` - UserID string `protobuf:"bytes,5,opt,name=UserID,proto3" json:"UserID,omitempty"` - GroupID string `protobuf:"bytes,6,opt,name=GroupID,proto3" json:"GroupID,omitempty"` - UnreadCount int32 `protobuf:"varint,7,opt,name=UnreadCount,proto3" json:"UnreadCount,omitempty"` - DraftTextTime int64 `protobuf:"varint,8,opt,name=DraftTextTime,proto3" json:"DraftTextTime,omitempty"` - IsPinned bool `protobuf:"varint,9,opt,name=IsPinned,proto3" json:"IsPinned,omitempty"` - AttachedInfo string `protobuf:"bytes,10,opt,name=AttachedInfo,proto3" json:"AttachedInfo,omitempty"` - IsPrivateChat bool `protobuf:"varint,11,opt,name=IsPrivateChat,proto3" json:"IsPrivateChat,omitempty"` - GroupAtType int32 `protobuf:"varint,12,opt,name=GroupAtType,proto3" json:"GroupAtType,omitempty"` - IsNotInGroup bool `protobuf:"varint,13,opt,name=IsNotInGroup,proto3" json:"IsNotInGroup,omitempty"` - Ex string `protobuf:"bytes,14,opt,name=Ex,proto3" json:"Ex,omitempty"` -} - -func (x *Conversation) Reset() { - *x = Conversation{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Conversation) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Conversation) ProtoMessage() {} - -func (x *Conversation) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 Conversation.ProtoReflect.Descriptor instead. -func (*Conversation) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{13} -} - -func (x *Conversation) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID - } - return "" -} - -func (x *Conversation) GetConversationID() string { - if x != nil { - return x.ConversationID - } - return "" -} - -func (x *Conversation) GetRecvMsgOpt() int32 { - if x != nil { - return x.RecvMsgOpt - } - return 0 -} - -func (x *Conversation) GetConversationType() int32 { - if x != nil { - return x.ConversationType - } - return 0 -} - -func (x *Conversation) GetUserID() string { - if x != nil { - return x.UserID - } - return "" -} - -func (x *Conversation) GetGroupID() string { - if x != nil { - return x.GroupID - } - return "" -} - -func (x *Conversation) GetUnreadCount() int32 { - if x != nil { - return x.UnreadCount - } - return 0 -} - -func (x *Conversation) GetDraftTextTime() int64 { - if x != nil { - return x.DraftTextTime - } - return 0 -} - -func (x *Conversation) GetIsPinned() bool { - if x != nil { - return x.IsPinned - } - return false -} - -func (x *Conversation) GetAttachedInfo() string { - if x != nil { - return x.AttachedInfo - } - return "" -} - -func (x *Conversation) GetIsPrivateChat() bool { - if x != nil { - return x.IsPrivateChat - } - return false -} - -func (x *Conversation) GetGroupAtType() int32 { - if x != nil { - return x.GroupAtType - } - return 0 -} - -func (x *Conversation) GetIsNotInGroup() bool { - if x != nil { - return x.IsNotInGroup - } - return false -} - -func (x *Conversation) GetEx() string { - if x != nil { - return x.Ex - } - return "" -} - -type SetConversationReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Conversation *Conversation `protobuf:"bytes,1,opt,name=Conversation,proto3" json:"Conversation,omitempty"` - NotificationType int32 `protobuf:"varint,2,opt,name=notificationType,proto3" json:"notificationType,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *SetConversationReq) Reset() { - *x = SetConversationReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetConversationReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetConversationReq) ProtoMessage() {} - -func (x *SetConversationReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 SetConversationReq.ProtoReflect.Descriptor instead. -func (*SetConversationReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{14} -} - -func (x *SetConversationReq) GetConversation() *Conversation { - if x != nil { - return x.Conversation - } - return nil -} - -func (x *SetConversationReq) GetNotificationType() int32 { - if x != nil { - return x.NotificationType - } - return 0 -} - -func (x *SetConversationReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type SetConversationResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` -} - -func (x *SetConversationResp) Reset() { - *x = SetConversationResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetConversationResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetConversationResp) ProtoMessage() {} - -func (x *SetConversationResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 SetConversationResp.ProtoReflect.Descriptor instead. -func (*SetConversationResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{15} -} - -func (x *SetConversationResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type SetRecvMsgOptReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` - ConversationID string `protobuf:"bytes,2,opt,name=ConversationID,proto3" json:"ConversationID,omitempty"` - RecvMsgOpt int32 `protobuf:"varint,3,opt,name=RecvMsgOpt,proto3" json:"RecvMsgOpt,omitempty"` - NotificationType int32 `protobuf:"varint,4,opt,name=notificationType,proto3" json:"notificationType,omitempty"` - OperationID string `protobuf:"bytes,5,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *SetRecvMsgOptReq) Reset() { - *x = SetRecvMsgOptReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetRecvMsgOptReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetRecvMsgOptReq) ProtoMessage() {} - -func (x *SetRecvMsgOptReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 SetRecvMsgOptReq.ProtoReflect.Descriptor instead. -func (*SetRecvMsgOptReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{16} -} - -func (x *SetRecvMsgOptReq) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID - } - return "" -} - -func (x *SetRecvMsgOptReq) GetConversationID() string { - if x != nil { - return x.ConversationID - } - return "" -} - -func (x *SetRecvMsgOptReq) GetRecvMsgOpt() int32 { - if x != nil { - return x.RecvMsgOpt - } - return 0 -} - -func (x *SetRecvMsgOptReq) GetNotificationType() int32 { - if x != nil { - return x.NotificationType - } - return 0 -} - -func (x *SetRecvMsgOptReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type SetRecvMsgOptResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` -} - -func (x *SetRecvMsgOptResp) Reset() { - *x = SetRecvMsgOptResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetRecvMsgOptResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetRecvMsgOptResp) ProtoMessage() {} - -func (x *SetRecvMsgOptResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 SetRecvMsgOptResp.ProtoReflect.Descriptor instead. -func (*SetRecvMsgOptResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{17} -} - -func (x *SetRecvMsgOptResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type GetConversationReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ConversationID string `protobuf:"bytes,1,opt,name=ConversationID,proto3" json:"ConversationID,omitempty"` - OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetConversationReq) Reset() { - *x = GetConversationReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetConversationReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetConversationReq) ProtoMessage() {} - -func (x *GetConversationReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 GetConversationReq.ProtoReflect.Descriptor instead. -func (*GetConversationReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{18} -} - -func (x *GetConversationReq) GetConversationID() string { - if x != nil { - return x.ConversationID - } - return "" -} - -func (x *GetConversationReq) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID - } - return "" -} - -func (x *GetConversationReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GetConversationResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - Conversation *Conversation `protobuf:"bytes,2,opt,name=Conversation,proto3" json:"Conversation,omitempty"` -} - -func (x *GetConversationResp) Reset() { - *x = GetConversationResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetConversationResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetConversationResp) ProtoMessage() {} - -func (x *GetConversationResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 GetConversationResp.ProtoReflect.Descriptor instead. -func (*GetConversationResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{19} -} - -func (x *GetConversationResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *GetConversationResp) GetConversation() *Conversation { - if x != nil { - return x.Conversation - } - return nil -} - -type GetConversationsReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` - ConversationIDs []string `protobuf:"bytes,2,rep,name=ConversationIDs,proto3" json:"ConversationIDs,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetConversationsReq) Reset() { - *x = GetConversationsReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetConversationsReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetConversationsReq) ProtoMessage() {} - -func (x *GetConversationsReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_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 GetConversationsReq.ProtoReflect.Descriptor instead. -func (*GetConversationsReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{20} -} - -func (x *GetConversationsReq) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID - } - return "" -} - -func (x *GetConversationsReq) GetConversationIDs() []string { - if x != nil { - return x.ConversationIDs - } - return nil -} - -func (x *GetConversationsReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GetConversationsResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations,proto3" json:"Conversations,omitempty"` -} - -func (x *GetConversationsResp) Reset() { - *x = GetConversationsResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetConversationsResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetConversationsResp) ProtoMessage() {} - -func (x *GetConversationsResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetConversationsResp.ProtoReflect.Descriptor instead. -func (*GetConversationsResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{21} -} - -func (x *GetConversationsResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *GetConversationsResp) GetConversations() []*Conversation { - if x != nil { - return x.Conversations - } - return nil -} - -type GetAllConversationsReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetAllConversationsReq) Reset() { - *x = GetAllConversationsReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAllConversationsReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAllConversationsReq) ProtoMessage() {} - -func (x *GetAllConversationsReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetAllConversationsReq.ProtoReflect.Descriptor instead. -func (*GetAllConversationsReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{22} -} - -func (x *GetAllConversationsReq) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID - } - return "" -} - -func (x *GetAllConversationsReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GetAllConversationsResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations,proto3" json:"Conversations,omitempty"` -} - -func (x *GetAllConversationsResp) Reset() { - *x = GetAllConversationsResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAllConversationsResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAllConversationsResp) ProtoMessage() {} - -func (x *GetAllConversationsResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetAllConversationsResp.ProtoReflect.Descriptor instead. -func (*GetAllConversationsResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{23} -} - -func (x *GetAllConversationsResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *GetAllConversationsResp) GetConversations() []*Conversation { - if x != nil { - return x.Conversations - } - return nil -} - -type BatchSetConversationsReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Conversations []*Conversation `protobuf:"bytes,1,rep,name=Conversations,proto3" json:"Conversations,omitempty"` - OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` - NotificationType int32 `protobuf:"varint,3,opt,name=notificationType,proto3" json:"notificationType,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *BatchSetConversationsReq) Reset() { - *x = BatchSetConversationsReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BatchSetConversationsReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BatchSetConversationsReq) ProtoMessage() {} - -func (x *BatchSetConversationsReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BatchSetConversationsReq.ProtoReflect.Descriptor instead. -func (*BatchSetConversationsReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{24} -} - -func (x *BatchSetConversationsReq) GetConversations() []*Conversation { - if x != nil { - return x.Conversations - } - return nil -} - -func (x *BatchSetConversationsReq) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID - } - return "" -} - -func (x *BatchSetConversationsReq) GetNotificationType() int32 { - if x != nil { - return x.NotificationType - } - return 0 -} - -func (x *BatchSetConversationsReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type BatchSetConversationsResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - Success []string `protobuf:"bytes,2,rep,name=Success,proto3" json:"Success,omitempty"` - Failed []string `protobuf:"bytes,3,rep,name=Failed,proto3" json:"Failed,omitempty"` -} - -func (x *BatchSetConversationsResp) Reset() { - *x = BatchSetConversationsResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BatchSetConversationsResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BatchSetConversationsResp) ProtoMessage() {} - -func (x *BatchSetConversationsResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BatchSetConversationsResp.ProtoReflect.Descriptor instead. -func (*BatchSetConversationsResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{25} -} - -func (x *BatchSetConversationsResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *BatchSetConversationsResp) GetSuccess() []string { - if x != nil { - return x.Success - } - return nil -} - -func (x *BatchSetConversationsResp) GetFailed() []string { - if x != nil { - return x.Failed - } - return nil -} - -type ResignUserReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *ResignUserReq) Reset() { - *x = ResignUserReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ResignUserReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ResignUserReq) ProtoMessage() {} - -func (x *ResignUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ResignUserReq.ProtoReflect.Descriptor instead. -func (*ResignUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{26} -} - -func (x *ResignUserReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *ResignUserReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type ResignUserResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` -} - -func (x *ResignUserResp) Reset() { - *x = ResignUserResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ResignUserResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ResignUserResp) ProtoMessage() {} - -func (x *ResignUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ResignUserResp.ProtoReflect.Descriptor instead. -func (*ResignUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{27} -} - -func (x *ResignUserResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type GetUserByIdReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetUserByIdReq) Reset() { - *x = GetUserByIdReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUserByIdReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUserByIdReq) ProtoMessage() {} - -func (x *GetUserByIdReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUserByIdReq.ProtoReflect.Descriptor instead. -func (*GetUserByIdReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{28} -} - -func (x *GetUserByIdReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *GetUserByIdReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type User struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ProfilePhoto string `protobuf:"bytes,1,opt,name=ProfilePhoto,proto3" json:"ProfilePhoto,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=Nickname,proto3" json:"Nickname,omitempty"` - UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` - CreateTime string `protobuf:"bytes,4,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` - PhoneNumber string `protobuf:"bytes,5,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` - Email string `protobuf:"bytes,6,opt,name=Email,proto3" json:"Email,omitempty"` - Birth string `protobuf:"bytes,7,opt,name=Birth,proto3" json:"Birth,omitempty"` - CreateIp string `protobuf:"bytes,8,opt,name=CreateIp,proto3" json:"CreateIp,omitempty"` - LastLoginTime string `protobuf:"bytes,9,opt,name=LastLoginTime,proto3" json:"LastLoginTime,omitempty"` - LastLoginIp string `protobuf:"bytes,10,opt,name=LastLoginIp,proto3" json:"LastLoginIp,omitempty"` - LoginTimes int32 `protobuf:"varint,11,opt,name=LoginTimes,proto3" json:"LoginTimes,omitempty"` - Gender int32 `protobuf:"varint,12,opt,name=Gender,proto3" json:"Gender,omitempty"` - LoginLimit int32 `protobuf:"varint,13,opt,name=LoginLimit,proto3" json:"LoginLimit,omitempty"` - IsBlock bool `protobuf:"varint,14,opt,name=IsBlock,proto3" json:"IsBlock,omitempty"` -} - -func (x *User) Reset() { - *x = User{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *User) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*User) ProtoMessage() {} - -func (x *User) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use User.ProtoReflect.Descriptor instead. -func (*User) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{29} -} - -func (x *User) GetProfilePhoto() string { - if x != nil { - return x.ProfilePhoto - } - return "" -} - -func (x *User) GetNickname() string { - if x != nil { - return x.Nickname - } - return "" -} - -func (x *User) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *User) GetCreateTime() string { - if x != nil { - return x.CreateTime - } - return "" -} - -func (x *User) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber - } - return "" -} - -func (x *User) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *User) GetBirth() string { - if x != nil { - return x.Birth - } - return "" -} - -func (x *User) GetCreateIp() string { - if x != nil { - return x.CreateIp - } - return "" -} - -func (x *User) GetLastLoginTime() string { - if x != nil { - return x.LastLoginTime - } - return "" -} - -func (x *User) GetLastLoginIp() string { - if x != nil { - return x.LastLoginIp - } - return "" -} - -func (x *User) GetLoginTimes() int32 { - if x != nil { - return x.LoginTimes - } - return 0 -} - -func (x *User) GetGender() int32 { - if x != nil { - return x.Gender - } - return 0 -} - -func (x *User) GetLoginLimit() int32 { - if x != nil { - return x.LoginLimit - } - return 0 -} - -func (x *User) GetIsBlock() bool { - if x != nil { - return x.IsBlock - } - return false -} - -type GetUserByIdResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` -} - -func (x *GetUserByIdResp) Reset() { - *x = GetUserByIdResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUserByIdResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUserByIdResp) ProtoMessage() {} - -func (x *GetUserByIdResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUserByIdResp.ProtoReflect.Descriptor instead. -func (*GetUserByIdResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{30} -} - -func (x *GetUserByIdResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *GetUserByIdResp) GetUser() *User { - if x != nil { - return x.User - } - return nil -} - -type GetUsersByNameReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetUsersByNameReq) Reset() { - *x = GetUsersByNameReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUsersByNameReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUsersByNameReq) ProtoMessage() {} - -func (x *GetUsersByNameReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUsersByNameReq.ProtoReflect.Descriptor instead. -func (*GetUsersByNameReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{31} -} - -func (x *GetUsersByNameReq) GetUserName() string { - if x != nil { - return x.UserName - } - return "" -} - -func (x *GetUsersByNameReq) GetPagination() *sdk_ws.RequestPagination { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *GetUsersByNameReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GetUsersByNameResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Users []*User `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - UserNums int32 `protobuf:"varint,3,opt,name=UserNums,proto3" json:"UserNums,omitempty"` -} - -func (x *GetUsersByNameResp) Reset() { - *x = GetUsersByNameResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUsersByNameResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUsersByNameResp) ProtoMessage() {} - -func (x *GetUsersByNameResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUsersByNameResp.ProtoReflect.Descriptor instead. -func (*GetUsersByNameResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{32} -} - -func (x *GetUsersByNameResp) GetUsers() []*User { - if x != nil { - return x.Users - } - return nil -} - -func (x *GetUsersByNameResp) GetPagination() *sdk_ws.ResponsePagination { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *GetUsersByNameResp) GetUserNums() int32 { - if x != nil { - return x.UserNums - } - return 0 -} - -type AlterUserReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - PhoneNumber string `protobuf:"bytes,3,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` - Nickname string `protobuf:"bytes,4,opt,name=Nickname,proto3" json:"Nickname,omitempty"` - Email string `protobuf:"bytes,5,opt,name=Email,proto3" json:"Email,omitempty"` - Gender string `protobuf:"bytes,6,opt,name=Gender,proto3" json:"Gender,omitempty"` - Birth string `protobuf:"bytes,7,opt,name=Birth,proto3" json:"Birth,omitempty"` - Photo string `protobuf:"bytes,8,opt,name=Photo,proto3" json:"Photo,omitempty"` - OpUserId string `protobuf:"bytes,9,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` -} - -func (x *AlterUserReq) Reset() { - *x = AlterUserReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AlterUserReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AlterUserReq) ProtoMessage() {} - -func (x *AlterUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AlterUserReq.ProtoReflect.Descriptor instead. -func (*AlterUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{33} -} - -func (x *AlterUserReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *AlterUserReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *AlterUserReq) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber - } - return "" -} - -func (x *AlterUserReq) GetNickname() string { - if x != nil { - return x.Nickname - } - return "" -} - -func (x *AlterUserReq) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *AlterUserReq) GetGender() string { - if x != nil { - return x.Gender - } - return "" -} - -func (x *AlterUserReq) GetBirth() string { - if x != nil { - return x.Birth - } - return "" -} - -func (x *AlterUserReq) GetPhoto() string { - if x != nil { - return x.Photo - } - return "" -} - -func (x *AlterUserReq) GetOpUserId() string { - if x != nil { - return x.OpUserId - } - return "" -} - -type AlterUserResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` -} - -func (x *AlterUserResp) Reset() { - *x = AlterUserResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AlterUserResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AlterUserResp) ProtoMessage() {} - -func (x *AlterUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AlterUserResp.ProtoReflect.Descriptor instead. -func (*AlterUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{34} -} - -func (x *AlterUserResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type GetUsersReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - UserName string `protobuf:"bytes,3,opt,name=UserName,proto3" json:"UserName,omitempty"` -} - -func (x *GetUsersReq) Reset() { - *x = GetUsersReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUsersReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUsersReq) ProtoMessage() {} - -func (x *GetUsersReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUsersReq.ProtoReflect.Descriptor instead. -func (*GetUsersReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{35} -} - -func (x *GetUsersReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *GetUsersReq) GetPagination() *sdk_ws.RequestPagination { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *GetUsersReq) GetUserName() string { - if x != nil { - return x.UserName - } - return "" -} - -type GetUsersResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - User []*User `protobuf:"bytes,2,rep,name=user,proto3" json:"user,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - UserNums int32 `protobuf:"varint,4,opt,name=UserNums,proto3" json:"UserNums,omitempty"` -} - -func (x *GetUsersResp) Reset() { - *x = GetUsersResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUsersResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUsersResp) ProtoMessage() {} - -func (x *GetUsersResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUsersResp.ProtoReflect.Descriptor instead. -func (*GetUsersResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{36} -} - -func (x *GetUsersResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *GetUsersResp) GetUser() []*User { - if x != nil { - return x.User - } - return nil -} - -func (x *GetUsersResp) GetPagination() *sdk_ws.ResponsePagination { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *GetUsersResp) GetUserNums() int32 { - if x != nil { - return x.UserNums - } - return 0 -} - -type AddUserReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - PhoneNumber string `protobuf:"bytes,2,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` - UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` - Email string `protobuf:"bytes,5,opt,name=Email,proto3" json:"Email,omitempty"` - Gender string `protobuf:"bytes,6,opt,name=Gender,proto3" json:"Gender,omitempty"` - Birth string `protobuf:"bytes,7,opt,name=Birth,proto3" json:"Birth,omitempty"` - Photo string `protobuf:"bytes,8,opt,name=Photo,proto3" json:"Photo,omitempty"` - OpUserId string `protobuf:"bytes,9,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` -} - -func (x *AddUserReq) Reset() { - *x = AddUserReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AddUserReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddUserReq) ProtoMessage() {} - -func (x *AddUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AddUserReq.ProtoReflect.Descriptor instead. -func (*AddUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{37} -} - -func (x *AddUserReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *AddUserReq) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber - } - return "" -} - -func (x *AddUserReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *AddUserReq) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *AddUserReq) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *AddUserReq) GetGender() string { - if x != nil { - return x.Gender - } - return "" -} - -func (x *AddUserReq) GetBirth() string { - if x != nil { - return x.Birth - } - return "" -} - -func (x *AddUserReq) GetPhoto() string { - if x != nil { - return x.Photo - } - return "" -} - -func (x *AddUserReq) GetOpUserId() string { - if x != nil { - return x.OpUserId - } - return "" -} - -type AddUserResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` -} - -func (x *AddUserResp) Reset() { - *x = AddUserResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AddUserResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddUserResp) ProtoMessage() {} - -func (x *AddUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AddUserResp.ProtoReflect.Descriptor instead. -func (*AddUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{38} -} - -func (x *AddUserResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type BlockUserReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` - EndDisableTime string `protobuf:"bytes,2,opt,name=EndDisableTime,proto3" json:"EndDisableTime,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - OpUserId string `protobuf:"bytes,4,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` -} - -func (x *BlockUserReq) Reset() { - *x = BlockUserReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BlockUserReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BlockUserReq) ProtoMessage() {} - -func (x *BlockUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BlockUserReq.ProtoReflect.Descriptor instead. -func (*BlockUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{39} -} - -func (x *BlockUserReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *BlockUserReq) GetEndDisableTime() string { - if x != nil { - return x.EndDisableTime - } - return "" -} - -func (x *BlockUserReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *BlockUserReq) GetOpUserId() string { - if x != nil { - return x.OpUserId - } - return "" -} - -type BlockUserResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` -} - -func (x *BlockUserResp) Reset() { - *x = BlockUserResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BlockUserResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BlockUserResp) ProtoMessage() {} - -func (x *BlockUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BlockUserResp.ProtoReflect.Descriptor instead. -func (*BlockUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{40} -} - -func (x *BlockUserResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type UnBlockUserReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - OpUserId string `protobuf:"bytes,3,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` -} - -func (x *UnBlockUserReq) Reset() { - *x = UnBlockUserReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UnBlockUserReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UnBlockUserReq) ProtoMessage() {} - -func (x *UnBlockUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UnBlockUserReq.ProtoReflect.Descriptor instead. -func (*UnBlockUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{41} -} - -func (x *UnBlockUserReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *UnBlockUserReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *UnBlockUserReq) GetOpUserId() string { - if x != nil { - return x.OpUserId - } - return "" -} - -type UnBlockUserResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` -} - -func (x *UnBlockUserResp) Reset() { - *x = UnBlockUserResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UnBlockUserResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UnBlockUserResp) ProtoMessage() {} - -func (x *UnBlockUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UnBlockUserResp.ProtoReflect.Descriptor instead. -func (*UnBlockUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{42} -} - -func (x *UnBlockUserResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type GetBlockUsersReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - BlockUserNum int32 `protobuf:"varint,3,opt,name=BlockUserNum,proto3" json:"BlockUserNum,omitempty"` -} - -func (x *GetBlockUsersReq) Reset() { - *x = GetBlockUsersReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetBlockUsersReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetBlockUsersReq) ProtoMessage() {} - -func (x *GetBlockUsersReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetBlockUsersReq.ProtoReflect.Descriptor instead. -func (*GetBlockUsersReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{43} -} - -func (x *GetBlockUsersReq) GetPagination() *sdk_ws.RequestPagination { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *GetBlockUsersReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *GetBlockUsersReq) GetBlockUserNum() int32 { - if x != nil { - return x.BlockUserNum - } - return 0 -} - -type BlockUser struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - User *User `protobuf:"bytes,1,opt,name=User,proto3" json:"User,omitempty"` - BeginDisableTime string `protobuf:"bytes,2,opt,name=BeginDisableTime,proto3" json:"BeginDisableTime,omitempty"` - EndDisableTime string `protobuf:"bytes,3,opt,name=EndDisableTime,proto3" json:"EndDisableTime,omitempty"` -} - -func (x *BlockUser) Reset() { - *x = BlockUser{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BlockUser) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BlockUser) ProtoMessage() {} - -func (x *BlockUser) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BlockUser.ProtoReflect.Descriptor instead. -func (*BlockUser) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{44} -} - -func (x *BlockUser) GetUser() *User { - if x != nil { - return x.User - } - return nil -} - -func (x *BlockUser) GetBeginDisableTime() string { - if x != nil { - return x.BeginDisableTime - } - return "" -} - -func (x *BlockUser) GetEndDisableTime() string { - if x != nil { - return x.EndDisableTime - } - return "" -} - -type GetBlockUsersResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - BlockUsers []*BlockUser `protobuf:"bytes,2,rep,name=BlockUsers,proto3" json:"BlockUsers,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - UserNums int32 `protobuf:"varint,4,opt,name=UserNums,proto3" json:"UserNums,omitempty"` -} - -func (x *GetBlockUsersResp) Reset() { - *x = GetBlockUsersResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetBlockUsersResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetBlockUsersResp) ProtoMessage() {} - -func (x *GetBlockUsersResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetBlockUsersResp.ProtoReflect.Descriptor instead. -func (*GetBlockUsersResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{45} -} - -func (x *GetBlockUsersResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *GetBlockUsersResp) GetBlockUsers() []*BlockUser { - if x != nil { - return x.BlockUsers - } - return nil -} - -func (x *GetBlockUsersResp) GetPagination() *sdk_ws.ResponsePagination { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *GetBlockUsersResp) GetUserNums() int32 { - if x != nil { - return x.UserNums - } - return 0 -} - -type GetBlockUserByIdReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId,proto3" json:"User_id,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetBlockUserByIdReq) Reset() { - *x = GetBlockUserByIdReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetBlockUserByIdReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetBlockUserByIdReq) ProtoMessage() {} - -func (x *GetBlockUserByIdReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[46] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetBlockUserByIdReq.ProtoReflect.Descriptor instead. -func (*GetBlockUserByIdReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{46} -} - -func (x *GetBlockUserByIdReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *GetBlockUserByIdReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GetBlockUserByIdResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - BlockUser *BlockUser `protobuf:"bytes,2,opt,name=BlockUser,proto3" json:"BlockUser,omitempty"` -} - -func (x *GetBlockUserByIdResp) Reset() { - *x = GetBlockUserByIdResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetBlockUserByIdResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetBlockUserByIdResp) ProtoMessage() {} - -func (x *GetBlockUserByIdResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[47] - 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 GetBlockUserByIdResp.ProtoReflect.Descriptor instead. -func (*GetBlockUserByIdResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{47} -} - -func (x *GetBlockUserByIdResp) GetBlockUser() *BlockUser { - if x != nil { - return x.BlockUser - } - return nil -} - -type DeleteUserReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId,proto3" json:"User_id,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - OpUserId string `protobuf:"bytes,3,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` -} - -func (x *DeleteUserReq) Reset() { - *x = DeleteUserReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DeleteUserReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteUserReq) ProtoMessage() {} - -func (x *DeleteUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[48] - 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 DeleteUserReq.ProtoReflect.Descriptor instead. -func (*DeleteUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{48} -} - -func (x *DeleteUserReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *DeleteUserReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *DeleteUserReq) GetOpUserId() string { - if x != nil { - return x.OpUserId - } - return "" -} - -type DeleteUserResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` -} - -func (x *DeleteUserResp) Reset() { - *x = DeleteUserResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DeleteUserResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteUserResp) ProtoMessage() {} - -func (x *DeleteUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[49] - 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 DeleteUserResp.ProtoReflect.Descriptor instead. -func (*DeleteUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{49} -} - -func (x *DeleteUserResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +func (m *AccountCheckResp) GetResultList() []*AccountCheckResp_SingleUserStatus { + if m != nil { + return m.ResultList } return nil } type AccountCheckResp_SingleUserStatus struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` - AccountStatus string `protobuf:"bytes,2,opt,name=accountStatus,proto3" json:"accountStatus,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + AccountStatus string `protobuf:"bytes,2,opt,name=accountStatus" json:"accountStatus,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *AccountCheckResp_SingleUserStatus) Reset() { - *x = AccountCheckResp_SingleUserStatus{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AccountCheckResp_SingleUserStatus) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} - -func (x *AccountCheckResp_SingleUserStatus) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[50] - 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 AccountCheckResp_SingleUserStatus.ProtoReflect.Descriptor instead. +func (m *AccountCheckResp_SingleUserStatus) Reset() { *m = AccountCheckResp_SingleUserStatus{} } +func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) } +func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{6, 0} + return fileDescriptor_user_461ee57002abbf2b, []int{6, 0} +} +func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b) +} +func (m *AccountCheckResp_SingleUserStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Marshal(b, m, deterministic) +} +func (dst *AccountCheckResp_SingleUserStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountCheckResp_SingleUserStatus.Merge(dst, src) +} +func (m *AccountCheckResp_SingleUserStatus) XXX_Size() int { + return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Size(m) +} +func (m *AccountCheckResp_SingleUserStatus) XXX_DiscardUnknown() { + xxx_messageInfo_AccountCheckResp_SingleUserStatus.DiscardUnknown(m) } -func (x *AccountCheckResp_SingleUserStatus) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_AccountCheckResp_SingleUserStatus proto.InternalMessageInfo + +func (m *AccountCheckResp_SingleUserStatus) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *AccountCheckResp_SingleUserStatus) GetAccountStatus() string { - if x != nil { - return x.AccountStatus +func (m *AccountCheckResp_SingleUserStatus) GetAccountStatus() string { + if m != nil { + return m.AccountStatus } return "" } -var File_user_user_proto protoreflect.FileDescriptor - -var file_user_user_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x04, 0x75, 0x73, 0x65, 0x72, 0x1a, 0x21, 0x4f, 0x70, 0x65, 0x6e, 0x5f, 0x49, 0x4d, - 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, - 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3e, 0x0a, 0x0a, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x7a, 0x0a, 0x0e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x2a, 0x0a, 0x10, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x6f, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, - 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x10, 0x46, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x6c, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x64, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, - 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, - 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x79, - 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, - 0x71, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xdf, 0x01, 0x0a, 0x10, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, - 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x47, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x50, 0x0a, 0x10, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6e, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, - 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, - 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x84, 0x01, 0x0a, 0x0f, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, - 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x37, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, - 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, - 0x46, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x82, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x47, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, - 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x12, 0x2a, 0x0a, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, - 0x67, 0x4f, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x67, 0x6c, 0x6f, 0x62, - 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x22, 0x4f, 0x0a, 0x1b, - 0x53, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xda, 0x03, - 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, - 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x76, - 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, - 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x55, 0x6e, 0x72, - 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x72, 0x61, 0x66, - 0x74, 0x54, 0x65, 0x78, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0d, 0x44, 0x72, 0x61, 0x66, 0x74, 0x54, 0x65, 0x78, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x49, 0x73, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x49, 0x73, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, - 0x0a, 0x0d, 0x49, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x49, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x43, 0x68, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x49, 0x73, 0x4e, 0x6f, 0x74, 0x49, - 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x49, 0x73, - 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x45, 0x78, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x45, 0x78, 0x22, 0x9a, 0x01, 0x0a, 0x12, 0x53, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x47, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, - 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0xca, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, - 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, - 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, - 0x2a, 0x0a, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x45, 0x0a, - 0x11, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x80, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x43, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x7f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, - 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x82, - 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0x5c, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, - 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x22, 0x85, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, - 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x38, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x18, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x38, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x22, 0x7f, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, - 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x46, 0x61, 0x69, - 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x42, 0x0a, 0x0e, - 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, - 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x4a, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, - 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xa2, 0x03, 0x0a, - 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, - 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, - 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x61, 0x73, 0x74, 0x4c, - 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x12, - 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x22, 0x63, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x97, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, - 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x22, 0x99, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0xfc, 0x01, 0x0a, - 0x0c, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, - 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, - 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, - 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, - 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x47, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x68, 0x6f, - 0x74, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, - 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x41, - 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x91, - 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, - 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0xf2, 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x64, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, - 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a, - 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x50, - 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x68, 0x6f, 0x74, - 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3f, 0x0a, - 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8c, - 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, - 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, - 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, - 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x66, 0x0a, 0x0e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, - 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0f, 0x55, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9e, 0x01, - 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x7f, - 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x04, 0x55, - 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x42, - 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, - 0xd9, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x50, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, - 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x45, 0x0a, - 0x14, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x22, 0x66, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x0e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, - 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x32, 0xf7, 0x0b, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5e, 0x0a, 0x17, 0x53, 0x65, - 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x20, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, - 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, - 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x1a, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x13, - 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, - 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x15, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, - 0x0d, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x16, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, - 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, - 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x14, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, - 0x64, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, - 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, 0x6c, 0x74, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, - 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, - 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x19, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, - 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, - 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, +type GetUserInfoReq struct { + UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -var ( - file_user_user_proto_rawDescOnce sync.Once - file_user_user_proto_rawDescData = file_user_user_proto_rawDesc -) - -func file_user_user_proto_rawDescGZIP() []byte { - file_user_user_proto_rawDescOnce.Do(func() { - file_user_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_user_proto_rawDescData) - }) - return file_user_user_proto_rawDescData +func (m *GetUserInfoReq) Reset() { *m = GetUserInfoReq{} } +func (m *GetUserInfoReq) String() string { return proto.CompactTextString(m) } +func (*GetUserInfoReq) ProtoMessage() {} +func (*GetUserInfoReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{7} +} +func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) +} +func (m *GetUserInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserInfoReq.Marshal(b, m, deterministic) +} +func (dst *GetUserInfoReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserInfoReq.Merge(dst, src) +} +func (m *GetUserInfoReq) XXX_Size() int { + return xxx_messageInfo_GetUserInfoReq.Size(m) +} +func (m *GetUserInfoReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserInfoReq.DiscardUnknown(m) } -var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 51) -var file_user_user_proto_goTypes = []interface{}{ - (*CommonResp)(nil), // 0: user.CommonResp - (*DeleteUsersReq)(nil), // 1: user.DeleteUsersReq - (*DeleteUsersResp)(nil), // 2: user.DeleteUsersResp - (*GetAllUserIDReq)(nil), // 3: user.GetAllUserIDReq - (*GetAllUserIDResp)(nil), // 4: user.GetAllUserIDResp - (*AccountCheckReq)(nil), // 5: user.AccountCheckReq - (*AccountCheckResp)(nil), // 6: user.AccountCheckResp - (*GetUserInfoReq)(nil), // 7: user.GetUserInfoReq - (*GetUserInfoResp)(nil), // 8: user.GetUserInfoResp - (*UpdateUserInfoReq)(nil), // 9: user.UpdateUserInfoReq - (*UpdateUserInfoResp)(nil), // 10: user.UpdateUserInfoResp - (*SetGlobalRecvMessageOptReq)(nil), // 11: user.SetGlobalRecvMessageOptReq - (*SetGlobalRecvMessageOptResp)(nil), // 12: user.SetGlobalRecvMessageOptResp - (*Conversation)(nil), // 13: user.Conversation - (*SetConversationReq)(nil), // 14: user.SetConversationReq - (*SetConversationResp)(nil), // 15: user.SetConversationResp - (*SetRecvMsgOptReq)(nil), // 16: user.SetRecvMsgOptReq - (*SetRecvMsgOptResp)(nil), // 17: user.SetRecvMsgOptResp - (*GetConversationReq)(nil), // 18: user.GetConversationReq - (*GetConversationResp)(nil), // 19: user.GetConversationResp - (*GetConversationsReq)(nil), // 20: user.GetConversationsReq - (*GetConversationsResp)(nil), // 21: user.GetConversationsResp - (*GetAllConversationsReq)(nil), // 22: user.GetAllConversationsReq - (*GetAllConversationsResp)(nil), // 23: user.GetAllConversationsResp - (*BatchSetConversationsReq)(nil), // 24: user.BatchSetConversationsReq - (*BatchSetConversationsResp)(nil), // 25: user.BatchSetConversationsResp - (*ResignUserReq)(nil), // 26: user.ResignUserReq - (*ResignUserResp)(nil), // 27: user.ResignUserResp - (*GetUserByIdReq)(nil), // 28: user.GetUserByIdReq - (*User)(nil), // 29: user.User - (*GetUserByIdResp)(nil), // 30: user.GetUserByIdResp - (*GetUsersByNameReq)(nil), // 31: user.GetUsersByNameReq - (*GetUsersByNameResp)(nil), // 32: user.GetUsersByNameResp - (*AlterUserReq)(nil), // 33: user.AlterUserReq - (*AlterUserResp)(nil), // 34: user.AlterUserResp - (*GetUsersReq)(nil), // 35: user.GetUsersReq - (*GetUsersResp)(nil), // 36: user.GetUsersResp - (*AddUserReq)(nil), // 37: user.AddUserReq - (*AddUserResp)(nil), // 38: user.AddUserResp - (*BlockUserReq)(nil), // 39: user.BlockUserReq - (*BlockUserResp)(nil), // 40: user.BlockUserResp - (*UnBlockUserReq)(nil), // 41: user.UnBlockUserReq - (*UnBlockUserResp)(nil), // 42: user.UnBlockUserResp - (*GetBlockUsersReq)(nil), // 43: user.GetBlockUsersReq - (*BlockUser)(nil), // 44: user.BlockUser - (*GetBlockUsersResp)(nil), // 45: user.GetBlockUsersResp - (*GetBlockUserByIdReq)(nil), // 46: user.GetBlockUserByIdReq - (*GetBlockUserByIdResp)(nil), // 47: user.GetBlockUserByIdResp - (*DeleteUserReq)(nil), // 48: user.DeleteUserReq - (*DeleteUserResp)(nil), // 49: user.DeleteUserResp - (*AccountCheckResp_SingleUserStatus)(nil), // 50: user.AccountCheckResp.SingleUserStatus - (*sdk_ws.UserInfo)(nil), // 51: server_api_params.UserInfo - (*sdk_ws.RequestPagination)(nil), // 52: server_api_params.RequestPagination - (*sdk_ws.ResponsePagination)(nil), // 53: server_api_params.ResponsePagination -} -var file_user_user_proto_depIdxs = []int32{ - 0, // 0: user.DeleteUsersResp.CommonResp:type_name -> user.CommonResp - 0, // 1: user.GetAllUserIDResp.CommonResp:type_name -> user.CommonResp - 0, // 2: user.AccountCheckResp.commonResp:type_name -> user.CommonResp - 50, // 3: user.AccountCheckResp.ResultList:type_name -> user.AccountCheckResp.SingleUserStatus - 0, // 4: user.GetUserInfoResp.commonResp:type_name -> user.CommonResp - 51, // 5: user.GetUserInfoResp.UserInfoList:type_name -> server_api_params.UserInfo - 51, // 6: user.UpdateUserInfoReq.UserInfo:type_name -> server_api_params.UserInfo - 0, // 7: user.UpdateUserInfoResp.commonResp:type_name -> user.CommonResp - 0, // 8: user.SetGlobalRecvMessageOptResp.commonResp:type_name -> user.CommonResp - 13, // 9: user.SetConversationReq.Conversation:type_name -> user.Conversation - 0, // 10: user.SetConversationResp.commonResp:type_name -> user.CommonResp - 0, // 11: user.SetRecvMsgOptResp.commonResp:type_name -> user.CommonResp - 0, // 12: user.GetConversationResp.commonResp:type_name -> user.CommonResp - 13, // 13: user.GetConversationResp.Conversation:type_name -> user.Conversation - 0, // 14: user.GetConversationsResp.commonResp:type_name -> user.CommonResp - 13, // 15: user.GetConversationsResp.Conversations:type_name -> user.Conversation - 0, // 16: user.GetAllConversationsResp.commonResp:type_name -> user.CommonResp - 13, // 17: user.GetAllConversationsResp.Conversations:type_name -> user.Conversation - 13, // 18: user.BatchSetConversationsReq.Conversations:type_name -> user.Conversation - 0, // 19: user.BatchSetConversationsResp.commonResp:type_name -> user.CommonResp - 0, // 20: user.ResignUserResp.commonResp:type_name -> user.CommonResp - 0, // 21: user.GetUserByIdResp.CommonResp:type_name -> user.CommonResp - 29, // 22: user.GetUserByIdResp.user:type_name -> user.User - 52, // 23: user.GetUsersByNameReq.Pagination:type_name -> server_api_params.RequestPagination - 29, // 24: user.GetUsersByNameResp.users:type_name -> user.User - 53, // 25: user.GetUsersByNameResp.Pagination:type_name -> server_api_params.ResponsePagination - 0, // 26: user.AlterUserResp.CommonResp:type_name -> user.CommonResp - 52, // 27: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination - 0, // 28: user.GetUsersResp.CommonResp:type_name -> user.CommonResp - 29, // 29: user.GetUsersResp.user:type_name -> user.User - 53, // 30: user.GetUsersResp.Pagination:type_name -> server_api_params.ResponsePagination - 0, // 31: user.AddUserResp.CommonResp:type_name -> user.CommonResp - 0, // 32: user.BlockUserResp.CommonResp:type_name -> user.CommonResp - 0, // 33: user.UnBlockUserResp.CommonResp:type_name -> user.CommonResp - 52, // 34: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination - 29, // 35: user.BlockUser.User:type_name -> user.User - 0, // 36: user.GetBlockUsersResp.CommonResp:type_name -> user.CommonResp - 44, // 37: user.GetBlockUsersResp.BlockUsers:type_name -> user.BlockUser - 53, // 38: user.GetBlockUsersResp.Pagination:type_name -> server_api_params.ResponsePagination - 44, // 39: user.GetBlockUserByIdResp.BlockUser:type_name -> user.BlockUser - 0, // 40: user.DeleteUserResp.CommonResp:type_name -> user.CommonResp - 7, // 41: user.user.GetUserInfo:input_type -> user.GetUserInfoReq - 9, // 42: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq - 11, // 43: user.user.SetGlobalRecvMessageOpt:input_type -> user.SetGlobalRecvMessageOptReq - 1, // 44: user.user.DeleteUsers:input_type -> user.DeleteUsersReq - 3, // 45: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq - 5, // 46: user.user.AccountCheck:input_type -> user.AccountCheckReq - 18, // 47: user.user.GetConversation:input_type -> user.GetConversationReq - 22, // 48: user.user.GetAllConversations:input_type -> user.GetAllConversationsReq - 20, // 49: user.user.GetConversations:input_type -> user.GetConversationsReq - 24, // 50: user.user.BatchSetConversations:input_type -> user.BatchSetConversationsReq - 14, // 51: user.user.SetConversation:input_type -> user.SetConversationReq - 16, // 52: user.user.SetRecvMsgOpt:input_type -> user.SetRecvMsgOptReq - 28, // 53: user.user.GetUserById:input_type -> user.GetUserByIdReq - 31, // 54: user.user.GetUsersByName:input_type -> user.GetUsersByNameReq - 26, // 55: user.user.ResignUser:input_type -> user.ResignUserReq - 33, // 56: user.user.AlterUser:input_type -> user.AlterUserReq - 35, // 57: user.user.GetUsers:input_type -> user.GetUsersReq - 37, // 58: user.user.AddUser:input_type -> user.AddUserReq - 39, // 59: user.user.BlockUser:input_type -> user.BlockUserReq - 41, // 60: user.user.UnBlockUser:input_type -> user.UnBlockUserReq - 43, // 61: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq - 46, // 62: user.user.GetBlockUserById:input_type -> user.GetBlockUserByIdReq - 48, // 63: user.user.DeleteUser:input_type -> user.DeleteUserReq - 8, // 64: user.user.GetUserInfo:output_type -> user.GetUserInfoResp - 10, // 65: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp - 12, // 66: user.user.SetGlobalRecvMessageOpt:output_type -> user.SetGlobalRecvMessageOptResp - 2, // 67: user.user.DeleteUsers:output_type -> user.DeleteUsersResp - 4, // 68: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp - 6, // 69: user.user.AccountCheck:output_type -> user.AccountCheckResp - 19, // 70: user.user.GetConversation:output_type -> user.GetConversationResp - 23, // 71: user.user.GetAllConversations:output_type -> user.GetAllConversationsResp - 21, // 72: user.user.GetConversations:output_type -> user.GetConversationsResp - 25, // 73: user.user.BatchSetConversations:output_type -> user.BatchSetConversationsResp - 15, // 74: user.user.SetConversation:output_type -> user.SetConversationResp - 17, // 75: user.user.SetRecvMsgOpt:output_type -> user.SetRecvMsgOptResp - 30, // 76: user.user.GetUserById:output_type -> user.GetUserByIdResp - 32, // 77: user.user.GetUsersByName:output_type -> user.GetUsersByNameResp - 27, // 78: user.user.ResignUser:output_type -> user.ResignUserResp - 34, // 79: user.user.AlterUser:output_type -> user.AlterUserResp - 36, // 80: user.user.GetUsers:output_type -> user.GetUsersResp - 38, // 81: user.user.AddUser:output_type -> user.AddUserResp - 40, // 82: user.user.BlockUser:output_type -> user.BlockUserResp - 42, // 83: user.user.UnBlockUser:output_type -> user.UnBlockUserResp - 45, // 84: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp - 47, // 85: user.user.GetBlockUserById:output_type -> user.GetBlockUserByIdResp - 49, // 86: user.user.DeleteUser:output_type -> user.DeleteUserResp - 64, // [64:87] is the sub-list for method output_type - 41, // [41:64] is the sub-list for method input_type - 41, // [41:41] is the sub-list for extension type_name - 41, // [41:41] is the sub-list for extension extendee - 0, // [0:41] is the sub-list for field type_name -} +var xxx_messageInfo_GetUserInfoReq proto.InternalMessageInfo -func init() { file_user_user_proto_init() } -func file_user_user_proto_init() { - if File_user_user_proto != nil { - return +func (m *GetUserInfoReq) GetUserIDList() []string { + if m != nil { + return m.UserIDList } - if !protoimpl.UnsafeEnabled { - file_user_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUsersReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUsersResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllUserIDReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllUserIDResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountCheckReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountCheckResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserInfoReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserInfoResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateUserInfoReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateUserInfoResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGlobalRecvMessageOptReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGlobalRecvMessageOptResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Conversation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetConversationReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetConversationResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetRecvMsgOptReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetRecvMsgOptResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetConversationReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetConversationResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetConversationsReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetConversationsResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllConversationsReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllConversationsResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchSetConversationsReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchSetConversationsResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResignUserReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResignUserResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserByIdReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*User); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserByIdResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersByNameReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersByNameResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AlterUserReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AlterUserResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddUserReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddUserResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockUserReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockUserResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnBlockUserReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnBlockUserResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUsersReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockUser); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUsersResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUserByIdReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUserByIdResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUserReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUserResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountCheckResp_SingleUserStatus); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } + return nil +} + +func (m *GetUserInfoReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_user_user_proto_rawDesc, - NumEnums: 0, - NumMessages: 51, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_user_user_proto_goTypes, - DependencyIndexes: file_user_user_proto_depIdxs, - MessageInfos: file_user_user_proto_msgTypes, - }.Build() - File_user_user_proto = out.File - file_user_user_proto_rawDesc = nil - file_user_user_proto_goTypes = nil - file_user_user_proto_depIdxs = nil + return "" +} + +func (m *GetUserInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetUserInfoResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + UserInfoList []*sdk_ws.UserInfo `protobuf:"bytes,3,rep,name=UserInfoList" json:"UserInfoList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserInfoResp) Reset() { *m = GetUserInfoResp{} } +func (m *GetUserInfoResp) String() string { return proto.CompactTextString(m) } +func (*GetUserInfoResp) ProtoMessage() {} +func (*GetUserInfoResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{8} +} +func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) +} +func (m *GetUserInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserInfoResp.Marshal(b, m, deterministic) +} +func (dst *GetUserInfoResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserInfoResp.Merge(dst, src) +} +func (m *GetUserInfoResp) XXX_Size() int { + return xxx_messageInfo_GetUserInfoResp.Size(m) +} +func (m *GetUserInfoResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserInfoResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserInfoResp proto.InternalMessageInfo + +func (m *GetUserInfoResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetUserInfoResp) GetUserInfoList() []*sdk_ws.UserInfo { + if m != nil { + return m.UserInfoList + } + return nil +} + +type UpdateUserInfoReq struct { + UserInfo *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=UserInfo" json:"UserInfo,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpdateUserInfoReq) Reset() { *m = UpdateUserInfoReq{} } +func (m *UpdateUserInfoReq) String() string { return proto.CompactTextString(m) } +func (*UpdateUserInfoReq) ProtoMessage() {} +func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{9} +} +func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) +} +func (m *UpdateUserInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateUserInfoReq.Marshal(b, m, deterministic) +} +func (dst *UpdateUserInfoReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateUserInfoReq.Merge(dst, src) +} +func (m *UpdateUserInfoReq) XXX_Size() int { + return xxx_messageInfo_UpdateUserInfoReq.Size(m) +} +func (m *UpdateUserInfoReq) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateUserInfoReq.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateUserInfoReq proto.InternalMessageInfo + +func (m *UpdateUserInfoReq) GetUserInfo() *sdk_ws.UserInfo { + if m != nil { + return m.UserInfo + } + return nil +} + +func (m *UpdateUserInfoReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *UpdateUserInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type UpdateUserInfoResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpdateUserInfoResp) Reset() { *m = UpdateUserInfoResp{} } +func (m *UpdateUserInfoResp) String() string { return proto.CompactTextString(m) } +func (*UpdateUserInfoResp) ProtoMessage() {} +func (*UpdateUserInfoResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{10} +} +func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b) +} +func (m *UpdateUserInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateUserInfoResp.Marshal(b, m, deterministic) +} +func (dst *UpdateUserInfoResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateUserInfoResp.Merge(dst, src) +} +func (m *UpdateUserInfoResp) XXX_Size() int { + return xxx_messageInfo_UpdateUserInfoResp.Size(m) +} +func (m *UpdateUserInfoResp) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateUserInfoResp.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateUserInfoResp proto.InternalMessageInfo + +func (m *UpdateUserInfoResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type SetGlobalRecvMessageOptReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GlobalRecvMsgOpt int32 `protobuf:"varint,3,opt,name=globalRecvMsgOpt" json:"globalRecvMsgOpt,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetGlobalRecvMessageOptReq) Reset() { *m = SetGlobalRecvMessageOptReq{} } +func (m *SetGlobalRecvMessageOptReq) String() string { return proto.CompactTextString(m) } +func (*SetGlobalRecvMessageOptReq) ProtoMessage() {} +func (*SetGlobalRecvMessageOptReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{11} +} +func (m *SetGlobalRecvMessageOptReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetGlobalRecvMessageOptReq.Unmarshal(m, b) +} +func (m *SetGlobalRecvMessageOptReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetGlobalRecvMessageOptReq.Marshal(b, m, deterministic) +} +func (dst *SetGlobalRecvMessageOptReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetGlobalRecvMessageOptReq.Merge(dst, src) +} +func (m *SetGlobalRecvMessageOptReq) XXX_Size() int { + return xxx_messageInfo_SetGlobalRecvMessageOptReq.Size(m) +} +func (m *SetGlobalRecvMessageOptReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetGlobalRecvMessageOptReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SetGlobalRecvMessageOptReq proto.InternalMessageInfo + +func (m *SetGlobalRecvMessageOptReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *SetGlobalRecvMessageOptReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *SetGlobalRecvMessageOptReq) GetGlobalRecvMsgOpt() int32 { + if m != nil { + return m.GlobalRecvMsgOpt + } + return 0 +} + +type SetGlobalRecvMessageOptResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetGlobalRecvMessageOptResp) Reset() { *m = SetGlobalRecvMessageOptResp{} } +func (m *SetGlobalRecvMessageOptResp) String() string { return proto.CompactTextString(m) } +func (*SetGlobalRecvMessageOptResp) ProtoMessage() {} +func (*SetGlobalRecvMessageOptResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{12} +} +func (m *SetGlobalRecvMessageOptResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetGlobalRecvMessageOptResp.Unmarshal(m, b) +} +func (m *SetGlobalRecvMessageOptResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetGlobalRecvMessageOptResp.Marshal(b, m, deterministic) +} +func (dst *SetGlobalRecvMessageOptResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetGlobalRecvMessageOptResp.Merge(dst, src) +} +func (m *SetGlobalRecvMessageOptResp) XXX_Size() int { + return xxx_messageInfo_SetGlobalRecvMessageOptResp.Size(m) +} +func (m *SetGlobalRecvMessageOptResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetGlobalRecvMessageOptResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SetGlobalRecvMessageOptResp proto.InternalMessageInfo + +func (m *SetGlobalRecvMessageOptResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type Conversation struct { + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + ConversationID string `protobuf:"bytes,2,opt,name=ConversationID" json:"ConversationID,omitempty"` + RecvMsgOpt int32 `protobuf:"varint,3,opt,name=RecvMsgOpt" json:"RecvMsgOpt,omitempty"` + ConversationType int32 `protobuf:"varint,4,opt,name=ConversationType" json:"ConversationType,omitempty"` + UserID string `protobuf:"bytes,5,opt,name=UserID" json:"UserID,omitempty"` + GroupID string `protobuf:"bytes,6,opt,name=GroupID" json:"GroupID,omitempty"` + UnreadCount int32 `protobuf:"varint,7,opt,name=UnreadCount" json:"UnreadCount,omitempty"` + DraftTextTime int64 `protobuf:"varint,8,opt,name=DraftTextTime" json:"DraftTextTime,omitempty"` + IsPinned bool `protobuf:"varint,9,opt,name=IsPinned" json:"IsPinned,omitempty"` + AttachedInfo string `protobuf:"bytes,10,opt,name=AttachedInfo" json:"AttachedInfo,omitempty"` + IsPrivateChat bool `protobuf:"varint,11,opt,name=IsPrivateChat" json:"IsPrivateChat,omitempty"` + GroupAtType int32 `protobuf:"varint,12,opt,name=GroupAtType" json:"GroupAtType,omitempty"` + IsNotInGroup bool `protobuf:"varint,13,opt,name=IsNotInGroup" json:"IsNotInGroup,omitempty"` + Ex string `protobuf:"bytes,14,opt,name=Ex" json:"Ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Conversation) Reset() { *m = Conversation{} } +func (m *Conversation) String() string { return proto.CompactTextString(m) } +func (*Conversation) ProtoMessage() {} +func (*Conversation) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{13} +} +func (m *Conversation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Conversation.Unmarshal(m, b) +} +func (m *Conversation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Conversation.Marshal(b, m, deterministic) +} +func (dst *Conversation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Conversation.Merge(dst, src) +} +func (m *Conversation) XXX_Size() int { + return xxx_messageInfo_Conversation.Size(m) +} +func (m *Conversation) XXX_DiscardUnknown() { + xxx_messageInfo_Conversation.DiscardUnknown(m) +} + +var xxx_messageInfo_Conversation proto.InternalMessageInfo + +func (m *Conversation) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID + } + return "" +} + +func (m *Conversation) GetConversationID() string { + if m != nil { + return m.ConversationID + } + return "" +} + +func (m *Conversation) GetRecvMsgOpt() int32 { + if m != nil { + return m.RecvMsgOpt + } + return 0 +} + +func (m *Conversation) GetConversationType() int32 { + if m != nil { + return m.ConversationType + } + return 0 +} + +func (m *Conversation) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *Conversation) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *Conversation) GetUnreadCount() int32 { + if m != nil { + return m.UnreadCount + } + return 0 +} + +func (m *Conversation) GetDraftTextTime() int64 { + if m != nil { + return m.DraftTextTime + } + return 0 +} + +func (m *Conversation) GetIsPinned() bool { + if m != nil { + return m.IsPinned + } + return false +} + +func (m *Conversation) GetAttachedInfo() string { + if m != nil { + return m.AttachedInfo + } + return "" +} + +func (m *Conversation) GetIsPrivateChat() bool { + if m != nil { + return m.IsPrivateChat + } + return false +} + +func (m *Conversation) GetGroupAtType() int32 { + if m != nil { + return m.GroupAtType + } + return 0 +} + +func (m *Conversation) GetIsNotInGroup() bool { + if m != nil { + return m.IsNotInGroup + } + return false +} + +func (m *Conversation) GetEx() string { + if m != nil { + return m.Ex + } + return "" +} + +type SetConversationReq struct { + Conversation *Conversation `protobuf:"bytes,1,opt,name=Conversation" json:"Conversation,omitempty"` + NotificationType int32 `protobuf:"varint,2,opt,name=notificationType" json:"notificationType,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetConversationReq) Reset() { *m = SetConversationReq{} } +func (m *SetConversationReq) String() string { return proto.CompactTextString(m) } +func (*SetConversationReq) ProtoMessage() {} +func (*SetConversationReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{14} +} +func (m *SetConversationReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetConversationReq.Unmarshal(m, b) +} +func (m *SetConversationReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetConversationReq.Marshal(b, m, deterministic) +} +func (dst *SetConversationReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetConversationReq.Merge(dst, src) +} +func (m *SetConversationReq) XXX_Size() int { + return xxx_messageInfo_SetConversationReq.Size(m) +} +func (m *SetConversationReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetConversationReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SetConversationReq proto.InternalMessageInfo + +func (m *SetConversationReq) GetConversation() *Conversation { + if m != nil { + return m.Conversation + } + return nil +} + +func (m *SetConversationReq) GetNotificationType() int32 { + if m != nil { + return m.NotificationType + } + return 0 +} + +func (m *SetConversationReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type SetConversationResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetConversationResp) Reset() { *m = SetConversationResp{} } +func (m *SetConversationResp) String() string { return proto.CompactTextString(m) } +func (*SetConversationResp) ProtoMessage() {} +func (*SetConversationResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{15} +} +func (m *SetConversationResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetConversationResp.Unmarshal(m, b) +} +func (m *SetConversationResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetConversationResp.Marshal(b, m, deterministic) +} +func (dst *SetConversationResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetConversationResp.Merge(dst, src) +} +func (m *SetConversationResp) XXX_Size() int { + return xxx_messageInfo_SetConversationResp.Size(m) +} +func (m *SetConversationResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetConversationResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SetConversationResp proto.InternalMessageInfo + +func (m *SetConversationResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type SetRecvMsgOptReq struct { + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + ConversationID string `protobuf:"bytes,2,opt,name=ConversationID" json:"ConversationID,omitempty"` + RecvMsgOpt int32 `protobuf:"varint,3,opt,name=RecvMsgOpt" json:"RecvMsgOpt,omitempty"` + NotificationType int32 `protobuf:"varint,4,opt,name=notificationType" json:"notificationType,omitempty"` + OperationID string `protobuf:"bytes,5,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetRecvMsgOptReq) Reset() { *m = SetRecvMsgOptReq{} } +func (m *SetRecvMsgOptReq) String() string { return proto.CompactTextString(m) } +func (*SetRecvMsgOptReq) ProtoMessage() {} +func (*SetRecvMsgOptReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{16} +} +func (m *SetRecvMsgOptReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetRecvMsgOptReq.Unmarshal(m, b) +} +func (m *SetRecvMsgOptReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetRecvMsgOptReq.Marshal(b, m, deterministic) +} +func (dst *SetRecvMsgOptReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetRecvMsgOptReq.Merge(dst, src) +} +func (m *SetRecvMsgOptReq) XXX_Size() int { + return xxx_messageInfo_SetRecvMsgOptReq.Size(m) +} +func (m *SetRecvMsgOptReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetRecvMsgOptReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SetRecvMsgOptReq proto.InternalMessageInfo + +func (m *SetRecvMsgOptReq) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID + } + return "" +} + +func (m *SetRecvMsgOptReq) GetConversationID() string { + if m != nil { + return m.ConversationID + } + return "" +} + +func (m *SetRecvMsgOptReq) GetRecvMsgOpt() int32 { + if m != nil { + return m.RecvMsgOpt + } + return 0 +} + +func (m *SetRecvMsgOptReq) GetNotificationType() int32 { + if m != nil { + return m.NotificationType + } + return 0 +} + +func (m *SetRecvMsgOptReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type SetRecvMsgOptResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetRecvMsgOptResp) Reset() { *m = SetRecvMsgOptResp{} } +func (m *SetRecvMsgOptResp) String() string { return proto.CompactTextString(m) } +func (*SetRecvMsgOptResp) ProtoMessage() {} +func (*SetRecvMsgOptResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{17} +} +func (m *SetRecvMsgOptResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetRecvMsgOptResp.Unmarshal(m, b) +} +func (m *SetRecvMsgOptResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetRecvMsgOptResp.Marshal(b, m, deterministic) +} +func (dst *SetRecvMsgOptResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetRecvMsgOptResp.Merge(dst, src) +} +func (m *SetRecvMsgOptResp) XXX_Size() int { + return xxx_messageInfo_SetRecvMsgOptResp.Size(m) +} +func (m *SetRecvMsgOptResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetRecvMsgOptResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SetRecvMsgOptResp proto.InternalMessageInfo + +func (m *SetRecvMsgOptResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetConversationReq struct { + ConversationID string `protobuf:"bytes,1,opt,name=ConversationID" json:"ConversationID,omitempty"` + OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetConversationReq) Reset() { *m = GetConversationReq{} } +func (m *GetConversationReq) String() string { return proto.CompactTextString(m) } +func (*GetConversationReq) ProtoMessage() {} +func (*GetConversationReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{18} +} +func (m *GetConversationReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetConversationReq.Unmarshal(m, b) +} +func (m *GetConversationReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetConversationReq.Marshal(b, m, deterministic) +} +func (dst *GetConversationReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetConversationReq.Merge(dst, src) +} +func (m *GetConversationReq) XXX_Size() int { + return xxx_messageInfo_GetConversationReq.Size(m) +} +func (m *GetConversationReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetConversationReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetConversationReq proto.InternalMessageInfo + +func (m *GetConversationReq) GetConversationID() string { + if m != nil { + return m.ConversationID + } + return "" +} + +func (m *GetConversationReq) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID + } + return "" +} + +func (m *GetConversationReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetConversationResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Conversation *Conversation `protobuf:"bytes,2,opt,name=Conversation" json:"Conversation,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetConversationResp) Reset() { *m = GetConversationResp{} } +func (m *GetConversationResp) String() string { return proto.CompactTextString(m) } +func (*GetConversationResp) ProtoMessage() {} +func (*GetConversationResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{19} +} +func (m *GetConversationResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetConversationResp.Unmarshal(m, b) +} +func (m *GetConversationResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetConversationResp.Marshal(b, m, deterministic) +} +func (dst *GetConversationResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetConversationResp.Merge(dst, src) +} +func (m *GetConversationResp) XXX_Size() int { + return xxx_messageInfo_GetConversationResp.Size(m) +} +func (m *GetConversationResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetConversationResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetConversationResp proto.InternalMessageInfo + +func (m *GetConversationResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetConversationResp) GetConversation() *Conversation { + if m != nil { + return m.Conversation + } + return nil +} + +type GetConversationsReq struct { + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + ConversationIDs []string `protobuf:"bytes,2,rep,name=ConversationIDs" json:"ConversationIDs,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetConversationsReq) Reset() { *m = GetConversationsReq{} } +func (m *GetConversationsReq) String() string { return proto.CompactTextString(m) } +func (*GetConversationsReq) ProtoMessage() {} +func (*GetConversationsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{20} +} +func (m *GetConversationsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetConversationsReq.Unmarshal(m, b) +} +func (m *GetConversationsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetConversationsReq.Marshal(b, m, deterministic) +} +func (dst *GetConversationsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetConversationsReq.Merge(dst, src) +} +func (m *GetConversationsReq) XXX_Size() int { + return xxx_messageInfo_GetConversationsReq.Size(m) +} +func (m *GetConversationsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetConversationsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetConversationsReq proto.InternalMessageInfo + +func (m *GetConversationsReq) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID + } + return "" +} + +func (m *GetConversationsReq) GetConversationIDs() []string { + if m != nil { + return m.ConversationIDs + } + return nil +} + +func (m *GetConversationsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetConversationsResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations" json:"Conversations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetConversationsResp) Reset() { *m = GetConversationsResp{} } +func (m *GetConversationsResp) String() string { return proto.CompactTextString(m) } +func (*GetConversationsResp) ProtoMessage() {} +func (*GetConversationsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{21} +} +func (m *GetConversationsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetConversationsResp.Unmarshal(m, b) +} +func (m *GetConversationsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetConversationsResp.Marshal(b, m, deterministic) +} +func (dst *GetConversationsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetConversationsResp.Merge(dst, src) +} +func (m *GetConversationsResp) XXX_Size() int { + return xxx_messageInfo_GetConversationsResp.Size(m) +} +func (m *GetConversationsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetConversationsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetConversationsResp proto.InternalMessageInfo + +func (m *GetConversationsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetConversationsResp) GetConversations() []*Conversation { + if m != nil { + return m.Conversations + } + return nil +} + +type GetAllConversationsReq struct { + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAllConversationsReq) Reset() { *m = GetAllConversationsReq{} } +func (m *GetAllConversationsReq) String() string { return proto.CompactTextString(m) } +func (*GetAllConversationsReq) ProtoMessage() {} +func (*GetAllConversationsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{22} +} +func (m *GetAllConversationsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAllConversationsReq.Unmarshal(m, b) +} +func (m *GetAllConversationsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAllConversationsReq.Marshal(b, m, deterministic) +} +func (dst *GetAllConversationsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAllConversationsReq.Merge(dst, src) +} +func (m *GetAllConversationsReq) XXX_Size() int { + return xxx_messageInfo_GetAllConversationsReq.Size(m) +} +func (m *GetAllConversationsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetAllConversationsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAllConversationsReq proto.InternalMessageInfo + +func (m *GetAllConversationsReq) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID + } + return "" +} + +func (m *GetAllConversationsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetAllConversationsResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations" json:"Conversations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAllConversationsResp) Reset() { *m = GetAllConversationsResp{} } +func (m *GetAllConversationsResp) String() string { return proto.CompactTextString(m) } +func (*GetAllConversationsResp) ProtoMessage() {} +func (*GetAllConversationsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{23} +} +func (m *GetAllConversationsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAllConversationsResp.Unmarshal(m, b) +} +func (m *GetAllConversationsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAllConversationsResp.Marshal(b, m, deterministic) +} +func (dst *GetAllConversationsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAllConversationsResp.Merge(dst, src) +} +func (m *GetAllConversationsResp) XXX_Size() int { + return xxx_messageInfo_GetAllConversationsResp.Size(m) +} +func (m *GetAllConversationsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetAllConversationsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAllConversationsResp proto.InternalMessageInfo + +func (m *GetAllConversationsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetAllConversationsResp) GetConversations() []*Conversation { + if m != nil { + return m.Conversations + } + return nil +} + +type BatchSetConversationsReq struct { + Conversations []*Conversation `protobuf:"bytes,1,rep,name=Conversations" json:"Conversations,omitempty"` + OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + NotificationType int32 `protobuf:"varint,3,opt,name=notificationType" json:"notificationType,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BatchSetConversationsReq) Reset() { *m = BatchSetConversationsReq{} } +func (m *BatchSetConversationsReq) String() string { return proto.CompactTextString(m) } +func (*BatchSetConversationsReq) ProtoMessage() {} +func (*BatchSetConversationsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{24} +} +func (m *BatchSetConversationsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BatchSetConversationsReq.Unmarshal(m, b) +} +func (m *BatchSetConversationsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BatchSetConversationsReq.Marshal(b, m, deterministic) +} +func (dst *BatchSetConversationsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_BatchSetConversationsReq.Merge(dst, src) +} +func (m *BatchSetConversationsReq) XXX_Size() int { + return xxx_messageInfo_BatchSetConversationsReq.Size(m) +} +func (m *BatchSetConversationsReq) XXX_DiscardUnknown() { + xxx_messageInfo_BatchSetConversationsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_BatchSetConversationsReq proto.InternalMessageInfo + +func (m *BatchSetConversationsReq) GetConversations() []*Conversation { + if m != nil { + return m.Conversations + } + return nil +} + +func (m *BatchSetConversationsReq) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID + } + return "" +} + +func (m *BatchSetConversationsReq) GetNotificationType() int32 { + if m != nil { + return m.NotificationType + } + return 0 +} + +func (m *BatchSetConversationsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type BatchSetConversationsResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Success []string `protobuf:"bytes,2,rep,name=Success" json:"Success,omitempty"` + Failed []string `protobuf:"bytes,3,rep,name=Failed" json:"Failed,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BatchSetConversationsResp) Reset() { *m = BatchSetConversationsResp{} } +func (m *BatchSetConversationsResp) String() string { return proto.CompactTextString(m) } +func (*BatchSetConversationsResp) ProtoMessage() {} +func (*BatchSetConversationsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{25} +} +func (m *BatchSetConversationsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BatchSetConversationsResp.Unmarshal(m, b) +} +func (m *BatchSetConversationsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BatchSetConversationsResp.Marshal(b, m, deterministic) +} +func (dst *BatchSetConversationsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_BatchSetConversationsResp.Merge(dst, src) +} +func (m *BatchSetConversationsResp) XXX_Size() int { + return xxx_messageInfo_BatchSetConversationsResp.Size(m) +} +func (m *BatchSetConversationsResp) XXX_DiscardUnknown() { + xxx_messageInfo_BatchSetConversationsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_BatchSetConversationsResp proto.InternalMessageInfo + +func (m *BatchSetConversationsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *BatchSetConversationsResp) GetSuccess() []string { + if m != nil { + return m.Success + } + return nil +} + +func (m *BatchSetConversationsResp) GetFailed() []string { + if m != nil { + return m.Failed + } + return nil +} + +type ResignUserReq struct { + UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResignUserReq) Reset() { *m = ResignUserReq{} } +func (m *ResignUserReq) String() string { return proto.CompactTextString(m) } +func (*ResignUserReq) ProtoMessage() {} +func (*ResignUserReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{26} +} +func (m *ResignUserReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResignUserReq.Unmarshal(m, b) +} +func (m *ResignUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResignUserReq.Marshal(b, m, deterministic) +} +func (dst *ResignUserReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResignUserReq.Merge(dst, src) +} +func (m *ResignUserReq) XXX_Size() int { + return xxx_messageInfo_ResignUserReq.Size(m) +} +func (m *ResignUserReq) XXX_DiscardUnknown() { + xxx_messageInfo_ResignUserReq.DiscardUnknown(m) +} + +var xxx_messageInfo_ResignUserReq proto.InternalMessageInfo + +func (m *ResignUserReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *ResignUserReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type ResignUserResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResignUserResp) Reset() { *m = ResignUserResp{} } +func (m *ResignUserResp) String() string { return proto.CompactTextString(m) } +func (*ResignUserResp) ProtoMessage() {} +func (*ResignUserResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{27} +} +func (m *ResignUserResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResignUserResp.Unmarshal(m, b) +} +func (m *ResignUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResignUserResp.Marshal(b, m, deterministic) +} +func (dst *ResignUserResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResignUserResp.Merge(dst, src) +} +func (m *ResignUserResp) XXX_Size() int { + return xxx_messageInfo_ResignUserResp.Size(m) +} +func (m *ResignUserResp) XXX_DiscardUnknown() { + xxx_messageInfo_ResignUserResp.DiscardUnknown(m) +} + +var xxx_messageInfo_ResignUserResp proto.InternalMessageInfo + +func (m *ResignUserResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetUserByIdReq struct { + UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserByIdReq) Reset() { *m = GetUserByIdReq{} } +func (m *GetUserByIdReq) String() string { return proto.CompactTextString(m) } +func (*GetUserByIdReq) ProtoMessage() {} +func (*GetUserByIdReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{28} +} +func (m *GetUserByIdReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserByIdReq.Unmarshal(m, b) +} +func (m *GetUserByIdReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserByIdReq.Marshal(b, m, deterministic) +} +func (dst *GetUserByIdReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserByIdReq.Merge(dst, src) +} +func (m *GetUserByIdReq) XXX_Size() int { + return xxx_messageInfo_GetUserByIdReq.Size(m) +} +func (m *GetUserByIdReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserByIdReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserByIdReq proto.InternalMessageInfo + +func (m *GetUserByIdReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *GetUserByIdReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type User struct { + ProfilePhoto string `protobuf:"bytes,1,opt,name=ProfilePhoto" json:"ProfilePhoto,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` + UserId string `protobuf:"bytes,3,opt,name=UserId" json:"UserId,omitempty"` + CreateTime string `protobuf:"bytes,4,opt,name=CreateTime" json:"CreateTime,omitempty"` + PhoneNumber string `protobuf:"bytes,5,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` + Email string `protobuf:"bytes,6,opt,name=Email" json:"Email,omitempty"` + Birth string `protobuf:"bytes,7,opt,name=Birth" json:"Birth,omitempty"` + CreateIp string `protobuf:"bytes,8,opt,name=CreateIp" json:"CreateIp,omitempty"` + LastLoginTime string `protobuf:"bytes,9,opt,name=LastLoginTime" json:"LastLoginTime,omitempty"` + LastLoginIp string `protobuf:"bytes,10,opt,name=LastLoginIp" json:"LastLoginIp,omitempty"` + LoginTimes int32 `protobuf:"varint,11,opt,name=LoginTimes" json:"LoginTimes,omitempty"` + Gender int32 `protobuf:"varint,12,opt,name=Gender" json:"Gender,omitempty"` + LoginLimit int32 `protobuf:"varint,13,opt,name=LoginLimit" json:"LoginLimit,omitempty"` + IsBlock bool `protobuf:"varint,14,opt,name=IsBlock" json:"IsBlock,omitempty"` + RegisterIp string `protobuf:"bytes,15,opt,name=RegisterIp" json:"RegisterIp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *User) Reset() { *m = User{} } +func (m *User) String() string { return proto.CompactTextString(m) } +func (*User) ProtoMessage() {} +func (*User) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{29} +} +func (m *User) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_User.Unmarshal(m, b) +} +func (m *User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_User.Marshal(b, m, deterministic) +} +func (dst *User) XXX_Merge(src proto.Message) { + xxx_messageInfo_User.Merge(dst, src) +} +func (m *User) XXX_Size() int { + return xxx_messageInfo_User.Size(m) +} +func (m *User) XXX_DiscardUnknown() { + xxx_messageInfo_User.DiscardUnknown(m) +} + +var xxx_messageInfo_User proto.InternalMessageInfo + +func (m *User) GetProfilePhoto() string { + if m != nil { + return m.ProfilePhoto + } + return "" +} + +func (m *User) GetNickname() string { + if m != nil { + return m.Nickname + } + return "" +} + +func (m *User) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *User) GetCreateTime() string { + if m != nil { + return m.CreateTime + } + return "" +} + +func (m *User) GetPhoneNumber() string { + if m != nil { + return m.PhoneNumber + } + return "" +} + +func (m *User) GetEmail() string { + if m != nil { + return m.Email + } + return "" +} + +func (m *User) GetBirth() string { + if m != nil { + return m.Birth + } + return "" +} + +func (m *User) GetCreateIp() string { + if m != nil { + return m.CreateIp + } + return "" +} + +func (m *User) GetLastLoginTime() string { + if m != nil { + return m.LastLoginTime + } + return "" +} + +func (m *User) GetLastLoginIp() string { + if m != nil { + return m.LastLoginIp + } + return "" +} + +func (m *User) GetLoginTimes() int32 { + if m != nil { + return m.LoginTimes + } + return 0 +} + +func (m *User) GetGender() int32 { + if m != nil { + return m.Gender + } + return 0 +} + +func (m *User) GetLoginLimit() int32 { + if m != nil { + return m.LoginLimit + } + return 0 +} + +func (m *User) GetIsBlock() bool { + if m != nil { + return m.IsBlock + } + return false +} + +func (m *User) GetRegisterIp() string { + if m != nil { + return m.RegisterIp + } + return "" +} + +type GetUserByIdResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + User *User `protobuf:"bytes,2,opt,name=user" json:"user,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserByIdResp) Reset() { *m = GetUserByIdResp{} } +func (m *GetUserByIdResp) String() string { return proto.CompactTextString(m) } +func (*GetUserByIdResp) ProtoMessage() {} +func (*GetUserByIdResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{30} +} +func (m *GetUserByIdResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserByIdResp.Unmarshal(m, b) +} +func (m *GetUserByIdResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserByIdResp.Marshal(b, m, deterministic) +} +func (dst *GetUserByIdResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserByIdResp.Merge(dst, src) +} +func (m *GetUserByIdResp) XXX_Size() int { + return xxx_messageInfo_GetUserByIdResp.Size(m) +} +func (m *GetUserByIdResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserByIdResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserByIdResp proto.InternalMessageInfo + +func (m *GetUserByIdResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetUserByIdResp) GetUser() *User { + if m != nil { + return m.User + } + return nil +} + +type GetUsersByNameReq struct { + UserName string `protobuf:"bytes,1,opt,name=UserName" json:"UserName,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersByNameReq) Reset() { *m = GetUsersByNameReq{} } +func (m *GetUsersByNameReq) String() string { return proto.CompactTextString(m) } +func (*GetUsersByNameReq) ProtoMessage() {} +func (*GetUsersByNameReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{31} +} +func (m *GetUsersByNameReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersByNameReq.Unmarshal(m, b) +} +func (m *GetUsersByNameReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersByNameReq.Marshal(b, m, deterministic) +} +func (dst *GetUsersByNameReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersByNameReq.Merge(dst, src) +} +func (m *GetUsersByNameReq) XXX_Size() int { + return xxx_messageInfo_GetUsersByNameReq.Size(m) +} +func (m *GetUsersByNameReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersByNameReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersByNameReq proto.InternalMessageInfo + +func (m *GetUsersByNameReq) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + +func (m *GetUsersByNameReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetUsersByNameReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetUsersByNameResp struct { + Users []*User `protobuf:"bytes,1,rep,name=users" json:"users,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + UserNums int32 `protobuf:"varint,3,opt,name=UserNums" json:"UserNums,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersByNameResp) Reset() { *m = GetUsersByNameResp{} } +func (m *GetUsersByNameResp) String() string { return proto.CompactTextString(m) } +func (*GetUsersByNameResp) ProtoMessage() {} +func (*GetUsersByNameResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{32} +} +func (m *GetUsersByNameResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersByNameResp.Unmarshal(m, b) +} +func (m *GetUsersByNameResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersByNameResp.Marshal(b, m, deterministic) +} +func (dst *GetUsersByNameResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersByNameResp.Merge(dst, src) +} +func (m *GetUsersByNameResp) XXX_Size() int { + return xxx_messageInfo_GetUsersByNameResp.Size(m) +} +func (m *GetUsersByNameResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersByNameResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersByNameResp proto.InternalMessageInfo + +func (m *GetUsersByNameResp) GetUsers() []*User { + if m != nil { + return m.Users + } + return nil +} + +func (m *GetUsersByNameResp) GetPagination() *sdk_ws.ResponsePagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetUsersByNameResp) GetUserNums() int32 { + if m != nil { + return m.UserNums + } + return 0 +} + +type AlterUserReq struct { + UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + PhoneNumber string `protobuf:"bytes,3,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` + Nickname string `protobuf:"bytes,4,opt,name=Nickname" json:"Nickname,omitempty"` + Email string `protobuf:"bytes,5,opt,name=Email" json:"Email,omitempty"` + Gender string `protobuf:"bytes,6,opt,name=Gender" json:"Gender,omitempty"` + Birth string `protobuf:"bytes,7,opt,name=Birth" json:"Birth,omitempty"` + Photo string `protobuf:"bytes,8,opt,name=Photo" json:"Photo,omitempty"` + OpUserId string `protobuf:"bytes,9,opt,name=OpUserId" json:"OpUserId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AlterUserReq) Reset() { *m = AlterUserReq{} } +func (m *AlterUserReq) String() string { return proto.CompactTextString(m) } +func (*AlterUserReq) ProtoMessage() {} +func (*AlterUserReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{33} +} +func (m *AlterUserReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AlterUserReq.Unmarshal(m, b) +} +func (m *AlterUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AlterUserReq.Marshal(b, m, deterministic) +} +func (dst *AlterUserReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_AlterUserReq.Merge(dst, src) +} +func (m *AlterUserReq) XXX_Size() int { + return xxx_messageInfo_AlterUserReq.Size(m) +} +func (m *AlterUserReq) XXX_DiscardUnknown() { + xxx_messageInfo_AlterUserReq.DiscardUnknown(m) +} + +var xxx_messageInfo_AlterUserReq proto.InternalMessageInfo + +func (m *AlterUserReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *AlterUserReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *AlterUserReq) GetPhoneNumber() string { + if m != nil { + return m.PhoneNumber + } + return "" +} + +func (m *AlterUserReq) GetNickname() string { + if m != nil { + return m.Nickname + } + return "" +} + +func (m *AlterUserReq) GetEmail() string { + if m != nil { + return m.Email + } + return "" +} + +func (m *AlterUserReq) GetGender() string { + if m != nil { + return m.Gender + } + return "" +} + +func (m *AlterUserReq) GetBirth() string { + if m != nil { + return m.Birth + } + return "" +} + +func (m *AlterUserReq) GetPhoto() string { + if m != nil { + return m.Photo + } + return "" +} + +func (m *AlterUserReq) GetOpUserId() string { + if m != nil { + return m.OpUserId + } + return "" +} + +type AlterUserResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AlterUserResp) Reset() { *m = AlterUserResp{} } +func (m *AlterUserResp) String() string { return proto.CompactTextString(m) } +func (*AlterUserResp) ProtoMessage() {} +func (*AlterUserResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{34} +} +func (m *AlterUserResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AlterUserResp.Unmarshal(m, b) +} +func (m *AlterUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AlterUserResp.Marshal(b, m, deterministic) +} +func (dst *AlterUserResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_AlterUserResp.Merge(dst, src) +} +func (m *AlterUserResp) XXX_Size() int { + return xxx_messageInfo_AlterUserResp.Size(m) +} +func (m *AlterUserResp) XXX_DiscardUnknown() { + xxx_messageInfo_AlterUserResp.DiscardUnknown(m) +} + +var xxx_messageInfo_AlterUserResp proto.InternalMessageInfo + +func (m *AlterUserResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetUsersReq struct { + OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + UserName string `protobuf:"bytes,3,opt,name=UserName" json:"UserName,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersReq) Reset() { *m = GetUsersReq{} } +func (m *GetUsersReq) String() string { return proto.CompactTextString(m) } +func (*GetUsersReq) ProtoMessage() {} +func (*GetUsersReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{35} +} +func (m *GetUsersReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersReq.Unmarshal(m, b) +} +func (m *GetUsersReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersReq.Marshal(b, m, deterministic) +} +func (dst *GetUsersReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersReq.Merge(dst, src) +} +func (m *GetUsersReq) XXX_Size() int { + return xxx_messageInfo_GetUsersReq.Size(m) +} +func (m *GetUsersReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersReq proto.InternalMessageInfo + +func (m *GetUsersReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *GetUsersReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetUsersReq) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + +type GetUsersResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + User []*User `protobuf:"bytes,2,rep,name=user" json:"user,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination" json:"Pagination,omitempty"` + UserNums int32 `protobuf:"varint,4,opt,name=UserNums" json:"UserNums,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersResp) Reset() { *m = GetUsersResp{} } +func (m *GetUsersResp) String() string { return proto.CompactTextString(m) } +func (*GetUsersResp) ProtoMessage() {} +func (*GetUsersResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{36} +} +func (m *GetUsersResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersResp.Unmarshal(m, b) +} +func (m *GetUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersResp.Marshal(b, m, deterministic) +} +func (dst *GetUsersResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersResp.Merge(dst, src) +} +func (m *GetUsersResp) XXX_Size() int { + return xxx_messageInfo_GetUsersResp.Size(m) +} +func (m *GetUsersResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersResp proto.InternalMessageInfo + +func (m *GetUsersResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetUsersResp) GetUser() []*User { + if m != nil { + return m.User + } + return nil +} + +func (m *GetUsersResp) GetPagination() *sdk_ws.ResponsePagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetUsersResp) GetUserNums() int32 { + if m != nil { + return m.UserNums + } + return 0 +} + +type AddUserReq struct { + OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` + PhoneNumber string `protobuf:"bytes,2,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` + UserId string `protobuf:"bytes,3,opt,name=UserId" json:"UserId,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"` + Email string `protobuf:"bytes,5,opt,name=Email" json:"Email,omitempty"` + Gender string `protobuf:"bytes,6,opt,name=Gender" json:"Gender,omitempty"` + Birth string `protobuf:"bytes,7,opt,name=Birth" json:"Birth,omitempty"` + Photo string `protobuf:"bytes,8,opt,name=Photo" json:"Photo,omitempty"` + OpUserId string `protobuf:"bytes,9,opt,name=OpUserId" json:"OpUserId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddUserReq) Reset() { *m = AddUserReq{} } +func (m *AddUserReq) String() string { return proto.CompactTextString(m) } +func (*AddUserReq) ProtoMessage() {} +func (*AddUserReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{37} +} +func (m *AddUserReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddUserReq.Unmarshal(m, b) +} +func (m *AddUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddUserReq.Marshal(b, m, deterministic) +} +func (dst *AddUserReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddUserReq.Merge(dst, src) +} +func (m *AddUserReq) XXX_Size() int { + return xxx_messageInfo_AddUserReq.Size(m) +} +func (m *AddUserReq) XXX_DiscardUnknown() { + xxx_messageInfo_AddUserReq.DiscardUnknown(m) +} + +var xxx_messageInfo_AddUserReq proto.InternalMessageInfo + +func (m *AddUserReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *AddUserReq) GetPhoneNumber() string { + if m != nil { + return m.PhoneNumber + } + return "" +} + +func (m *AddUserReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *AddUserReq) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *AddUserReq) GetEmail() string { + if m != nil { + return m.Email + } + return "" +} + +func (m *AddUserReq) GetGender() string { + if m != nil { + return m.Gender + } + return "" +} + +func (m *AddUserReq) GetBirth() string { + if m != nil { + return m.Birth + } + return "" +} + +func (m *AddUserReq) GetPhoto() string { + if m != nil { + return m.Photo + } + return "" +} + +func (m *AddUserReq) GetOpUserId() string { + if m != nil { + return m.OpUserId + } + return "" +} + +type AddUserResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddUserResp) Reset() { *m = AddUserResp{} } +func (m *AddUserResp) String() string { return proto.CompactTextString(m) } +func (*AddUserResp) ProtoMessage() {} +func (*AddUserResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{38} +} +func (m *AddUserResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddUserResp.Unmarshal(m, b) +} +func (m *AddUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddUserResp.Marshal(b, m, deterministic) +} +func (dst *AddUserResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddUserResp.Merge(dst, src) +} +func (m *AddUserResp) XXX_Size() int { + return xxx_messageInfo_AddUserResp.Size(m) +} +func (m *AddUserResp) XXX_DiscardUnknown() { + xxx_messageInfo_AddUserResp.DiscardUnknown(m) +} + +var xxx_messageInfo_AddUserResp proto.InternalMessageInfo + +func (m *AddUserResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type BlockUserReq struct { + UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` + EndDisableTime string `protobuf:"bytes,2,opt,name=EndDisableTime" json:"EndDisableTime,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserId string `protobuf:"bytes,4,opt,name=OpUserId" json:"OpUserId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BlockUserReq) Reset() { *m = BlockUserReq{} } +func (m *BlockUserReq) String() string { return proto.CompactTextString(m) } +func (*BlockUserReq) ProtoMessage() {} +func (*BlockUserReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{39} +} +func (m *BlockUserReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlockUserReq.Unmarshal(m, b) +} +func (m *BlockUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlockUserReq.Marshal(b, m, deterministic) +} +func (dst *BlockUserReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlockUserReq.Merge(dst, src) +} +func (m *BlockUserReq) XXX_Size() int { + return xxx_messageInfo_BlockUserReq.Size(m) +} +func (m *BlockUserReq) XXX_DiscardUnknown() { + xxx_messageInfo_BlockUserReq.DiscardUnknown(m) +} + +var xxx_messageInfo_BlockUserReq proto.InternalMessageInfo + +func (m *BlockUserReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *BlockUserReq) GetEndDisableTime() string { + if m != nil { + return m.EndDisableTime + } + return "" +} + +func (m *BlockUserReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *BlockUserReq) GetOpUserId() string { + if m != nil { + return m.OpUserId + } + return "" +} + +type BlockUserResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BlockUserResp) Reset() { *m = BlockUserResp{} } +func (m *BlockUserResp) String() string { return proto.CompactTextString(m) } +func (*BlockUserResp) ProtoMessage() {} +func (*BlockUserResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{40} +} +func (m *BlockUserResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlockUserResp.Unmarshal(m, b) +} +func (m *BlockUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlockUserResp.Marshal(b, m, deterministic) +} +func (dst *BlockUserResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlockUserResp.Merge(dst, src) +} +func (m *BlockUserResp) XXX_Size() int { + return xxx_messageInfo_BlockUserResp.Size(m) +} +func (m *BlockUserResp) XXX_DiscardUnknown() { + xxx_messageInfo_BlockUserResp.DiscardUnknown(m) +} + +var xxx_messageInfo_BlockUserResp proto.InternalMessageInfo + +func (m *BlockUserResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type UnBlockUserReq struct { + UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserId string `protobuf:"bytes,3,opt,name=OpUserId" json:"OpUserId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UnBlockUserReq) Reset() { *m = UnBlockUserReq{} } +func (m *UnBlockUserReq) String() string { return proto.CompactTextString(m) } +func (*UnBlockUserReq) ProtoMessage() {} +func (*UnBlockUserReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{41} +} +func (m *UnBlockUserReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UnBlockUserReq.Unmarshal(m, b) +} +func (m *UnBlockUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UnBlockUserReq.Marshal(b, m, deterministic) +} +func (dst *UnBlockUserReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_UnBlockUserReq.Merge(dst, src) +} +func (m *UnBlockUserReq) XXX_Size() int { + return xxx_messageInfo_UnBlockUserReq.Size(m) +} +func (m *UnBlockUserReq) XXX_DiscardUnknown() { + xxx_messageInfo_UnBlockUserReq.DiscardUnknown(m) +} + +var xxx_messageInfo_UnBlockUserReq proto.InternalMessageInfo + +func (m *UnBlockUserReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *UnBlockUserReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *UnBlockUserReq) GetOpUserId() string { + if m != nil { + return m.OpUserId + } + return "" +} + +type UnBlockUserResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UnBlockUserResp) Reset() { *m = UnBlockUserResp{} } +func (m *UnBlockUserResp) String() string { return proto.CompactTextString(m) } +func (*UnBlockUserResp) ProtoMessage() {} +func (*UnBlockUserResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{42} +} +func (m *UnBlockUserResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UnBlockUserResp.Unmarshal(m, b) +} +func (m *UnBlockUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UnBlockUserResp.Marshal(b, m, deterministic) +} +func (dst *UnBlockUserResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_UnBlockUserResp.Merge(dst, src) +} +func (m *UnBlockUserResp) XXX_Size() int { + return xxx_messageInfo_UnBlockUserResp.Size(m) +} +func (m *UnBlockUserResp) XXX_DiscardUnknown() { + xxx_messageInfo_UnBlockUserResp.DiscardUnknown(m) +} + +var xxx_messageInfo_UnBlockUserResp proto.InternalMessageInfo + +func (m *UnBlockUserResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetBlockUsersReq struct { + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + BlockUserNum int32 `protobuf:"varint,3,opt,name=BlockUserNum" json:"BlockUserNum,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetBlockUsersReq) Reset() { *m = GetBlockUsersReq{} } +func (m *GetBlockUsersReq) String() string { return proto.CompactTextString(m) } +func (*GetBlockUsersReq) ProtoMessage() {} +func (*GetBlockUsersReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{43} +} +func (m *GetBlockUsersReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetBlockUsersReq.Unmarshal(m, b) +} +func (m *GetBlockUsersReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetBlockUsersReq.Marshal(b, m, deterministic) +} +func (dst *GetBlockUsersReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetBlockUsersReq.Merge(dst, src) +} +func (m *GetBlockUsersReq) XXX_Size() int { + return xxx_messageInfo_GetBlockUsersReq.Size(m) +} +func (m *GetBlockUsersReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetBlockUsersReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetBlockUsersReq proto.InternalMessageInfo + +func (m *GetBlockUsersReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetBlockUsersReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *GetBlockUsersReq) GetBlockUserNum() int32 { + if m != nil { + return m.BlockUserNum + } + return 0 +} + +type BlockUser struct { + User *User `protobuf:"bytes,1,opt,name=User" json:"User,omitempty"` + BeginDisableTime string `protobuf:"bytes,2,opt,name=BeginDisableTime" json:"BeginDisableTime,omitempty"` + EndDisableTime string `protobuf:"bytes,3,opt,name=EndDisableTime" json:"EndDisableTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BlockUser) Reset() { *m = BlockUser{} } +func (m *BlockUser) String() string { return proto.CompactTextString(m) } +func (*BlockUser) ProtoMessage() {} +func (*BlockUser) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{44} +} +func (m *BlockUser) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlockUser.Unmarshal(m, b) +} +func (m *BlockUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlockUser.Marshal(b, m, deterministic) +} +func (dst *BlockUser) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlockUser.Merge(dst, src) +} +func (m *BlockUser) XXX_Size() int { + return xxx_messageInfo_BlockUser.Size(m) +} +func (m *BlockUser) XXX_DiscardUnknown() { + xxx_messageInfo_BlockUser.DiscardUnknown(m) +} + +var xxx_messageInfo_BlockUser proto.InternalMessageInfo + +func (m *BlockUser) GetUser() *User { + if m != nil { + return m.User + } + return nil +} + +func (m *BlockUser) GetBeginDisableTime() string { + if m != nil { + return m.BeginDisableTime + } + return "" +} + +func (m *BlockUser) GetEndDisableTime() string { + if m != nil { + return m.EndDisableTime + } + return "" +} + +type GetBlockUsersResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + BlockUsers []*BlockUser `protobuf:"bytes,2,rep,name=BlockUsers" json:"BlockUsers,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination" json:"Pagination,omitempty"` + UserNums int32 `protobuf:"varint,4,opt,name=UserNums" json:"UserNums,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetBlockUsersResp) Reset() { *m = GetBlockUsersResp{} } +func (m *GetBlockUsersResp) String() string { return proto.CompactTextString(m) } +func (*GetBlockUsersResp) ProtoMessage() {} +func (*GetBlockUsersResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{45} +} +func (m *GetBlockUsersResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetBlockUsersResp.Unmarshal(m, b) +} +func (m *GetBlockUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetBlockUsersResp.Marshal(b, m, deterministic) +} +func (dst *GetBlockUsersResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetBlockUsersResp.Merge(dst, src) +} +func (m *GetBlockUsersResp) XXX_Size() int { + return xxx_messageInfo_GetBlockUsersResp.Size(m) +} +func (m *GetBlockUsersResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetBlockUsersResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetBlockUsersResp proto.InternalMessageInfo + +func (m *GetBlockUsersResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetBlockUsersResp) GetBlockUsers() []*BlockUser { + if m != nil { + return m.BlockUsers + } + return nil +} + +func (m *GetBlockUsersResp) GetPagination() *sdk_ws.ResponsePagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetBlockUsersResp) GetUserNums() int32 { + if m != nil { + return m.UserNums + } + return 0 +} + +type GetBlockUserByIdReq struct { + UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId" json:"User_id,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetBlockUserByIdReq) Reset() { *m = GetBlockUserByIdReq{} } +func (m *GetBlockUserByIdReq) String() string { return proto.CompactTextString(m) } +func (*GetBlockUserByIdReq) ProtoMessage() {} +func (*GetBlockUserByIdReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{46} +} +func (m *GetBlockUserByIdReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetBlockUserByIdReq.Unmarshal(m, b) +} +func (m *GetBlockUserByIdReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetBlockUserByIdReq.Marshal(b, m, deterministic) +} +func (dst *GetBlockUserByIdReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetBlockUserByIdReq.Merge(dst, src) +} +func (m *GetBlockUserByIdReq) XXX_Size() int { + return xxx_messageInfo_GetBlockUserByIdReq.Size(m) +} +func (m *GetBlockUserByIdReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetBlockUserByIdReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetBlockUserByIdReq proto.InternalMessageInfo + +func (m *GetBlockUserByIdReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *GetBlockUserByIdReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetBlockUserByIdResp struct { + BlockUser *BlockUser `protobuf:"bytes,2,opt,name=BlockUser" json:"BlockUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetBlockUserByIdResp) Reset() { *m = GetBlockUserByIdResp{} } +func (m *GetBlockUserByIdResp) String() string { return proto.CompactTextString(m) } +func (*GetBlockUserByIdResp) ProtoMessage() {} +func (*GetBlockUserByIdResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{47} +} +func (m *GetBlockUserByIdResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetBlockUserByIdResp.Unmarshal(m, b) +} +func (m *GetBlockUserByIdResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetBlockUserByIdResp.Marshal(b, m, deterministic) +} +func (dst *GetBlockUserByIdResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetBlockUserByIdResp.Merge(dst, src) +} +func (m *GetBlockUserByIdResp) XXX_Size() int { + return xxx_messageInfo_GetBlockUserByIdResp.Size(m) +} +func (m *GetBlockUserByIdResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetBlockUserByIdResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetBlockUserByIdResp proto.InternalMessageInfo + +func (m *GetBlockUserByIdResp) GetBlockUser() *BlockUser { + if m != nil { + return m.BlockUser + } + return nil +} + +type DeleteUserReq struct { + UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId" json:"User_id,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserId string `protobuf:"bytes,3,opt,name=OpUserId" json:"OpUserId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteUserReq) Reset() { *m = DeleteUserReq{} } +func (m *DeleteUserReq) String() string { return proto.CompactTextString(m) } +func (*DeleteUserReq) ProtoMessage() {} +func (*DeleteUserReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{48} +} +func (m *DeleteUserReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteUserReq.Unmarshal(m, b) +} +func (m *DeleteUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteUserReq.Marshal(b, m, deterministic) +} +func (dst *DeleteUserReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteUserReq.Merge(dst, src) +} +func (m *DeleteUserReq) XXX_Size() int { + return xxx_messageInfo_DeleteUserReq.Size(m) +} +func (m *DeleteUserReq) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteUserReq.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteUserReq proto.InternalMessageInfo + +func (m *DeleteUserReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *DeleteUserReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *DeleteUserReq) GetOpUserId() string { + if m != nil { + return m.OpUserId + } + return "" +} + +type DeleteUserResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteUserResp) Reset() { *m = DeleteUserResp{} } +func (m *DeleteUserResp) String() string { return proto.CompactTextString(m) } +func (*DeleteUserResp) ProtoMessage() {} +func (*DeleteUserResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_461ee57002abbf2b, []int{49} +} +func (m *DeleteUserResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteUserResp.Unmarshal(m, b) +} +func (m *DeleteUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteUserResp.Marshal(b, m, deterministic) +} +func (dst *DeleteUserResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteUserResp.Merge(dst, src) +} +func (m *DeleteUserResp) XXX_Size() int { + return xxx_messageInfo_DeleteUserResp.Size(m) +} +func (m *DeleteUserResp) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteUserResp.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteUserResp proto.InternalMessageInfo + +func (m *DeleteUserResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func init() { + proto.RegisterType((*CommonResp)(nil), "user.CommonResp") + proto.RegisterType((*DeleteUsersReq)(nil), "user.DeleteUsersReq") + proto.RegisterType((*DeleteUsersResp)(nil), "user.DeleteUsersResp") + proto.RegisterType((*GetAllUserIDReq)(nil), "user.GetAllUserIDReq") + proto.RegisterType((*GetAllUserIDResp)(nil), "user.GetAllUserIDResp") + proto.RegisterType((*AccountCheckReq)(nil), "user.AccountCheckReq") + proto.RegisterType((*AccountCheckResp)(nil), "user.AccountCheckResp") + proto.RegisterType((*AccountCheckResp_SingleUserStatus)(nil), "user.AccountCheckResp.SingleUserStatus") + proto.RegisterType((*GetUserInfoReq)(nil), "user.GetUserInfoReq") + proto.RegisterType((*GetUserInfoResp)(nil), "user.GetUserInfoResp") + proto.RegisterType((*UpdateUserInfoReq)(nil), "user.UpdateUserInfoReq") + proto.RegisterType((*UpdateUserInfoResp)(nil), "user.UpdateUserInfoResp") + proto.RegisterType((*SetGlobalRecvMessageOptReq)(nil), "user.SetGlobalRecvMessageOptReq") + proto.RegisterType((*SetGlobalRecvMessageOptResp)(nil), "user.SetGlobalRecvMessageOptResp") + proto.RegisterType((*Conversation)(nil), "user.Conversation") + proto.RegisterType((*SetConversationReq)(nil), "user.SetConversationReq") + proto.RegisterType((*SetConversationResp)(nil), "user.SetConversationResp") + proto.RegisterType((*SetRecvMsgOptReq)(nil), "user.SetRecvMsgOptReq") + proto.RegisterType((*SetRecvMsgOptResp)(nil), "user.SetRecvMsgOptResp") + proto.RegisterType((*GetConversationReq)(nil), "user.GetConversationReq") + proto.RegisterType((*GetConversationResp)(nil), "user.GetConversationResp") + proto.RegisterType((*GetConversationsReq)(nil), "user.GetConversationsReq") + proto.RegisterType((*GetConversationsResp)(nil), "user.GetConversationsResp") + proto.RegisterType((*GetAllConversationsReq)(nil), "user.GetAllConversationsReq") + proto.RegisterType((*GetAllConversationsResp)(nil), "user.GetAllConversationsResp") + proto.RegisterType((*BatchSetConversationsReq)(nil), "user.BatchSetConversationsReq") + proto.RegisterType((*BatchSetConversationsResp)(nil), "user.BatchSetConversationsResp") + proto.RegisterType((*ResignUserReq)(nil), "user.ResignUserReq") + proto.RegisterType((*ResignUserResp)(nil), "user.ResignUserResp") + proto.RegisterType((*GetUserByIdReq)(nil), "user.GetUserByIdReq") + proto.RegisterType((*User)(nil), "user.User") + proto.RegisterType((*GetUserByIdResp)(nil), "user.GetUserByIdResp") + proto.RegisterType((*GetUsersByNameReq)(nil), "user.GetUsersByNameReq") + proto.RegisterType((*GetUsersByNameResp)(nil), "user.GetUsersByNameResp") + proto.RegisterType((*AlterUserReq)(nil), "user.AlterUserReq") + proto.RegisterType((*AlterUserResp)(nil), "user.AlterUserResp") + proto.RegisterType((*GetUsersReq)(nil), "user.GetUsersReq") + proto.RegisterType((*GetUsersResp)(nil), "user.GetUsersResp") + proto.RegisterType((*AddUserReq)(nil), "user.AddUserReq") + proto.RegisterType((*AddUserResp)(nil), "user.AddUserResp") + proto.RegisterType((*BlockUserReq)(nil), "user.BlockUserReq") + proto.RegisterType((*BlockUserResp)(nil), "user.BlockUserResp") + proto.RegisterType((*UnBlockUserReq)(nil), "user.UnBlockUserReq") + proto.RegisterType((*UnBlockUserResp)(nil), "user.UnBlockUserResp") + proto.RegisterType((*GetBlockUsersReq)(nil), "user.GetBlockUsersReq") + proto.RegisterType((*BlockUser)(nil), "user.BlockUser") + proto.RegisterType((*GetBlockUsersResp)(nil), "user.GetBlockUsersResp") + proto.RegisterType((*GetBlockUserByIdReq)(nil), "user.GetBlockUserByIdReq") + proto.RegisterType((*GetBlockUserByIdResp)(nil), "user.GetBlockUserByIdResp") + proto.RegisterType((*DeleteUserReq)(nil), "user.DeleteUserReq") + proto.RegisterType((*DeleteUserResp)(nil), "user.DeleteUserResp") } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConnInterface +var _ grpc.ClientConn // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 +const _ = grpc.SupportPackageIsVersion4 + +// Client API for User service -// UserClient is the client API for User service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type UserClient interface { GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*UpdateUserInfoResp, error) @@ -4636,16 +2901,16 @@ type UserClient interface { } type userClient struct { - cc grpc.ClientConnInterface + cc *grpc.ClientConn } -func NewUserClient(cc grpc.ClientConnInterface) UserClient { +func NewUserClient(cc *grpc.ClientConn) UserClient { return &userClient{cc} } func (c *userClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) { out := new(GetUserInfoResp) - err := c.cc.Invoke(ctx, "/user.user/GetUserInfo", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetUserInfo", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4654,7 +2919,7 @@ func (c *userClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts . func (c *userClient) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*UpdateUserInfoResp, error) { out := new(UpdateUserInfoResp) - err := c.cc.Invoke(ctx, "/user.user/UpdateUserInfo", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/UpdateUserInfo", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4663,7 +2928,7 @@ func (c *userClient) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, func (c *userClient) SetGlobalRecvMessageOpt(ctx context.Context, in *SetGlobalRecvMessageOptReq, opts ...grpc.CallOption) (*SetGlobalRecvMessageOptResp, error) { out := new(SetGlobalRecvMessageOptResp) - err := c.cc.Invoke(ctx, "/user.user/SetGlobalRecvMessageOpt", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/SetGlobalRecvMessageOpt", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4672,7 +2937,7 @@ func (c *userClient) SetGlobalRecvMessageOpt(ctx context.Context, in *SetGlobalR func (c *userClient) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) { out := new(DeleteUsersResp) - err := c.cc.Invoke(ctx, "/user.user/DeleteUsers", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/DeleteUsers", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4681,7 +2946,7 @@ func (c *userClient) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts . func (c *userClient) GetAllUserID(ctx context.Context, in *GetAllUserIDReq, opts ...grpc.CallOption) (*GetAllUserIDResp, error) { out := new(GetAllUserIDResp) - err := c.cc.Invoke(ctx, "/user.user/GetAllUserID", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetAllUserID", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4690,7 +2955,7 @@ func (c *userClient) GetAllUserID(ctx context.Context, in *GetAllUserIDReq, opts func (c *userClient) AccountCheck(ctx context.Context, in *AccountCheckReq, opts ...grpc.CallOption) (*AccountCheckResp, error) { out := new(AccountCheckResp) - err := c.cc.Invoke(ctx, "/user.user/AccountCheck", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/AccountCheck", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4699,7 +2964,7 @@ func (c *userClient) AccountCheck(ctx context.Context, in *AccountCheckReq, opts func (c *userClient) GetConversation(ctx context.Context, in *GetConversationReq, opts ...grpc.CallOption) (*GetConversationResp, error) { out := new(GetConversationResp) - err := c.cc.Invoke(ctx, "/user.user/GetConversation", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetConversation", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4708,7 +2973,7 @@ func (c *userClient) GetConversation(ctx context.Context, in *GetConversationReq func (c *userClient) GetAllConversations(ctx context.Context, in *GetAllConversationsReq, opts ...grpc.CallOption) (*GetAllConversationsResp, error) { out := new(GetAllConversationsResp) - err := c.cc.Invoke(ctx, "/user.user/GetAllConversations", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetAllConversations", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4717,7 +2982,7 @@ func (c *userClient) GetAllConversations(ctx context.Context, in *GetAllConversa func (c *userClient) GetConversations(ctx context.Context, in *GetConversationsReq, opts ...grpc.CallOption) (*GetConversationsResp, error) { out := new(GetConversationsResp) - err := c.cc.Invoke(ctx, "/user.user/GetConversations", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetConversations", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4726,7 +2991,7 @@ func (c *userClient) GetConversations(ctx context.Context, in *GetConversationsR func (c *userClient) BatchSetConversations(ctx context.Context, in *BatchSetConversationsReq, opts ...grpc.CallOption) (*BatchSetConversationsResp, error) { out := new(BatchSetConversationsResp) - err := c.cc.Invoke(ctx, "/user.user/BatchSetConversations", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/BatchSetConversations", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4735,7 +3000,7 @@ func (c *userClient) BatchSetConversations(ctx context.Context, in *BatchSetConv func (c *userClient) SetConversation(ctx context.Context, in *SetConversationReq, opts ...grpc.CallOption) (*SetConversationResp, error) { out := new(SetConversationResp) - err := c.cc.Invoke(ctx, "/user.user/SetConversation", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/SetConversation", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4744,7 +3009,7 @@ func (c *userClient) SetConversation(ctx context.Context, in *SetConversationReq func (c *userClient) SetRecvMsgOpt(ctx context.Context, in *SetRecvMsgOptReq, opts ...grpc.CallOption) (*SetRecvMsgOptResp, error) { out := new(SetRecvMsgOptResp) - err := c.cc.Invoke(ctx, "/user.user/SetRecvMsgOpt", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/SetRecvMsgOpt", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4753,7 +3018,7 @@ func (c *userClient) SetRecvMsgOpt(ctx context.Context, in *SetRecvMsgOptReq, op func (c *userClient) GetUserById(ctx context.Context, in *GetUserByIdReq, opts ...grpc.CallOption) (*GetUserByIdResp, error) { out := new(GetUserByIdResp) - err := c.cc.Invoke(ctx, "/user.user/GetUserById", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetUserById", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4762,7 +3027,7 @@ func (c *userClient) GetUserById(ctx context.Context, in *GetUserByIdReq, opts . func (c *userClient) GetUsersByName(ctx context.Context, in *GetUsersByNameReq, opts ...grpc.CallOption) (*GetUsersByNameResp, error) { out := new(GetUsersByNameResp) - err := c.cc.Invoke(ctx, "/user.user/GetUsersByName", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetUsersByName", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4771,7 +3036,7 @@ func (c *userClient) GetUsersByName(ctx context.Context, in *GetUsersByNameReq, func (c *userClient) ResignUser(ctx context.Context, in *ResignUserReq, opts ...grpc.CallOption) (*ResignUserResp, error) { out := new(ResignUserResp) - err := c.cc.Invoke(ctx, "/user.user/ResignUser", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/ResignUser", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4780,7 +3045,7 @@ func (c *userClient) ResignUser(ctx context.Context, in *ResignUserReq, opts ... func (c *userClient) AlterUser(ctx context.Context, in *AlterUserReq, opts ...grpc.CallOption) (*AlterUserResp, error) { out := new(AlterUserResp) - err := c.cc.Invoke(ctx, "/user.user/AlterUser", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/AlterUser", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4789,7 +3054,7 @@ func (c *userClient) AlterUser(ctx context.Context, in *AlterUserReq, opts ...gr func (c *userClient) GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc.CallOption) (*GetUsersResp, error) { out := new(GetUsersResp) - err := c.cc.Invoke(ctx, "/user.user/GetUsers", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetUsers", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4798,7 +3063,7 @@ func (c *userClient) GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc func (c *userClient) AddUser(ctx context.Context, in *AddUserReq, opts ...grpc.CallOption) (*AddUserResp, error) { out := new(AddUserResp) - err := c.cc.Invoke(ctx, "/user.user/AddUser", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/AddUser", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4807,7 +3072,7 @@ func (c *userClient) AddUser(ctx context.Context, in *AddUserReq, opts ...grpc.C func (c *userClient) BlockUser(ctx context.Context, in *BlockUserReq, opts ...grpc.CallOption) (*BlockUserResp, error) { out := new(BlockUserResp) - err := c.cc.Invoke(ctx, "/user.user/BlockUser", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/BlockUser", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4816,7 +3081,7 @@ func (c *userClient) BlockUser(ctx context.Context, in *BlockUserReq, opts ...gr func (c *userClient) UnBlockUser(ctx context.Context, in *UnBlockUserReq, opts ...grpc.CallOption) (*UnBlockUserResp, error) { out := new(UnBlockUserResp) - err := c.cc.Invoke(ctx, "/user.user/UnBlockUser", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/UnBlockUser", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4825,7 +3090,7 @@ func (c *userClient) UnBlockUser(ctx context.Context, in *UnBlockUserReq, opts . func (c *userClient) GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, opts ...grpc.CallOption) (*GetBlockUsersResp, error) { out := new(GetBlockUsersResp) - err := c.cc.Invoke(ctx, "/user.user/GetBlockUsers", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetBlockUsers", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4834,7 +3099,7 @@ func (c *userClient) GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, op func (c *userClient) GetBlockUserById(ctx context.Context, in *GetBlockUserByIdReq, opts ...grpc.CallOption) (*GetBlockUserByIdResp, error) { out := new(GetBlockUserByIdResp) - err := c.cc.Invoke(ctx, "/user.user/GetBlockUserById", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetBlockUserById", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4843,14 +3108,15 @@ func (c *userClient) GetBlockUserById(ctx context.Context, in *GetBlockUserByIdR func (c *userClient) DeleteUser(ctx context.Context, in *DeleteUserReq, opts ...grpc.CallOption) (*DeleteUserResp, error) { out := new(DeleteUserResp) - err := c.cc.Invoke(ctx, "/user.user/DeleteUser", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/DeleteUser", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -// UserServer is the server API for User service. +// Server API for User service + type UserServer interface { GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*UpdateUserInfoResp, error) @@ -4877,80 +3143,6 @@ type UserServer interface { DeleteUser(context.Context, *DeleteUserReq) (*DeleteUserResp, error) } -// UnimplementedUserServer can be embedded to have forward compatible implementations. -type UnimplementedUserServer struct { -} - -func (*UnimplementedUserServer) GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUserInfo not implemented") -} -func (*UnimplementedUserServer) UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*UpdateUserInfoResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateUserInfo not implemented") -} -func (*UnimplementedUserServer) SetGlobalRecvMessageOpt(context.Context, *SetGlobalRecvMessageOptReq) (*SetGlobalRecvMessageOptResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetGlobalRecvMessageOpt not implemented") -} -func (*UnimplementedUserServer) DeleteUsers(context.Context, *DeleteUsersReq) (*DeleteUsersResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteUsers not implemented") -} -func (*UnimplementedUserServer) GetAllUserID(context.Context, *GetAllUserIDReq) (*GetAllUserIDResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetAllUserID not implemented") -} -func (*UnimplementedUserServer) AccountCheck(context.Context, *AccountCheckReq) (*AccountCheckResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method AccountCheck not implemented") -} -func (*UnimplementedUserServer) GetConversation(context.Context, *GetConversationReq) (*GetConversationResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetConversation not implemented") -} -func (*UnimplementedUserServer) GetAllConversations(context.Context, *GetAllConversationsReq) (*GetAllConversationsResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetAllConversations not implemented") -} -func (*UnimplementedUserServer) GetConversations(context.Context, *GetConversationsReq) (*GetConversationsResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetConversations not implemented") -} -func (*UnimplementedUserServer) BatchSetConversations(context.Context, *BatchSetConversationsReq) (*BatchSetConversationsResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method BatchSetConversations not implemented") -} -func (*UnimplementedUserServer) SetConversation(context.Context, *SetConversationReq) (*SetConversationResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetConversation not implemented") -} -func (*UnimplementedUserServer) SetRecvMsgOpt(context.Context, *SetRecvMsgOptReq) (*SetRecvMsgOptResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetRecvMsgOpt not implemented") -} -func (*UnimplementedUserServer) GetUserById(context.Context, *GetUserByIdReq) (*GetUserByIdResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUserById not implemented") -} -func (*UnimplementedUserServer) GetUsersByName(context.Context, *GetUsersByNameReq) (*GetUsersByNameResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUsersByName not implemented") -} -func (*UnimplementedUserServer) ResignUser(context.Context, *ResignUserReq) (*ResignUserResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResignUser not implemented") -} -func (*UnimplementedUserServer) AlterUser(context.Context, *AlterUserReq) (*AlterUserResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method AlterUser not implemented") -} -func (*UnimplementedUserServer) GetUsers(context.Context, *GetUsersReq) (*GetUsersResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUsers not implemented") -} -func (*UnimplementedUserServer) AddUser(context.Context, *AddUserReq) (*AddUserResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method AddUser not implemented") -} -func (*UnimplementedUserServer) BlockUser(context.Context, *BlockUserReq) (*BlockUserResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method BlockUser not implemented") -} -func (*UnimplementedUserServer) UnBlockUser(context.Context, *UnBlockUserReq) (*UnBlockUserResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UnBlockUser not implemented") -} -func (*UnimplementedUserServer) GetBlockUsers(context.Context, *GetBlockUsersReq) (*GetBlockUsersResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetBlockUsers not implemented") -} -func (*UnimplementedUserServer) GetBlockUserById(context.Context, *GetBlockUserByIdReq) (*GetBlockUserByIdResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetBlockUserById not implemented") -} -func (*UnimplementedUserServer) DeleteUser(context.Context, *DeleteUserReq) (*DeleteUserResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteUser not implemented") -} - func RegisterUserServer(s *grpc.Server, srv UserServer) { s.RegisterService(&_User_serviceDesc, srv) } @@ -5469,3 +3661,137 @@ var _User_serviceDesc = grpc.ServiceDesc{ Streams: []grpc.StreamDesc{}, Metadata: "user/user.proto", } + +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_461ee57002abbf2b) } + +var fileDescriptor_user_461ee57002abbf2b = []byte{ + // 2047 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0xcd, 0x6f, 0x23, 0x49, + 0x15, 0x57, 0xfb, 0x63, 0x12, 0x3f, 0xc7, 0x8e, 0x53, 0x93, 0x9d, 0xf4, 0xf6, 0xc2, 0x90, 0x6d, + 0x2d, 0x4b, 0x34, 0x12, 0x09, 0x0c, 0x88, 0x41, 0x8b, 0x60, 0x37, 0x76, 0x32, 0x96, 0xd1, 0x4c, + 0x12, 0xb5, 0x67, 0x24, 0x84, 0x10, 0x51, 0x8f, 0x5d, 0x71, 0x5a, 0xb1, 0xbb, 0x7b, 0xbb, 0xca, + 0xf3, 0xc1, 0x65, 0xd1, 0x00, 0x17, 0xc4, 0x85, 0x13, 0x82, 0x03, 0x7f, 0x0c, 0x70, 0xe2, 0x3f, + 0x80, 0x0b, 0xff, 0x03, 0x17, 0x2e, 0x1c, 0x50, 0x7d, 0x74, 0x77, 0x55, 0x77, 0x3b, 0x36, 0x9d, + 0x68, 0xf6, 0x92, 0xe4, 0xfd, 0xaa, 0xea, 0xf5, 0x7b, 0xaf, 0xde, 0x57, 0x55, 0x05, 0x36, 0xe7, + 0x04, 0x47, 0x07, 0xec, 0xc7, 0x7e, 0x18, 0x05, 0x34, 0x40, 0x35, 0xf6, 0xb7, 0xf5, 0xe1, 0x69, + 0x88, 0xfd, 0xf3, 0xc1, 0xd3, 0x83, 0xf0, 0x6a, 0x72, 0xc0, 0x07, 0x0e, 0xc8, 0xf8, 0xea, 0xfc, + 0x15, 0x39, 0x78, 0x45, 0xc4, 0x44, 0xfb, 0x47, 0x00, 0xbd, 0x60, 0x36, 0x0b, 0x7c, 0x07, 0x93, + 0x10, 0x99, 0xb0, 0x86, 0xa3, 0xa8, 0x17, 0x8c, 0xb1, 0x69, 0xec, 0x1a, 0x7b, 0x75, 0x27, 0x26, + 0xd1, 0x3d, 0xb8, 0x83, 0xa3, 0xe8, 0x29, 0x99, 0x98, 0x95, 0x5d, 0x63, 0xaf, 0xe1, 0x48, 0xca, + 0xfe, 0x05, 0xb4, 0x8f, 0xf0, 0x14, 0x53, 0xfc, 0x9c, 0xe0, 0x88, 0x38, 0xf8, 0x73, 0xf4, 0x00, + 0x3a, 0x29, 0x32, 0x38, 0x7a, 0xe2, 0x11, 0x6a, 0x56, 0x76, 0xab, 0x7b, 0x0d, 0x27, 0x87, 0x23, + 0x0b, 0xd6, 0x4f, 0x43, 0x41, 0x9b, 0x55, 0xce, 0x37, 0xa1, 0xd1, 0x2e, 0x34, 0x4f, 0x43, 0x1c, + 0xb9, 0xd4, 0x0b, 0xfc, 0xc1, 0x91, 0x59, 0xe3, 0xc3, 0x2a, 0x64, 0x07, 0xb0, 0xa9, 0x7d, 0x9b, + 0x84, 0xe8, 0x5b, 0xaa, 0x3a, 0x5c, 0x87, 0xe6, 0xc3, 0xce, 0x3e, 0x37, 0x4c, 0x8a, 0x3b, 0xaa, + 0xca, 0x0f, 0xa0, 0xf3, 0xd8, 0xf5, 0xa6, 0x78, 0x9c, 0x17, 0x37, 0x8b, 0xdb, 0xa7, 0xb0, 0xd9, + 0xc7, 0xf4, 0x70, 0x3a, 0x15, 0x18, 0xd3, 0xd6, 0x82, 0xf5, 0x20, 0xd6, 0xc0, 0x10, 0x1a, 0x04, + 0x8a, 0x06, 0x81, 0xa2, 0x81, 0x30, 0x9c, 0x0a, 0xd9, 0x63, 0xe8, 0xe8, 0x0c, 0x4b, 0xa9, 0x70, + 0x1f, 0x20, 0x27, 0xbc, 0x82, 0xd8, 0x6f, 0x60, 0xf3, 0x70, 0x34, 0x0a, 0xe6, 0x3e, 0xed, 0x5d, + 0xe2, 0xd1, 0x15, 0x13, 0x7b, 0x0f, 0x36, 0xf9, 0xdf, 0xca, 0x3a, 0x83, 0xaf, 0xcb, 0xc2, 0xda, + 0x16, 0x55, 0xae, 0xdf, 0xa2, 0x6a, 0x7e, 0x8b, 0xfe, 0x65, 0x40, 0x47, 0xff, 0xb6, 0xd0, 0x70, + 0xb4, 0x82, 0x86, 0xe9, 0x1c, 0xd4, 0x07, 0x70, 0x30, 0x99, 0x4f, 0x69, 0xa2, 0x61, 0xf3, 0xe1, + 0x37, 0xc4, 0x8a, 0x2c, 0xf7, 0xfd, 0xa1, 0xe7, 0x4f, 0xa6, 0xdc, 0x25, 0x86, 0xd4, 0xa5, 0x73, + 0xe2, 0x28, 0x4b, 0xad, 0x33, 0xe8, 0x64, 0xc7, 0x99, 0x6b, 0xcf, 0xd5, 0x0d, 0x94, 0x14, 0xfa, + 0x08, 0x5a, 0xae, 0x60, 0x2e, 0x26, 0x4a, 0xf5, 0x75, 0xd0, 0xf6, 0xa1, 0xdd, 0xc7, 0x94, 0x1b, + 0xc4, 0xbf, 0x08, 0x98, 0x6d, 0xef, 0x03, 0xcc, 0xb3, 0x66, 0x55, 0x90, 0x1b, 0x5a, 0xf4, 0xd7, + 0x06, 0x77, 0xc2, 0xf4, 0x83, 0xa5, 0x0c, 0xfa, 0x29, 0x6c, 0xc4, 0x1c, 0xb8, 0x94, 0x55, 0x6e, + 0xd2, 0x0f, 0xf6, 0x09, 0x8e, 0x5e, 0xe2, 0xe8, 0xdc, 0x0d, 0xbd, 0xf3, 0xd0, 0x8d, 0xdc, 0x19, + 0xd9, 0x4f, 0x3e, 0xa4, 0x2d, 0xb0, 0x7f, 0x6b, 0xc0, 0xd6, 0xf3, 0x70, 0xec, 0xca, 0x70, 0x96, + 0xaa, 0x3f, 0x82, 0xf5, 0x98, 0x94, 0x62, 0x5c, 0xcb, 0x32, 0x99, 0xbc, 0xcc, 0x26, 0x41, 0xde, + 0x26, 0x6a, 0x18, 0x3d, 0x06, 0x94, 0x95, 0xa5, 0x8c, 0x55, 0xec, 0xb7, 0x06, 0x58, 0x43, 0x4c, + 0xfb, 0xd3, 0xe0, 0x85, 0x3b, 0x75, 0xf0, 0xe8, 0xe5, 0x53, 0x4c, 0x88, 0x3b, 0xc1, 0xa7, 0x21, + 0x65, 0xda, 0x2d, 0x72, 0x94, 0xa5, 0x71, 0xce, 0x92, 0xcc, 0x24, 0x65, 0x4a, 0x26, 0xa7, 0x21, + 0xe5, 0x7a, 0xd4, 0x9d, 0x1c, 0x6e, 0x9f, 0xc2, 0x07, 0x0b, 0x65, 0x28, 0xa5, 0xd5, 0x3f, 0xab, + 0xb0, 0xd1, 0x0b, 0xfc, 0x97, 0x38, 0x22, 0x5c, 0x1e, 0xee, 0x64, 0xaf, 0x7c, 0x1c, 0x69, 0x69, + 0x4b, 0x85, 0xd0, 0xc7, 0xd0, 0x56, 0x57, 0x24, 0x4a, 0x65, 0x50, 0xe6, 0xea, 0x39, 0x8d, 0x14, + 0x84, 0xe9, 0xad, 0xae, 0x78, 0xf6, 0x26, 0xc4, 0x3c, 0x91, 0xd7, 0x9d, 0x1c, 0xce, 0xac, 0x2b, + 0x05, 0xaa, 0x0b, 0xeb, 0x4a, 0x59, 0x4c, 0x58, 0xeb, 0x47, 0xc1, 0x3c, 0x1c, 0x1c, 0x99, 0x77, + 0xf8, 0x40, 0x4c, 0x32, 0x3d, 0x9e, 0xfb, 0x11, 0x76, 0xc7, 0x3d, 0x16, 0x8f, 0xe6, 0x1a, 0x67, + 0xac, 0x42, 0x2c, 0x84, 0x8f, 0x22, 0xf7, 0x82, 0x3e, 0xc3, 0xaf, 0xe9, 0x33, 0x6f, 0x86, 0xcd, + 0xf5, 0x5d, 0x63, 0xaf, 0xea, 0xe8, 0x20, 0x73, 0xbe, 0x01, 0x39, 0xf3, 0x7c, 0x1f, 0x8f, 0xcd, + 0xc6, 0xae, 0xb1, 0xb7, 0xee, 0x24, 0x34, 0xb2, 0x61, 0xe3, 0x90, 0x52, 0x77, 0x74, 0x89, 0xc7, + 0xdc, 0xab, 0x81, 0x8b, 0xa0, 0x61, 0xec, 0x2b, 0x03, 0x72, 0x16, 0x79, 0x2f, 0x5d, 0x8a, 0x7b, + 0x97, 0x2e, 0x35, 0x9b, 0x9c, 0x89, 0x0e, 0x32, 0x69, 0xb9, 0xe0, 0x87, 0x94, 0x9b, 0x61, 0x43, + 0x48, 0xab, 0x40, 0xec, 0x5b, 0x03, 0x72, 0x12, 0xd0, 0x81, 0xcf, 0x51, 0xb3, 0xc5, 0xd9, 0x68, + 0x18, 0x6a, 0x43, 0xe5, 0xf8, 0xb5, 0xd9, 0xe6, 0x52, 0x54, 0x8e, 0x5f, 0xdb, 0x7f, 0x32, 0x00, + 0x0d, 0x31, 0x55, 0xad, 0xc9, 0x5c, 0xf5, 0x7b, 0xfa, 0x96, 0x4b, 0x3f, 0x41, 0xb1, 0x9f, 0x28, + 0x93, 0x75, 0xd7, 0x78, 0x00, 0x1d, 0x3f, 0xa0, 0xde, 0x85, 0x37, 0x4a, 0x37, 0xac, 0x22, 0x36, + 0x2c, 0x8b, 0xaf, 0x90, 0xab, 0xfa, 0x70, 0x37, 0x27, 0x5b, 0x29, 0x17, 0xfe, 0xbb, 0x01, 0x9d, + 0x21, 0xa6, 0xa9, 0x67, 0x31, 0x1d, 0xdf, 0xa9, 0x1b, 0xe7, 0xac, 0x52, 0x5b, 0xcd, 0x2a, 0xf5, + 0xbc, 0x55, 0x8e, 0x61, 0x2b, 0xa3, 0x4b, 0x29, 0x9b, 0xfc, 0xd2, 0x00, 0xd4, 0xcf, 0xef, 0x7c, + 0x5e, 0x67, 0xa3, 0x50, 0xe7, 0x8c, 0xf5, 0x2a, 0x79, 0xeb, 0x2d, 0xdf, 0xdf, 0x2f, 0xe0, 0x6e, + 0xff, 0x36, 0xf6, 0x37, 0xe7, 0xae, 0x95, 0xd5, 0xdc, 0xd5, 0xfe, 0x95, 0x91, 0x93, 0x80, 0xac, + 0xe6, 0x1a, 0xac, 0x01, 0xd2, 0x0c, 0x42, 0x64, 0xe3, 0x94, 0x85, 0x57, 0x30, 0xc3, 0x5b, 0x03, + 0xb6, 0xf3, 0x52, 0x94, 0x32, 0xc4, 0xf7, 0xa1, 0xa5, 0xb1, 0x91, 0xbd, 0x4e, 0x91, 0x25, 0xf4, + 0x89, 0xf6, 0xcf, 0xe0, 0x9e, 0x68, 0x25, 0x4b, 0x18, 0x23, 0xa3, 0x62, 0x25, 0xaf, 0xe2, 0x6f, + 0x0c, 0xd8, 0x29, 0x64, 0xff, 0x8e, 0xb5, 0xfc, 0x9b, 0x01, 0x66, 0xd7, 0xa5, 0xa3, 0xcb, 0x61, + 0xc1, 0xae, 0xe7, 0xd8, 0x1a, 0x2b, 0xb2, 0x5d, 0x21, 0x18, 0x8a, 0x52, 0x40, 0x75, 0xb5, 0x14, + 0x50, 0x2b, 0x0a, 0x9c, 0xf7, 0x17, 0x68, 0x51, 0xca, 0x9e, 0x26, 0xac, 0x0d, 0xe7, 0xa3, 0x11, + 0x26, 0xb1, 0x13, 0xc7, 0x24, 0x2b, 0xaa, 0xe2, 0x14, 0xc3, 0x3b, 0xbc, 0x86, 0x23, 0x29, 0x7b, + 0x00, 0x2d, 0x07, 0x13, 0x6f, 0xe2, 0x33, 0xf5, 0x64, 0x6f, 0xc3, 0x35, 0x1d, 0xc7, 0xbd, 0x8d, + 0xa0, 0x56, 0x70, 0x8d, 0x2e, 0xb4, 0x55, 0x56, 0xa5, 0x72, 0xd9, 0x8f, 0x93, 0x26, 0xba, 0xfb, + 0x66, 0x30, 0xbe, 0x99, 0x3c, 0x7f, 0xa9, 0x42, 0x8d, 0x4d, 0x66, 0xe5, 0xf4, 0x2c, 0x0a, 0x2e, + 0xbc, 0x29, 0x3e, 0xbb, 0x0c, 0x68, 0x20, 0x19, 0x69, 0x18, 0x2b, 0xfd, 0x27, 0xde, 0xe8, 0xca, + 0x77, 0x67, 0x38, 0xee, 0x3b, 0x63, 0x5a, 0x11, 0xa1, 0xaa, 0x89, 0x70, 0x1f, 0xa0, 0x17, 0x61, + 0x97, 0x62, 0xde, 0x51, 0x88, 0xdd, 0x55, 0x10, 0x26, 0xe2, 0xd9, 0x65, 0xe0, 0xe3, 0x93, 0xf9, + 0xec, 0x05, 0x8e, 0xe2, 0x0a, 0xa0, 0x40, 0x68, 0x1b, 0xea, 0xc7, 0x33, 0xd7, 0x9b, 0xca, 0x86, + 0x46, 0x10, 0x0c, 0xed, 0x7a, 0x11, 0xbd, 0xe4, 0x8d, 0x4c, 0xc3, 0x11, 0x04, 0x93, 0x50, 0xf0, + 0x1e, 0x84, 0xbc, 0x7b, 0x69, 0x38, 0x09, 0xcd, 0x1a, 0x8f, 0x27, 0x2e, 0xa1, 0x4f, 0x82, 0x89, + 0xe7, 0x73, 0x61, 0x1a, 0xe2, 0x84, 0xa2, 0x81, 0x4c, 0x9e, 0x04, 0x18, 0x84, 0xb2, 0x83, 0x51, + 0x21, 0xa6, 0x51, 0x32, 0x9d, 0xf0, 0xee, 0xa5, 0xee, 0x28, 0x08, 0xb3, 0x44, 0x1f, 0xfb, 0x63, + 0x1c, 0xc9, 0xae, 0x45, 0x52, 0xc9, 0xba, 0x27, 0xde, 0xcc, 0xa3, 0xbc, 0x5d, 0x89, 0xd7, 0x71, + 0x84, 0xf9, 0xe5, 0x80, 0x74, 0xa7, 0xc1, 0xe8, 0x8a, 0x77, 0x2c, 0xeb, 0x4e, 0x4c, 0x8a, 0x8a, + 0x3b, 0xf1, 0x08, 0xc5, 0xd1, 0x20, 0x34, 0x37, 0x85, 0x0d, 0x53, 0xc4, 0x1e, 0x25, 0x87, 0x1c, + 0xe1, 0x10, 0x25, 0xcf, 0xc5, 0xfc, 0x1a, 0x44, 0x56, 0x13, 0x10, 0x73, 0xb9, 0x97, 0x72, 0xdc, + 0xfe, 0x83, 0x01, 0x5b, 0xf2, 0x2b, 0xa4, 0xfb, 0xe6, 0xc4, 0x9d, 0x61, 0x79, 0xa2, 0x67, 0x08, + 0x23, 0xe3, 0x13, 0x7d, 0x4c, 0xa3, 0x23, 0x80, 0x33, 0x77, 0xe2, 0xf9, 0x6a, 0x95, 0xfa, 0xa8, + 0xe0, 0x84, 0xe3, 0xe0, 0xcf, 0xe7, 0x98, 0xd0, 0x74, 0xae, 0xa3, 0xac, 0x5b, 0xa1, 0xa2, 0xfc, + 0x51, 0xd4, 0x76, 0x4d, 0x32, 0x12, 0xa2, 0x5d, 0xa8, 0x33, 0xc1, 0xe3, 0xc4, 0xa6, 0x6a, 0x24, + 0x06, 0xd0, 0x71, 0x81, 0x80, 0x5f, 0x2f, 0x14, 0x90, 0x84, 0x81, 0x4f, 0xf0, 0x02, 0x09, 0x63, + 0x1b, 0xcc, 0x67, 0x44, 0x66, 0xb9, 0x84, 0xb6, 0xff, 0x6b, 0xc0, 0xc6, 0xe1, 0x94, 0x8a, 0xcc, + 0x78, 0xa3, 0x50, 0xcd, 0x46, 0x4a, 0x35, 0x1f, 0x29, 0x6a, 0x7c, 0xd6, 0x32, 0xf1, 0x99, 0x44, + 0x51, 0x5d, 0x8d, 0xa2, 0xd4, 0x57, 0x45, 0x70, 0xc5, 0xbe, 0x5a, 0x1c, 0x5d, 0xdb, 0x50, 0x17, + 0xc9, 0x41, 0x84, 0x56, 0x3d, 0xc9, 0x0a, 0xf2, 0xf4, 0x39, 0x96, 0x21, 0x95, 0xd0, 0xf6, 0x21, + 0xb4, 0x14, 0xed, 0xcb, 0xf8, 0xa5, 0xfd, 0x7b, 0x03, 0x9a, 0xf1, 0xee, 0xc6, 0x05, 0x5a, 0x31, + 0x94, 0x91, 0x37, 0xd4, 0xed, 0xf8, 0x9d, 0xea, 0xd9, 0x55, 0xdd, 0xb3, 0xed, 0xbf, 0x1a, 0xb0, + 0x91, 0xca, 0x74, 0xc3, 0x70, 0xab, 0x16, 0x85, 0x5b, 0xc6, 0x37, 0xab, 0xb7, 0xe1, 0x9b, 0xb5, + 0x8c, 0x6f, 0xfe, 0xdb, 0x00, 0x38, 0x1c, 0x8f, 0x63, 0xcf, 0x5c, 0x6e, 0xd8, 0x8c, 0x07, 0x56, + 0xf2, 0x1e, 0xb8, 0xa8, 0x0a, 0x20, 0xa8, 0x29, 0x5e, 0x59, 0xfb, 0x12, 0x3d, 0xf2, 0x53, 0x68, + 0x26, 0x3a, 0x97, 0xf2, 0xc7, 0xdf, 0x19, 0xb0, 0xc1, 0xd3, 0xf2, 0xb2, 0x88, 0xfe, 0x18, 0xda, + 0xc7, 0xfe, 0xf8, 0xc8, 0x23, 0xee, 0x8b, 0xa9, 0xa8, 0x7e, 0xf2, 0x3c, 0xa5, 0xa3, 0xcb, 0x13, + 0x9c, 0xa6, 0x4f, 0x2d, 0x1f, 0x61, 0x8a, 0x34, 0xa5, 0x34, 0xba, 0x80, 0xf6, 0x73, 0x7f, 0x25, + 0x95, 0x96, 0x27, 0x29, 0x55, 0xd4, 0x6a, 0x46, 0xd4, 0x1e, 0x6c, 0x6a, 0xdf, 0x29, 0x25, 0xec, + 0x9f, 0x0d, 0x7e, 0x0b, 0x9c, 0xb0, 0xe1, 0x39, 0x41, 0x8f, 0x78, 0xe3, 0x76, 0x2a, 0x4d, 0x81, + 0x76, 0xb6, 0xb2, 0xf5, 0x27, 0xf3, 0x99, 0xcc, 0xf6, 0x1a, 0x66, 0x7f, 0x01, 0x8d, 0x84, 0x66, + 0x51, 0xce, 0x7e, 0x4b, 0x91, 0xb4, 0x28, 0xe7, 0xe3, 0x0f, 0xa0, 0xd3, 0xc5, 0x13, 0xcf, 0xcf, + 0x7b, 0x49, 0x0e, 0x2f, 0xf0, 0xa7, 0x6a, 0x91, 0x3f, 0xd9, 0xff, 0x10, 0x85, 0x5a, 0xb5, 0x50, + 0xa9, 0x0c, 0x75, 0x00, 0x90, 0xf2, 0x90, 0x79, 0x6a, 0x53, 0xac, 0x48, 0x37, 0x51, 0x99, 0xf2, + 0x2e, 0x52, 0xd6, 0x19, 0x3f, 0xc1, 0x26, 0xdf, 0x8c, 0xfb, 0xdf, 0x1d, 0x58, 0x63, 0xe4, 0xb9, + 0xf7, 0xff, 0x37, 0xc0, 0xc7, 0xfc, 0x34, 0x9a, 0xe1, 0x48, 0x42, 0xf4, 0x4d, 0x65, 0x1b, 0x65, + 0x0d, 0xc9, 0x29, 0x9f, 0xce, 0xb0, 0x2f, 0xa0, 0x95, 0xbe, 0xae, 0xdc, 0x4c, 0xa4, 0x6b, 0x63, + 0xa8, 0xab, 0xbe, 0x20, 0x95, 0xdb, 0xd8, 0x87, 0xff, 0x69, 0x8a, 0xda, 0x83, 0x3e, 0x49, 0x2a, + 0x2b, 0xbf, 0x99, 0xdb, 0x16, 0xab, 0xf4, 0x0b, 0x7a, 0xeb, 0xbd, 0x02, 0x94, 0x84, 0xa8, 0x07, + 0x6d, 0xfd, 0x16, 0x19, 0xed, 0x48, 0xef, 0xce, 0xde, 0x73, 0x5b, 0x66, 0xf1, 0x00, 0x09, 0xd1, + 0xcf, 0x61, 0x67, 0xc1, 0xed, 0x2d, 0xda, 0x15, 0x8b, 0x16, 0x5f, 0x30, 0x5b, 0x1f, 0x2e, 0x99, + 0x41, 0x42, 0xa6, 0xa0, 0xf2, 0xe6, 0x15, 0x2b, 0xa8, 0x3f, 0xc1, 0xc5, 0x0a, 0x66, 0x1f, 0xc7, + 0x7e, 0xc8, 0x4b, 0x7c, 0xf2, 0xda, 0x84, 0x52, 0x3b, 0xa8, 0x4f, 0x5a, 0xd6, 0xbd, 0x22, 0x58, + 0x2c, 0x57, 0x1f, 0x5b, 0xe2, 0xe5, 0x99, 0xa7, 0xa5, 0x78, 0x79, 0xee, 0xd5, 0xe7, 0x31, 0x6f, + 0xe9, 0xb5, 0xdb, 0x46, 0x33, 0xf9, 0x52, 0xe6, 0x16, 0xcb, 0x7a, 0x7f, 0xc1, 0x08, 0x09, 0x91, + 0xc3, 0x03, 0x26, 0x7b, 0x13, 0x81, 0xbe, 0xa2, 0x4a, 0x9d, 0xbd, 0x1a, 0xb0, 0xbe, 0x7a, 0xcd, + 0x28, 0x09, 0xd1, 0x80, 0x67, 0x60, 0x9d, 0x61, 0xb1, 0x08, 0x9c, 0x9b, 0xb5, 0x68, 0x88, 0x84, + 0xe8, 0x27, 0xf0, 0x5e, 0xe1, 0xd1, 0x1e, 0xdd, 0x97, 0xb1, 0xb6, 0xe0, 0xf6, 0xc2, 0xfa, 0xda, + 0xb5, 0xe3, 0xc2, 0x80, 0xc3, 0x62, 0x03, 0x0e, 0x17, 0x1a, 0xb0, 0xe8, 0xfa, 0xf5, 0x33, 0x68, + 0x69, 0xf7, 0x8f, 0xe8, 0x5e, 0x32, 0x57, 0xbb, 0x60, 0xb5, 0x76, 0x0a, 0x71, 0xe1, 0x84, 0xca, + 0xe9, 0x2c, 0x13, 0x65, 0x32, 0x83, 0x65, 0xa2, 0x2c, 0xc9, 0x42, 0xbd, 0xe4, 0xa8, 0x2f, 0x4f, + 0x36, 0x71, 0x94, 0xe5, 0x4e, 0x62, 0x96, 0x59, 0x3c, 0x40, 0x42, 0xf4, 0x88, 0xbf, 0x07, 0xca, + 0x3b, 0x07, 0x74, 0x57, 0xcc, 0xd3, 0x2e, 0x34, 0xac, 0xed, 0x3c, 0x48, 0x42, 0xf4, 0x5d, 0x68, + 0x24, 0xdd, 0x3b, 0x92, 0x17, 0x43, 0xea, 0x61, 0xc6, 0xba, 0x9b, 0xc3, 0x48, 0x88, 0xbe, 0x0d, + 0xeb, 0xb1, 0x10, 0x68, 0x4b, 0x17, 0x8a, 0xad, 0x41, 0x59, 0x88, 0x84, 0x68, 0x1f, 0xd6, 0x64, + 0x53, 0x86, 0x64, 0xea, 0x4a, 0xfb, 0x52, 0x6b, 0x2b, 0x83, 0x08, 0xc1, 0xd2, 0x1a, 0x8b, 0xb2, + 0x69, 0x39, 0x15, 0x4c, 0x6f, 0x36, 0x3e, 0x81, 0xa6, 0xd2, 0x7f, 0xc4, 0x1b, 0xa1, 0xb7, 0x3e, + 0xf1, 0x46, 0x64, 0x1b, 0x95, 0xcf, 0xa0, 0xa5, 0xd5, 0x54, 0x94, 0xc6, 0xbd, 0xd6, 0x8a, 0x58, + 0x3b, 0x85, 0x78, 0x12, 0x35, 0x5a, 0xa1, 0x51, 0xa2, 0x26, 0x5b, 0xd2, 0x94, 0xa8, 0xc9, 0xd7, + 0xa6, 0x47, 0x00, 0x69, 0xb6, 0x8a, 0x37, 0x54, 0x2b, 0x3f, 0xd6, 0x76, 0x1e, 0x24, 0x61, 0xb7, + 0xf5, 0xd3, 0xe6, 0x3e, 0xff, 0xc7, 0x87, 0x1f, 0xb0, 0x1f, 0x2f, 0xee, 0xf0, 0xff, 0x6a, 0xf8, + 0xce, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xa5, 0x63, 0x75, 0x08, 0x11, 0x21, 0x00, 0x00, +} diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 2f400473a..dc2751c21 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -188,6 +188,7 @@ message User{ int32 Gender = 12; int32 LoginLimit = 13; bool IsBlock = 14; + string RegisterIp = 15; } message GetUserByIdResp{ From decd70ff21d8d515bf31ffbb30918af68cd2f328 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 19 Aug 2022 21:44:30 +0800 Subject: [PATCH 194/230] batch_build_all_service --- deploy.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy.Dockerfile b/deploy.Dockerfile index 1738bda80..548818e2d 100644 --- a/deploy.Dockerfile +++ b/deploy.Dockerfile @@ -12,7 +12,7 @@ COPY . . WORKDIR /Open-IM-Server/script RUN chmod +x *.sh -RUN /bin/sh -c ./build_all_service.sh +RUN /bin/sh -c ./batch_build_all_service.sh #Blank image Multi-Stage Build FROM ubuntu From a5f8e833ba63a7225ce979a7d934208004e357fd Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 19 Aug 2022 21:51:35 +0800 Subject: [PATCH 195/230] build_all_service --- deploy.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy.Dockerfile b/deploy.Dockerfile index 548818e2d..1738bda80 100644 --- a/deploy.Dockerfile +++ b/deploy.Dockerfile @@ -12,7 +12,7 @@ COPY . . WORKDIR /Open-IM-Server/script RUN chmod +x *.sh -RUN /bin/sh -c ./batch_build_all_service.sh +RUN /bin/sh -c ./build_all_service.sh #Blank image Multi-Stage Build FROM ubuntu From ed5b215bbbcb23e817ea170930cbb6bef52e17e9 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Sun, 21 Aug 2022 16:05:58 +0800 Subject: [PATCH 196/230] pc terminal can login at same time --- internal/msg_gateway/gate/ws_server.go | 10 ++++++++++ pkg/common/constant/constant.go | 2 ++ 2 files changed, 12 insertions(+) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index b2ea4c6eb..fd2190efb 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -147,6 +147,11 @@ func (ws *WServer) MultiTerminalLoginCheckerWithLock(uid string, platformID int, defer rwLock.Unlock() log.NewInfo(operationID, utils.GetSelfFuncName(), " rpc args: ", uid, platformID, token) switch config.Config.MultiLoginPolicy { + case constant.PCAndOther: + if constant.PlatformNameToClass(constant.PlatformIDToName(platformID)) == constant.TerminalPC { + return + } + fallthrough case constant.AllLoginButSameTermKick: if oldConnMap, ok := ws.wsUserToConn[uid]; ok { // user->map[platform->conn] if oldConn, ok := oldConnMap[platformID]; ok { @@ -197,6 +202,11 @@ func (ws *WServer) MultiTerminalLoginCheckerWithLock(uid string, platformID int, func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int, newConn *UserConn, token string, operationID string) { switch config.Config.MultiLoginPolicy { + case constant.PCAndOther: + if constant.PlatformNameToClass(constant.PlatformIDToName(platformID)) == constant.TerminalPC { + return + } + fallthrough case constant.AllLoginButSameTermKick: if oldConnMap, ok := ws.wsUserToConn[uid]; ok { // user->map[platform->conn] if oldConn, ok := oldConnMap[platformID]; ok { diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 846b07a14..c8f9986b4 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -140,6 +140,8 @@ const ( WebAndOther = 3 //The PC side is mutually exclusive, and the mobile side is mutually exclusive, but the web side can be online at the same time PcMobileAndWeb = 4 + //The PC terminal can be online at the same time,but other terminal only one of the endpoints can login + PCAndOther = 5 OnlineStatus = "online" OfflineStatus = "offline" From ee577cae4cf125890d2607c0fee476cb96ed14ab Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 21 Aug 2022 17:33:40 +0800 Subject: [PATCH 197/230] add conversationCache --- internal/rpc/conversation/conversaion.go | 13 ++++++++ internal/rpc/user/user.go | 33 +++++++++++++++---- .../im_mysql_model/conversation_model.go | 8 +++-- pkg/common/db/rocks_cache/rocks_cache.go | 18 ++++++++-- 4 files changed, 60 insertions(+), 12 deletions(-) diff --git a/internal/rpc/conversation/conversaion.go b/internal/rpc/conversation/conversaion.go index fc9702ebc..5fcab9eb4 100644 --- a/internal/rpc/conversation/conversaion.go +++ b/internal/rpc/conversation/conversaion.go @@ -5,6 +5,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + rocksCache "Open_IM/pkg/common/db/rocks_cache" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbConversation "Open_IM/pkg/proto/conversation" @@ -88,6 +89,7 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo return resp, nil } } + // notification if req.Conversation.ConversationType == constant.SingleChatType && req.FieldType == constant.FieldIsPrivateChat { //sync peer user conversation if conversation is singleChatType @@ -96,13 +98,20 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo resp.CommonResp = &pbConversation.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} return resp, nil } + } else { if isSyncConversation { for _, v := range req.UserIDList { + if err = rocksCache.DelConversationFromCache(v, req.Conversation.ConversationID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), v, req.Conversation.ConversationID, err.Error()) + } chat.ConversationChangeNotification(req.OperationID, v) } } else { for _, v := range req.UserIDList { + if err = rocksCache.DelConversationFromCache(v, req.Conversation.ConversationID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), v, req.Conversation.ConversationID, err.Error()) + } chat.ConversationUnreadChangeNotification(req.OperationID, v, req.Conversation.ConversationID) } } @@ -132,6 +141,10 @@ func syncPeerUserConversation(conversation *pbConversation.Conversation, operati log.NewError(operationID, utils.GetSelfFuncName(), "SetConversation error", err.Error()) return err } + err = rocksCache.DelConversationFromCache(conversation.UserID, utils.GetConversationIDBySessionType(conversation.OwnerUserID, constant.SingleChatType)) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), "DelConversationFromCache failed", err.Error()) + } chat.ConversationSetPrivateNotification(operationID, conversation.OwnerUserID, conversation.UserID, conversation.IsPrivateChat) return nil } diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 890b8e90d..4c86c36f8 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -147,11 +147,21 @@ func (s *userServer) BatchSetConversations(ctx context.Context, req *pbUser.Batc resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} return resp, nil } - if err := imdb.SetConversation(conversation); err != nil { + + isUpdate, err := imdb.SetConversation(conversation) + if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation error", err.Error()) resp.Failed = append(resp.Failed, v.ConversationID) continue } + if isUpdate { + err = rocksCache.DelConversationFromCache(v.OwnerUserID, v.ConversationID) + } else { + err = rocksCache.DelUserConversationIDListFromCache(v.OwnerUserID) + } + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), v.ConversationID, v.OwnerUserID) + } resp.Success = append(resp.Success, v.ConversationID) // if is set private msg operation,then peer user need to sync and set tips\ if v.ConversationType == constant.SingleChatType && req.NotificationType == constant.ConversationPrivateChatNotification { @@ -169,7 +179,7 @@ func (s *userServer) BatchSetConversations(ctx context.Context, req *pbUser.Batc func (s *userServer) GetAllConversations(ctx context.Context, req *pbUser.GetAllConversationsReq) (*pbUser.GetAllConversationsResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbUser.GetAllConversationsResp{Conversations: []*pbUser.Conversation{}} - conversations, err := imdb.GetUserAllConversations(req.OwnerUserID) + conversations, err := rocksCache.GetUserAllConversationList(req.OwnerUserID) log.NewDebug(req.OperationID, "conversations: ", conversations) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetConversations error", err.Error()) @@ -187,7 +197,7 @@ func (s *userServer) GetAllConversations(ctx context.Context, req *pbUser.GetAll func (s *userServer) GetConversation(ctx context.Context, req *pbUser.GetConversationReq) (*pbUser.GetConversationResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbUser.GetConversationResp{Conversation: &pbUser.Conversation{}} - conversation, err := imdb.GetConversation(req.OwnerUserID, req.ConversationID) + conversation, err := rocksCache.GetConversationFromCache(req.OwnerUserID, req.ConversationID) log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetConversation error", err.Error()) @@ -205,7 +215,7 @@ func (s *userServer) GetConversation(ctx context.Context, req *pbUser.GetConvers func (s *userServer) GetConversations(ctx context.Context, req *pbUser.GetConversationsReq) (*pbUser.GetConversationsResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbUser.GetConversationsResp{Conversations: []*pbUser.Conversation{}} - conversations, err := imdb.GetConversations(req.OwnerUserID, req.ConversationIDs) + conversations, err := rocksCache.GetConversationsFromCache(req.OwnerUserID, req.ConversationIDs) log.NewDebug("", utils.GetSelfFuncName(), "conversations", conversations) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetConversations error", err.Error()) @@ -249,12 +259,21 @@ func (s *userServer) SetConversation(ctx context.Context, req *pbUser.SetConvers resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} return resp, nil } - err := imdb.SetConversation(conversation) + isUpdate, err := imdb.SetConversation(conversation) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation error", err.Error()) resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} return resp, nil } + if isUpdate { + err = rocksCache.DelConversationFromCache(req.Conversation.OwnerUserID ,req.Conversation.ConversationID) + } else { + err = rocksCache.DelUserConversationIDListFromCache(req.Conversation.OwnerUserID) + } + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.Conversation.ConversationID, req.Conversation.OwnerUserID) + } + // notification if req.Conversation.ConversationType == constant.SingleChatType && req.NotificationType == constant.ConversationPrivateChatNotification { //sync peer user conversation if conversation is singleChatType @@ -299,6 +318,8 @@ func (s *userServer) SetRecvMsgOpt(ctx context.Context, req *pbUser.SetRecvMsgOp log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation error", err.Error()) resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} return resp, nil + if err = rocksCache.DelConversationFromCache(conversation.OwnerUserID, conversation.ConversationID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), conversation.ConversationID, err.Error()) } chat.ConversationChangeNotification(req.OperationID, req.OwnerUserID) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) @@ -306,7 +327,7 @@ func (s *userServer) SetRecvMsgOpt(ctx context.Context, req *pbUser.SetRecvMsgOp return resp, nil } -func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) (*pbUser.DeleteUsersResp, error) { +func (s *userServer) DeleteUsers(ctx context.Context, req *pbUser.DeleteUsersReq) (*pbUser.DeleteUsersResp, error) { log.NewInfo(req.OperationID, "DeleteUsers args ", req.String()) if !token_verify.IsManagerUserID(req.OpUserID) { log.NewError(req.OperationID, "IsManagerUserID false ", req.OpUserID) diff --git a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go index 98a97653e..0f1b7374a 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go @@ -6,16 +6,18 @@ import ( "Open_IM/pkg/utils" ) -func SetConversation(conversation db.Conversation) error { +func SetConversation(conversation db.Conversation) (bool, error) { + var isUpdate bool newConversation := conversation if db.DB.MysqlDB.DefaultGormDB().Model(&db.Conversation{}).Find(&newConversation).RowsAffected == 0 { log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "not exist in db, create") - return db.DB.MysqlDB.DefaultGormDB().Model(&db.Conversation{}).Create(conversation).Error + return isUpdate, db.DB.MysqlDB.DefaultGormDB().Model(&db.Conversation{}).Create(conversation).Error // if exist, then update record } else { log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "exist in db, update") //force update - return db.DB.MysqlDB.DefaultGormDB().Model(conversation).Where("owner_user_id = ? and conversation_id = ?", conversation.OwnerUserID, conversation.ConversationID). + isUpdate = true + return isUpdate, db.DB.MysqlDB.DefaultGormDB().Model(conversation).Where("owner_user_id = ? and conversation_id = ?", conversation.OwnerUserID, conversation.ConversationID). Updates(map[string]interface{}{"recv_msg_opt": conversation.RecvMsgOpt, "is_pinned": conversation.IsPinned, "is_private_chat": conversation.IsPrivateChat, "group_at_type": conversation.GroupAtType, "is_not_in_group": conversation.IsNotInGroup}).Error } diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index af6e75e21..103bd51f7 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -465,7 +465,7 @@ func GetConversationFromCache(ownerUserID, conversationID string) (*db.Conversat bytes, err := json.Marshal(conversation) return string(bytes), utils.Wrap(err, "") } - conversationStr, err := db.DB.Rc.Fetch(conversationCache+conversationID, time.Second*30*60, getConversation) + conversationStr, err := db.DB.Rc.Fetch(conversationCache+ownerUserID+":"+conversationID, time.Second*30*60, getConversation) conversation := db.Conversation{} err = json.Unmarshal([]byte(conversationStr), &conversation) if err != nil { @@ -474,6 +474,18 @@ func GetConversationFromCache(ownerUserID, conversationID string) (*db.Conversat return &conversation, nil } +func GetConversationsFromCache(ownerUserID string, conversationIDList []string) ([]db.Conversation, error) { + var conversationList []db.Conversation + for _, conversationID := range conversationIDList { + conversation, err := GetConversationFromCache(ownerUserID, conversationID) + if err != nil { + return nil, utils.Wrap(err, "GetConversationFromCache failed") + } + conversationList = append(conversationList, *conversation) + } + return conversationList, nil +} + func GetUserAllConversationList(ownerUserID string) ([]db.Conversation, error) { IDList, err := GetUserConversationIDListFromCache(ownerUserID) if err != nil { @@ -490,6 +502,6 @@ func GetUserAllConversationList(ownerUserID string) ([]db.Conversation, error) { return conversationList, nil } -func DelConversationFromCache(conversationID string) error { - return db.DB.Rc.TagAsDeleted(conversationCache + conversationID) +func DelConversationFromCache(ownerUserID, conversationID string) error { + return db.DB.Rc.TagAsDeleted(conversationCache + ownerUserID + ":" + conversationID) } From 6553ada66fb230f900e791ccd69a170d133c5621 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 21 Aug 2022 21:54:32 +0800 Subject: [PATCH 198/230] add set client init --- cmd/open_im_api/main.go | 7 +++ internal/api/client_init/init_config.go | 55 +++++++++++++++++++ internal/api/manage/management_chat.go | 17 ++++-- pkg/base_info/client_init.go | 21 +++++++ pkg/base_info/manage_api_struct.go | 4 +- pkg/common/db/model_struct.go | 8 +++ pkg/common/db/mysql.go | 9 ++- .../im_mysql_model/client_config.go | 22 ++++++++ 8 files changed, 135 insertions(+), 8 deletions(-) create mode 100644 internal/api/client_init/init_config.go create mode 100644 pkg/base_info/client_init.go create mode 100644 pkg/common/db/mysql_model/im_mysql_model/client_config.go diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 98e9f5af7..6b9b5894b 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -3,6 +3,7 @@ package main import ( _ "Open_IM/cmd/open_im_api/docs" apiAuth "Open_IM/internal/api/auth" + clientInit "Open_IM/internal/api/client_init" "Open_IM/internal/api/conversation" "Open_IM/internal/api/friend" "Open_IM/internal/api/group" @@ -206,6 +207,12 @@ func main() { } + initGroup := r.Group("/init") + { + initGroup.POST("/set_client_config", clientInit.SetClientInitConfig) + initGroup.POST("/get_client_config", clientInit.GetClientInitConfig) + } + go apiThird.MinioInit() defaultPorts := config.Config.Api.GinPort ginPort := flag.Int("port", defaultPorts[0], "get ginServerPort from cmd,default 10002 as port") diff --git a/internal/api/client_init/init_config.go b/internal/api/client_init/init_config.go new file mode 100644 index 000000000..ec9120601 --- /dev/null +++ b/internal/api/client_init/init_config.go @@ -0,0 +1,55 @@ +package clientInit + +import ( + api "Open_IM/pkg/base_info" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" + "net/http" + + "github.com/gin-gonic/gin" +) + +func SetClientInitConfig(c *gin.Context) { + var req api.SetClientInitConfigReq + var resp api.SetClientInitConfigResp + if err := c.BindJSON(&req); err != nil { + log.NewError("0", utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) + m := make(map[string]interface{}) + if req.DiscoverPageURL != nil { + m["discover_page_url"] = *req.DiscoverPageURL + } + if len(m) > 0 { + err := imdb.SetClientInitConfig(m) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + } + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) + c.JSON(http.StatusOK, resp) +} + +func GetClientInitConfig(c *gin.Context) { + var req api.GetClientInitConfigReq + var resp api.GetClientInitConfigResp + if err := c.BindJSON(&req); err != nil { + log.NewError("0", utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) + config, err := imdb.GetClientInitConfig() + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + } + resp.Data.DiscoverPageURL = config.DiscoverPageURL + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp ", resp) + c.JSON(http.StatusOK, resp) + +} diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index e0e30d061..8e95cb04e 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -10,20 +10,21 @@ import ( api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/msg" - "Open_IM/pkg/proto/sdk_ws" - open_im_sdk "Open_IM/pkg/proto/sdk_ws" + server_api_params "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" + "net/http" + "strings" + "github.com/gin-gonic/gin" "github.com/go-playground/validator/v10" "github.com/golang/protobuf/proto" "github.com/mitchellh/mapstructure" - "net/http" - "strings" ) var validate *validator.Validate @@ -332,7 +333,13 @@ func ManagementBatchSendMsg(c *gin.Context) { ManagementSendMsg: params.ManagementSendMsg, } pbData := newUserSendMsgReq(req) - for _, recvID := range params.RecvIDList { + var recvList []string + if params.IsSendAll { + recvList, err = im_mysql_model.SelectAllUserID() + } else { + recvList = params.RecvIDList + } + for _, recvID := range recvList { pbData.MsgData.RecvID = recvID log.Info(params.OperationID, "", "api ManagementSendMsg call start..., ", pbData.String()) diff --git a/pkg/base_info/client_init.go b/pkg/base_info/client_init.go new file mode 100644 index 000000000..47cfdcdea --- /dev/null +++ b/pkg/base_info/client_init.go @@ -0,0 +1,21 @@ +package base_info + +type SetClientInitConfigReq struct { + OperationID string `json:"operationID" binding:"required"` + DiscoverPageURL *string `json:"discoverPageURL"` +} + +type SetClientInitConfigResp struct { + CommResp +} + +type GetClientInitConfigReq struct { + OperationID string `json:"operationID" binding:"required"` +} + +type GetClientInitConfigResp struct { + CommResp + Data struct { + DiscoverPageURL string `json:"discoverPageURL"` + } `json:"data"` +} diff --git a/pkg/base_info/manage_api_struct.go b/pkg/base_info/manage_api_struct.go index 7d9f43653..aed18faa2 100644 --- a/pkg/base_info/manage_api_struct.go +++ b/pkg/base_info/manage_api_struct.go @@ -2,8 +2,7 @@ package base_info import ( pbRelay "Open_IM/pkg/proto/relay" - "Open_IM/pkg/proto/sdk_ws" - open_im_sdk "Open_IM/pkg/proto/sdk_ws" + server_api_params "Open_IM/pkg/proto/sdk_ws" pbUser "Open_IM/pkg/proto/user" ) @@ -68,6 +67,7 @@ type ManagementSendMsgResp struct { type ManagementBatchSendMsgReq struct { ManagementSendMsg + IsSendAll bool `json:"isSendAll"` RecvIDList []string `json:"recvIDList"` } diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 560dc29d5..a58899607 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -339,3 +339,11 @@ type RegisterAddFriend struct { func (RegisterAddFriend) TableName() string { return "register_add_friend" } + +type ClientInitConfig struct { + DiscoverPageURL string `gorm:"column:discover_page_url;size:64" json:"version"` +} + +func (ClientInitConfig) TableName() string { + return "client_init_config" +} diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index d238c7794..f28be8dc1 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -78,7 +78,8 @@ func initMysqlDB() { &GroupMember{}, &GroupRequest{}, &User{}, - &Black{}, &ChatLog{}, &Register{}, &Conversation{}, &AppVersion{}, &Department{}, &BlackList{}, &IpLimit{}, &UserIpLimit{}, &Invitation{}, &RegisterAddFriend{}) + &Black{}, &ChatLog{}, &Register{}, &Conversation{}, &AppVersion{}, &Department{}, &BlackList{}, &IpLimit{}, &UserIpLimit{}, &Invitation{}, &RegisterAddFriend{}, + &ClientInitConfig{}) db.Set("gorm:table_options", "CHARSET=utf8") db.Set("gorm:table_options", "collation=utf8_unicode_ci") @@ -163,6 +164,12 @@ func initMysqlDB() { fmt.Println("CreateTable Invitation") db.Migrator().CreateTable(&Invitation{}) } + + if !db.Migrator().HasTable(&ClientInitConfig{}) { + fmt.Println("CreateTable ClientInitConfig") + db.Migrator().CreateTable(&ClientInitConfig{}) + } + DB.MysqlDB.db = db return } diff --git a/pkg/common/db/mysql_model/im_mysql_model/client_config.go b/pkg/common/db/mysql_model/im_mysql_model/client_config.go new file mode 100644 index 000000000..1167dd214 --- /dev/null +++ b/pkg/common/db/mysql_model/im_mysql_model/client_config.go @@ -0,0 +1,22 @@ +package im_mysql_model + +import "Open_IM/pkg/common/db" + +func SetClientInitConfig(m map[string]interface{}) error { + result := db.DB.MysqlDB.DefaultGormDB().Model(&db.ClientInitConfig{}).Updates(m) + if result.Error != nil { + return result.Error + } + if result.RowsAffected == 1 { + err := db.DB.MysqlDB.DefaultGormDB().Model(&db.ClientInitConfig{}).Create(m).Error + return err + } + + return nil +} + +func GetClientInitConfig() (db.ClientInitConfig, error) { + var config db.ClientInitConfig + err := db.DB.MysqlDB.DefaultGormDB().Model((&db.ClientInitConfig{})).First(&config).Error + return config, err +} From d4d9e08ae2318cc7068b3aed85aed76898c258c3 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 21 Aug 2022 21:55:46 +0800 Subject: [PATCH 199/230] fix bug --- pkg/base_info/manage_api_struct.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/base_info/manage_api_struct.go b/pkg/base_info/manage_api_struct.go index aed18faa2..cc7ba5129 100644 --- a/pkg/base_info/manage_api_struct.go +++ b/pkg/base_info/manage_api_struct.go @@ -47,12 +47,12 @@ type ManagementSendMsg struct { SenderFaceURL string `json:"senderFaceURL" ` SenderPlatformID int32 `json:"senderPlatformID"` //ForceList []string `json:"forceList" ` - Content map[string]interface{} `json:"content" binding:"required" swaggerignore:"true"` - ContentType int32 `json:"contentType" binding:"required"` - SessionType int32 `json:"sessionType" binding:"required"` - IsOnlineOnly bool `json:"isOnlineOnly"` - NotOfflinePush bool `json:"notOfflinePush"` - OfflinePushInfo *open_im_sdk.OfflinePushInfo `json:"offlinePushInfo"` + Content map[string]interface{} `json:"content" binding:"required" swaggerignore:"true"` + ContentType int32 `json:"contentType" binding:"required"` + SessionType int32 `json:"sessionType" binding:"required"` + IsOnlineOnly bool `json:"isOnlineOnly"` + NotOfflinePush bool `json:"notOfflinePush"` + OfflinePushInfo *server_api_params.OfflinePushInfo `json:"offlinePushInfo"` } type ManagementSendMsgReq struct { From 402b3f5535d9c06deb9908562db25d1df6ee983b Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 21 Aug 2022 21:56:55 +0800 Subject: [PATCH 200/230] fix bug --- internal/api/manage/management_chat.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index 8e95cb04e..d7537fc43 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -15,7 +15,7 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/msg" - server_api_params "Open_IM/pkg/proto/sdk_ws" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "net/http" From 066eeb6ba6f15cb28c7eb12882066802e322040f Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 21 Aug 2022 21:57:46 +0800 Subject: [PATCH 201/230] fix bug --- internal/api/manage/management_chat.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index d7537fc43..5a7a91b25 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -232,7 +232,7 @@ func ManagementSendMsg(c *gin.Context) { } } log.Info(params.OperationID, "", "api ManagementSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), RpcResp.String()) - resp := api.ManagementSendMsgResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, ResultList: server_api_params.UserSendMsgResp{ServerMsgID: RpcResp.ServerMsgID, ClientMsgID: RpcResp.ClientMsgID, SendTime: RpcResp.SendTime}} + resp := api.ManagementSendMsgResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, ResultList: open_im_sdk.UserSendMsgResp{ServerMsgID: RpcResp.ServerMsgID, ClientMsgID: RpcResp.ClientMsgID, SendTime: RpcResp.SendTime}} log.Info(params.OperationID, "ManagementSendMsg return", resp) c.JSON(http.StatusOK, resp) } From 94ed160eeead94ecdaa8d64ac2ae3dfcf2eeff18 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 21 Aug 2022 21:59:28 +0800 Subject: [PATCH 202/230] fix bug --- internal/cms_api/admin/admin.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/internal/cms_api/admin/admin.go b/internal/cms_api/admin/admin.go index 007569e1d..c71689c57 100644 --- a/internal/cms_api/admin/admin.go +++ b/internal/cms_api/admin/admin.go @@ -11,13 +11,15 @@ import ( pbCommon "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" - "github.com/minio/minio-go/v7" - "github.com/minio/minio-go/v7/pkg/credentials" "net/http" "strings" - "github.com/gin-gonic/gin" + "github.com/minio/minio-go/v7" + "github.com/minio/minio-go/v7/pkg/credentials" + url2 "net/url" + + "github.com/gin-gonic/gin" ) var ( @@ -100,7 +102,7 @@ func AddUserRegisterAddFriendIDList(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, req.OperationID) if etcdConn == nil { errMsg := req.OperationID + "getcdv3.GetConn == nil" log.NewError(req.OperationID, errMsg) @@ -128,7 +130,7 @@ func ReduceUserRegisterAddFriendIDList(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, req.OperationID) if etcdConn == nil { errMsg := req.OperationID + "getcdv3.GetConn == nil" log.NewError(req.OperationID, errMsg) @@ -156,7 +158,7 @@ func GetUserRegisterAddFriendIDList(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, req.OperationID) if etcdConn == nil { errMsg := req.OperationID + "getcdv3.GetConn == nil" log.NewError(req.OperationID, errMsg) From 33886f106c6401e48e398f387d99808785f44517 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 21 Aug 2022 22:04:33 +0800 Subject: [PATCH 203/230] fix bug --- internal/rpc/user/user.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index da1f6e0c3..fdfe7a977 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -268,7 +268,7 @@ func (s *userServer) SetConversation(ctx context.Context, req *pbUser.SetConvers return resp, nil } if isUpdate { - err = rocksCache.DelConversationFromCache(req.Conversation.OwnerUserID ,req.Conversation.ConversationID) + err = rocksCache.DelConversationFromCache(req.Conversation.OwnerUserID, req.Conversation.ConversationID) } else { err = rocksCache.DelUserConversationIDListFromCache(req.Conversation.OwnerUserID) } @@ -320,6 +320,7 @@ func (s *userServer) SetRecvMsgOpt(ctx context.Context, req *pbUser.SetRecvMsgOp log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation error", err.Error()) resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} return resp, nil + } if err = rocksCache.DelConversationFromCache(conversation.OwnerUserID, conversation.ConversationID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), conversation.ConversationID, err.Error()) } @@ -329,7 +330,7 @@ func (s *userServer) SetRecvMsgOpt(ctx context.Context, req *pbUser.SetRecvMsgOp return resp, nil } -func (s *userServer) DeleteUsers(ctx context.Context, req *pbUser.DeleteUsersReq) (*pbUser.DeleteUsersResp, error) { +func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) (*pbUser.DeleteUsersResp, error) { log.NewInfo(req.OperationID, "DeleteUsers args ", req.String()) if !token_verify.IsManagerUserID(req.OpUserID) { log.NewError(req.OperationID, "IsManagerUserID false ", req.OpUserID) From 7dd6869cd12a363e3750a25657453991ce5963e6 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 21 Aug 2022 22:07:46 +0800 Subject: [PATCH 204/230] fix bug --- internal/demo/register/register_import_friend.go | 2 +- internal/rpc/user/user.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/demo/register/register_import_friend.go b/internal/demo/register/register_import_friend.go index 01e3e7d16..8475ec78c 100644 --- a/internal/demo/register/register_import_friend.go +++ b/internal/demo/register/register_import_friend.go @@ -32,7 +32,7 @@ func ImportFriendRoutine() { return } req.FriendUserIDList = friendUserIDList - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.OperationID) if etcdConn == nil { errMsg := req.OperationID + "getcdv3.GetConn == nil" log.NewError(req.OperationID, errMsg) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index fdfe7a977..813af55ff 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -455,7 +455,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI if req.UserInfo.Nickname != "" { go s.SyncJoinedGroupMemberNickname(req.UserInfo.UserID, req.UserInfo.Nickname, oldNickname, req.OperationID, req.OpUserID) } - etcdConn = getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) + etcdConn = getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID) clientOrg := pbOrganization.NewOrganizationClient(etcdConn) out, err := clientOrg.UpdateOrganizationUser(context.Background(), &pbOrganization.UpdateOrganizationUserReq{ OrganizationUser: &sdkws.OrganizationUser{ From b176701e5169a6e2ad85c1053f1f9fa0369a4284 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 21 Aug 2022 22:09:00 +0800 Subject: [PATCH 205/230] fix bug --- internal/rpc/organization/organization.go | 26 ----------------------- 1 file changed, 26 deletions(-) diff --git a/internal/rpc/organization/organization.go b/internal/rpc/organization/organization.go index 7d586c6f3..95f3233ef 100644 --- a/internal/rpc/organization/organization.go +++ b/internal/rpc/organization/organization.go @@ -305,32 +305,6 @@ func (s *organizationServer) CreateOrganizationUser(ctx context.Context, req *rp } func (s *organizationServer) UpdateOrganizationUser(ctx context.Context, req *rpc.UpdateOrganizationUserReq) (*rpc.UpdateOrganizationUserResp, error) { -<<<<<<< HEAD -======= - authReq := &pbAuth.UserRegisterReq{UserInfo: &open_im_sdk.UserInfo{}} - utils.CopyStructFields(authReq.UserInfo, req.OrganizationUser) - authReq.OperationID = req.OperationID - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName, req.OperationID) - if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(req.OperationID, errMsg) - return &rpc.UpdateOrganizationUserResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}, nil - } - client := pbAuth.NewAuthClient(etcdConn) - - reply, err := client.UserRegister(context.Background(), authReq) - if err != nil { - errMsg := "UserRegister failed " + err.Error() - log.NewError(req.OperationID, errMsg) - return &rpc.UpdateOrganizationUserResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}, nil - } - if reply.CommonResp.ErrCode != 0 { - errMsg := "UserRegister failed " + reply.CommonResp.ErrMsg - log.NewError(req.OperationID, errMsg) - return &rpc.UpdateOrganizationUserResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}, nil - } - ->>>>>>> shichuang log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc args ", req.String()) if !token_verify.IsManagerUserID(req.OpUserID) && req.OpUserID != req.OrganizationUser.UserID { errMsg := req.OperationID + " " + req.OpUserID + " is not app manager" From 1f8c2ba8c5cbcca6fc0521e3cb01ecdfdf3f88b7 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 21 Aug 2022 22:18:50 +0800 Subject: [PATCH 206/230] fix bug --- internal/api/client_init/init_config.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/internal/api/client_init/init_config.go b/internal/api/client_init/init_config.go index ec9120601..f36a22065 100644 --- a/internal/api/client_init/init_config.go +++ b/internal/api/client_init/init_config.go @@ -4,6 +4,7 @@ import ( api "Open_IM/pkg/base_info" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "Open_IM/pkg/utils" "net/http" @@ -19,6 +20,13 @@ func SetClientInitConfig(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) + err, _ := token_verify.ParseTokenGetUserID(c.Request.Header.Get("token"), req.OperationID) + if err != nil { + errMsg := "ParseTokenGetUserID failed " + err.Error() + c.Request.Header.Get("token") + log.NewError(req.OperationID, errMsg, errMsg) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } m := make(map[string]interface{}) if req.DiscoverPageURL != nil { m["discover_page_url"] = *req.DiscoverPageURL @@ -28,6 +36,7 @@ func SetClientInitConfig(c *gin.Context) { if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return } } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) @@ -43,6 +52,13 @@ func GetClientInitConfig(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) + err, _ := token_verify.ParseTokenGetUserID(c.Request.Header.Get("token"), req.OperationID) + if err != nil { + errMsg := "ParseTokenGetUserID failed " + err.Error() + c.Request.Header.Get("token") + log.NewError(req.OperationID, errMsg, errMsg) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } config, err := imdb.GetClientInitConfig() if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) From d57729d3d77707485c739ec056be9080fd58fd8c Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 21 Aug 2022 22:22:59 +0800 Subject: [PATCH 207/230] fix bug --- pkg/common/db/mysql_model/im_mysql_model/client_config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/client_config.go b/pkg/common/db/mysql_model/im_mysql_model/client_config.go index 1167dd214..9e508ef3e 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/client_config.go +++ b/pkg/common/db/mysql_model/im_mysql_model/client_config.go @@ -3,7 +3,7 @@ package im_mysql_model import "Open_IM/pkg/common/db" func SetClientInitConfig(m map[string]interface{}) error { - result := db.DB.MysqlDB.DefaultGormDB().Model(&db.ClientInitConfig{}).Updates(m) + result := db.DB.MysqlDB.DefaultGormDB().Model(&db.ClientInitConfig{}).Where("1=1").Updates(m) if result.Error != nil { return result.Error } From 782ad07940a40003be0751f68706b7c2a62f06f3 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sun, 21 Aug 2022 22:28:10 +0800 Subject: [PATCH 208/230] fix bug --- internal/api/client_init/init_config.go | 8 ++++++-- pkg/common/db/mysql_model/im_mysql_model/client_config.go | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/internal/api/client_init/init_config.go b/internal/api/client_init/init_config.go index f36a22065..de08fc90c 100644 --- a/internal/api/client_init/init_config.go +++ b/internal/api/client_init/init_config.go @@ -9,6 +9,7 @@ import ( "net/http" "github.com/gin-gonic/gin" + "github.com/jinzhu/gorm" ) func SetClientInitConfig(c *gin.Context) { @@ -61,8 +62,11 @@ func GetClientInitConfig(c *gin.Context) { } config, err := imdb.GetClientInitConfig() if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + if !gorm.IsRecordNotFoundError(err) { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } } resp.Data.DiscoverPageURL = config.DiscoverPageURL log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp ", resp) diff --git a/pkg/common/db/mysql_model/im_mysql_model/client_config.go b/pkg/common/db/mysql_model/im_mysql_model/client_config.go index 9e508ef3e..ae932ed92 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/client_config.go +++ b/pkg/common/db/mysql_model/im_mysql_model/client_config.go @@ -7,7 +7,7 @@ func SetClientInitConfig(m map[string]interface{}) error { if result.Error != nil { return result.Error } - if result.RowsAffected == 1 { + if result.RowsAffected == 0 { err := db.DB.MysqlDB.DefaultGormDB().Model(&db.ClientInitConfig{}).Create(m).Error return err } From c1a2dee0e95250be4fee56d97395edcb03f9d324 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Sun, 21 Aug 2022 23:25:39 +0800 Subject: [PATCH 209/230] pb update --- internal/api/conversation/conversation.go | 2 +- internal/rpc/user/user.go | 9 +- pkg/base_info/conversation_api_struct.go | 29 +- pkg/proto/conversation/conversation.pb.go | 117 ++--- pkg/proto/conversation/conversation.proto | 2 + pkg/proto/user/user.pb.go | 563 ++++++++-------------- pkg/proto/user/user.proto | 28 +- 7 files changed, 298 insertions(+), 452 deletions(-) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index e150a20e1..cfda0abb8 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -26,7 +26,7 @@ func SetConversation(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.Conversation = &pbUser.Conversation{} + reqPb.Conversation = &pbConversation.Conversation{} err := utils.CopyStructFields(&reqPb, req) err = utils.CopyStructFields(reqPb.Conversation, req.Conversation) if err != nil { diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 813af55ff..9bf06b8fc 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -11,6 +11,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbConversation "Open_IM/pkg/proto/conversation" pbFriend "Open_IM/pkg/proto/friend" pbOrganization "Open_IM/pkg/proto/organization" sdkws "Open_IM/pkg/proto/sdk_ws" @@ -85,7 +86,7 @@ func (s *userServer) Run() { log.NewInfo("0", "rpc user success") } -func syncPeerUserConversation(conversation *pbUser.Conversation, operationID string) error { +func syncPeerUserConversation(conversation *pbConversation.Conversation, operationID string) error { peerUserConversation := db.Conversation{ OwnerUserID: conversation.UserID, ConversationID: utils.GetConversationIDBySessionType(conversation.OwnerUserID, constant.SingleChatType), @@ -180,7 +181,7 @@ func (s *userServer) BatchSetConversations(ctx context.Context, req *pbUser.Batc func (s *userServer) GetAllConversations(ctx context.Context, req *pbUser.GetAllConversationsReq) (*pbUser.GetAllConversationsResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.GetAllConversationsResp{Conversations: []*pbUser.Conversation{}} + resp := &pbUser.GetAllConversationsResp{Conversations: []*pbConversation.Conversation{}} conversations, err := rocksCache.GetUserAllConversationList(req.OwnerUserID) log.NewDebug(req.OperationID, "conversations: ", conversations) if err != nil { @@ -198,7 +199,7 @@ func (s *userServer) GetAllConversations(ctx context.Context, req *pbUser.GetAll func (s *userServer) GetConversation(ctx context.Context, req *pbUser.GetConversationReq) (*pbUser.GetConversationResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.GetConversationResp{Conversation: &pbUser.Conversation{}} + resp := &pbUser.GetConversationResp{Conversation: &pbConversation.Conversation{}} conversation, err := rocksCache.GetConversationFromCache(req.OwnerUserID, req.ConversationID) log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation) if err != nil { @@ -216,7 +217,7 @@ func (s *userServer) GetConversation(ctx context.Context, req *pbUser.GetConvers func (s *userServer) GetConversations(ctx context.Context, req *pbUser.GetConversationsReq) (*pbUser.GetConversationsResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.GetConversationsResp{Conversations: []*pbUser.Conversation{}} + resp := &pbUser.GetConversationsResp{Conversations: []*pbConversation.Conversation{}} conversations, err := rocksCache.GetConversationsFromCache(req.OwnerUserID, req.ConversationIDs) log.NewDebug("", utils.GetSelfFuncName(), "conversations", conversations) if err != nil { diff --git a/pkg/base_info/conversation_api_struct.go b/pkg/base_info/conversation_api_struct.go index 30890f7eb..c0cb9fccf 100644 --- a/pkg/base_info/conversation_api_struct.go +++ b/pkg/base_info/conversation_api_struct.go @@ -33,20 +33,21 @@ type SetReceiveMessageOptResp struct { } type Conversation struct { - OwnerUserID string `json:"ownerUserID" binding:"required"` - ConversationID string `json:"conversationID" binding:"required"` - ConversationType int32 `json:"conversationType" binding:"required"` - UserID string `json:"userID"` - GroupID string `json:"groupID"` - RecvMsgOpt int32 `json:"recvMsgOpt" binding:"omitempty,oneof=0 1 2"` - UnreadCount int32 `json:"unreadCount" binding:"omitempty"` - DraftTextTime int64 `json:"draftTextTime"` - IsPinned bool `json:"isPinned" binding:"omitempty"` - IsPrivateChat bool `json:"isPrivateChat"` - GroupAtType int32 `json:"groupAtType"` - IsNotInGroup bool `json:"isNotInGroup"` - AttachedInfo string `json:"attachedInfo"` - Ex string `json:"ex"` + OwnerUserID string `json:"ownerUserID" binding:"required"` + ConversationID string `json:"conversationID" binding:"required"` + ConversationType int32 `json:"conversationType" binding:"required"` + UserID string `json:"userID"` + GroupID string `json:"groupID"` + RecvMsgOpt int32 `json:"recvMsgOpt" binding:"omitempty,oneof=0 1 2"` + UnreadCount int32 `json:"unreadCount" binding:"omitempty"` + DraftTextTime int64 `json:"draftTextTime"` + IsPinned bool `json:"isPinned" binding:"omitempty"` + IsPrivateChat bool `json:"isPrivateChat"` + GroupAtType int32 `json:"groupAtType"` + IsNotInGroup bool `json:"isNotInGroup"` + UpdateUnreadCountTime int64 ` json:"updateUnreadCountTime"` + AttachedInfo string `json:"attachedInfo"` + Ex string `json:"ex"` } type SetConversationReq struct { diff --git a/pkg/proto/conversation/conversation.pb.go b/pkg/proto/conversation/conversation.pb.go index bf76bfe67..de4d4a793 100644 --- a/pkg/proto/conversation/conversation.pb.go +++ b/pkg/proto/conversation/conversation.pb.go @@ -35,7 +35,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_conversation_e6bf38f800b9bed2, []int{0} + return fileDescriptor_conversation_ac55165355a1b6e6, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -70,30 +70,31 @@ func (m *CommonResp) GetErrMsg() string { } type Conversation struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` - ConversationID string `protobuf:"bytes,2,opt,name=conversationID" json:"conversationID,omitempty"` - RecvMsgOpt int32 `protobuf:"varint,3,opt,name=recvMsgOpt" json:"recvMsgOpt,omitempty"` - ConversationType int32 `protobuf:"varint,4,opt,name=conversationType" json:"conversationType,omitempty"` - UserID string `protobuf:"bytes,5,opt,name=userID" json:"userID,omitempty"` - GroupID string `protobuf:"bytes,6,opt,name=groupID" json:"groupID,omitempty"` - UnreadCount int32 `protobuf:"varint,7,opt,name=unreadCount" json:"unreadCount,omitempty"` - DraftTextTime int64 `protobuf:"varint,8,opt,name=draftTextTime" json:"draftTextTime,omitempty"` - IsPinned bool `protobuf:"varint,9,opt,name=isPinned" json:"isPinned,omitempty"` - AttachedInfo string `protobuf:"bytes,10,opt,name=attachedInfo" json:"attachedInfo,omitempty"` - IsPrivateChat bool `protobuf:"varint,11,opt,name=isPrivateChat" json:"isPrivateChat,omitempty"` - GroupAtType int32 `protobuf:"varint,12,opt,name=groupAtType" json:"groupAtType,omitempty"` - IsNotInGroup bool `protobuf:"varint,13,opt,name=isNotInGroup" json:"isNotInGroup,omitempty"` - Ex string `protobuf:"bytes,14,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` + ConversationID string `protobuf:"bytes,2,opt,name=conversationID" json:"conversationID,omitempty"` + RecvMsgOpt int32 `protobuf:"varint,3,opt,name=recvMsgOpt" json:"recvMsgOpt,omitempty"` + ConversationType int32 `protobuf:"varint,4,opt,name=conversationType" json:"conversationType,omitempty"` + UserID string `protobuf:"bytes,5,opt,name=userID" json:"userID,omitempty"` + GroupID string `protobuf:"bytes,6,opt,name=groupID" json:"groupID,omitempty"` + UnreadCount int32 `protobuf:"varint,7,opt,name=unreadCount" json:"unreadCount,omitempty"` + DraftTextTime int64 `protobuf:"varint,8,opt,name=draftTextTime" json:"draftTextTime,omitempty"` + IsPinned bool `protobuf:"varint,9,opt,name=isPinned" json:"isPinned,omitempty"` + AttachedInfo string `protobuf:"bytes,10,opt,name=attachedInfo" json:"attachedInfo,omitempty"` + IsPrivateChat bool `protobuf:"varint,11,opt,name=isPrivateChat" json:"isPrivateChat,omitempty"` + GroupAtType int32 `protobuf:"varint,12,opt,name=groupAtType" json:"groupAtType,omitempty"` + IsNotInGroup bool `protobuf:"varint,13,opt,name=isNotInGroup" json:"isNotInGroup,omitempty"` + Ex string `protobuf:"bytes,14,opt,name=ex" json:"ex,omitempty"` + UpdateUnreadCountTime int64 `protobuf:"varint,15,opt,name=updateUnreadCountTime" json:"updateUnreadCountTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *Conversation) Reset() { *m = Conversation{} } func (m *Conversation) String() string { return proto.CompactTextString(m) } func (*Conversation) ProtoMessage() {} func (*Conversation) Descriptor() ([]byte, []int) { - return fileDescriptor_conversation_e6bf38f800b9bed2, []int{1} + return fileDescriptor_conversation_ac55165355a1b6e6, []int{1} } func (m *Conversation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Conversation.Unmarshal(m, b) @@ -211,6 +212,13 @@ func (m *Conversation) GetEx() string { return "" } +func (m *Conversation) GetUpdateUnreadCountTime() int64 { + if m != nil { + return m.UpdateUnreadCountTime + } + return 0 +} + type ModifyConversationFieldReq struct { Conversation *Conversation `protobuf:"bytes,1,opt,name=conversation" json:"conversation,omitempty"` FieldType int32 `protobuf:"varint,2,opt,name=fieldType" json:"fieldType,omitempty"` @@ -225,7 +233,7 @@ func (m *ModifyConversationFieldReq) Reset() { *m = ModifyConversationFi func (m *ModifyConversationFieldReq) String() string { return proto.CompactTextString(m) } func (*ModifyConversationFieldReq) ProtoMessage() {} func (*ModifyConversationFieldReq) Descriptor() ([]byte, []int) { - return fileDescriptor_conversation_e6bf38f800b9bed2, []int{2} + return fileDescriptor_conversation_ac55165355a1b6e6, []int{2} } func (m *ModifyConversationFieldReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ModifyConversationFieldReq.Unmarshal(m, b) @@ -284,7 +292,7 @@ func (m *ModifyConversationFieldResp) Reset() { *m = ModifyConversationF func (m *ModifyConversationFieldResp) String() string { return proto.CompactTextString(m) } func (*ModifyConversationFieldResp) ProtoMessage() {} func (*ModifyConversationFieldResp) Descriptor() ([]byte, []int) { - return fileDescriptor_conversation_e6bf38f800b9bed2, []int{3} + return fileDescriptor_conversation_ac55165355a1b6e6, []int{3} } func (m *ModifyConversationFieldResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ModifyConversationFieldResp.Unmarshal(m, b) @@ -391,39 +399,40 @@ var _Conversation_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("conversation/conversation.proto", fileDescriptor_conversation_e6bf38f800b9bed2) + proto.RegisterFile("conversation/conversation.proto", fileDescriptor_conversation_ac55165355a1b6e6) } -var fileDescriptor_conversation_e6bf38f800b9bed2 = []byte{ - // 475 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdf, 0x8a, 0xd3, 0x40, - 0x14, 0x87, 0x49, 0xbb, 0xdb, 0x6d, 0x4e, 0xbb, 0x45, 0xe6, 0x42, 0x87, 0xae, 0x7f, 0x42, 0x10, - 0x89, 0x5e, 0x54, 0x58, 0x6f, 0x04, 0x61, 0x41, 0x53, 0x94, 0x80, 0xd5, 0x65, 0xa8, 0x08, 0xde, - 0xc5, 0xe6, 0xb4, 0x3b, 0x60, 0x67, 0xe2, 0xcc, 0xb4, 0x76, 0x6f, 0x7c, 0x32, 0x9f, 0xc4, 0xa7, - 0x91, 0x99, 0xb4, 0xbb, 0x33, 0x95, 0xc2, 0x5e, 0x9e, 0x2f, 0x27, 0xbf, 0xf9, 0x26, 0xe7, 0x04, - 0x9e, 0xcc, 0xa4, 0x58, 0xa3, 0xd2, 0xa5, 0xe1, 0x52, 0xbc, 0xf4, 0x8b, 0x51, 0xad, 0xa4, 0x91, - 0xa4, 0xef, 0xb3, 0xf4, 0x02, 0x20, 0x97, 0xcb, 0xa5, 0x14, 0x0c, 0x75, 0x4d, 0x28, 0x9c, 0xa0, - 0x52, 0xb9, 0xac, 0x90, 0x46, 0x49, 0x94, 0x1d, 0xb3, 0x5d, 0x49, 0xee, 0x43, 0x07, 0x95, 0x9a, - 0xe8, 0x05, 0x6d, 0x25, 0x51, 0x16, 0xb3, 0x6d, 0x95, 0xfe, 0x6d, 0x43, 0x3f, 0xf7, 0x02, 0x49, - 0x02, 0x3d, 0xf9, 0x4b, 0xa0, 0xfa, 0xa2, 0x51, 0x15, 0x63, 0x17, 0x13, 0x33, 0x1f, 0x91, 0x67, - 0x30, 0xf0, 0x15, 0x8a, 0xf1, 0x36, 0x72, 0x8f, 0x92, 0xc7, 0x00, 0x0a, 0x67, 0xeb, 0x89, 0x5e, - 0x7c, 0xae, 0x0d, 0x6d, 0x3b, 0x1f, 0x8f, 0x90, 0x17, 0x70, 0xcf, 0x7f, 0x63, 0x7a, 0x5d, 0x23, - 0x3d, 0x72, 0x5d, 0xff, 0x71, 0xab, 0xbf, 0x6a, 0x84, 0x8e, 0x1b, 0xfd, 0xa6, 0xb2, 0x17, 0x5e, - 0x28, 0xb9, 0xaa, 0x8b, 0x31, 0xed, 0xb8, 0x07, 0xbb, 0xd2, 0xde, 0x63, 0x25, 0x14, 0x96, 0x55, - 0x2e, 0x57, 0xc2, 0xd0, 0x13, 0x17, 0xec, 0x23, 0xf2, 0x14, 0x4e, 0x2b, 0x55, 0xce, 0xcd, 0x14, - 0x37, 0x66, 0xca, 0x97, 0x48, 0xbb, 0x49, 0x94, 0xb5, 0x59, 0x08, 0xc9, 0x10, 0xba, 0x5c, 0x5f, - 0x72, 0x21, 0xb0, 0xa2, 0x71, 0x12, 0x65, 0x5d, 0x76, 0x53, 0x93, 0x14, 0xfa, 0xa5, 0x31, 0xe5, - 0xec, 0x0a, 0xab, 0x42, 0xcc, 0x25, 0x05, 0xa7, 0x10, 0x30, 0x7b, 0x0a, 0xd7, 0x97, 0x8a, 0xaf, - 0x4b, 0x83, 0xf9, 0x55, 0x69, 0x68, 0xcf, 0x85, 0x84, 0xd0, 0xda, 0x3a, 0xf1, 0xb7, 0xc6, 0x7d, - 0x86, 0x7e, 0x63, 0xeb, 0x21, 0x7b, 0x16, 0xd7, 0x9f, 0xa4, 0x29, 0xc4, 0x07, 0x4b, 0xe9, 0xa9, - 0x8b, 0x09, 0x18, 0x19, 0x40, 0x0b, 0x37, 0x74, 0xe0, 0x2c, 0x5a, 0xb8, 0x49, 0xff, 0x44, 0x30, - 0x9c, 0xc8, 0x8a, 0xcf, 0xaf, 0xfd, 0x11, 0xbf, 0xe7, 0xf8, 0xa3, 0x62, 0xf8, 0x93, 0x5c, 0x40, - 0xb0, 0x4b, 0x6e, 0xd6, 0xbd, 0xf3, 0xe1, 0x28, 0x58, 0x3a, 0xff, 0x4d, 0x16, 0xf4, 0x93, 0x87, - 0x10, 0xcf, 0x6d, 0x96, 0x53, 0x6e, 0x39, 0xe5, 0x5b, 0x60, 0xc7, 0xdf, 0x0c, 0xe9, 0x23, 0xd7, - 0x76, 0xfc, 0xed, 0x2c, 0x66, 0x1e, 0x71, 0x8b, 0x56, 0xa3, 0xda, 0xed, 0xd0, 0xd1, 0x76, 0xd1, - 0x6e, 0x51, 0xfa, 0x15, 0xce, 0x0e, 0xda, 0xeb, 0x9a, 0xbc, 0x06, 0x98, 0xdd, 0xac, 0xfe, 0x56, - 0x9e, 0xee, 0xcb, 0xef, 0x9e, 0x33, 0xaf, 0xf7, 0xfc, 0x77, 0x78, 0x71, 0x22, 0xe0, 0xc1, 0x81, - 0x83, 0x48, 0x16, 0x06, 0x1e, 0xfe, 0x9a, 0xc3, 0xe7, 0x77, 0xec, 0xd4, 0xf5, 0xbb, 0x47, 0xdf, - 0xce, 0x46, 0xc1, 0xaf, 0xfd, 0xc6, 0x2f, 0xbe, 0x77, 0xdc, 0x8f, 0xfe, 0xea, 0x5f, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x8d, 0x8a, 0xf6, 0x60, 0x0b, 0x04, 0x00, 0x00, +var fileDescriptor_conversation_ac55165355a1b6e6 = []byte{ + // 494 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0x5f, 0x8b, 0x13, 0x31, + 0x14, 0xc5, 0x99, 0x6e, 0xb7, 0xdb, 0xde, 0x76, 0xab, 0x04, 0xd4, 0xd0, 0xf5, 0x4f, 0x19, 0x44, + 0x46, 0x1f, 0x2a, 0xac, 0x3e, 0x08, 0xc2, 0x82, 0x4e, 0x51, 0x06, 0xac, 0x2e, 0xa1, 0x8b, 0xe0, + 0xdb, 0xd8, 0xb9, 0xed, 0x06, 0x6c, 0x32, 0x26, 0x99, 0xda, 0x7d, 0xf1, 0x33, 0xf8, 0x81, 0xfc, + 0x70, 0x92, 0x4c, 0xbb, 0x4d, 0x56, 0x0b, 0x3e, 0xde, 0x5f, 0xee, 0x9c, 0x9c, 0x33, 0x3d, 0x1d, + 0x78, 0x34, 0x93, 0x62, 0x85, 0x4a, 0xe7, 0x86, 0x4b, 0xf1, 0xdc, 0x1f, 0x46, 0xa5, 0x92, 0x46, + 0x92, 0x9e, 0xcf, 0xe2, 0x33, 0x80, 0x54, 0x2e, 0x97, 0x52, 0x30, 0xd4, 0x25, 0xa1, 0x70, 0x84, + 0x4a, 0xa5, 0xb2, 0x40, 0x1a, 0x0d, 0xa3, 0xe4, 0x90, 0x6d, 0x47, 0x72, 0x17, 0x5a, 0xa8, 0xd4, + 0x44, 0x2f, 0x68, 0x63, 0x18, 0x25, 0x1d, 0xb6, 0x99, 0xe2, 0x5f, 0x4d, 0xe8, 0xa5, 0x9e, 0x20, + 0x19, 0x42, 0x57, 0xfe, 0x10, 0xa8, 0x2e, 0x34, 0xaa, 0x6c, 0xec, 0x64, 0x3a, 0xcc, 0x47, 0xe4, + 0x09, 0xf4, 0x7d, 0x0b, 0xd9, 0x78, 0x23, 0x79, 0x83, 0x92, 0x87, 0x00, 0x0a, 0x67, 0xab, 0x89, + 0x5e, 0x7c, 0x2a, 0x0d, 0x3d, 0x70, 0x7e, 0x3c, 0x42, 0x9e, 0xc1, 0x6d, 0xff, 0x89, 0xe9, 0x55, + 0x89, 0xb4, 0xe9, 0xb6, 0xfe, 0xe2, 0xd6, 0x7e, 0x55, 0x1b, 0x3a, 0xac, 0xed, 0xd7, 0x93, 0x0d, + 0xbc, 0x50, 0xb2, 0x2a, 0xb3, 0x31, 0x6d, 0xb9, 0x83, 0xed, 0x68, 0x73, 0x54, 0x42, 0x61, 0x5e, + 0xa4, 0xb2, 0x12, 0x86, 0x1e, 0x39, 0x61, 0x1f, 0x91, 0xc7, 0x70, 0x5c, 0xa8, 0x7c, 0x6e, 0xa6, + 0xb8, 0x36, 0x53, 0xbe, 0x44, 0xda, 0x1e, 0x46, 0xc9, 0x01, 0x0b, 0x21, 0x19, 0x40, 0x9b, 0xeb, + 0x73, 0x2e, 0x04, 0x16, 0xb4, 0x33, 0x8c, 0x92, 0x36, 0xbb, 0x9e, 0x49, 0x0c, 0xbd, 0xdc, 0x98, + 0x7c, 0x76, 0x89, 0x45, 0x26, 0xe6, 0x92, 0x82, 0xb3, 0x10, 0x30, 0x7b, 0x0b, 0xd7, 0xe7, 0x8a, + 0xaf, 0x72, 0x83, 0xe9, 0x65, 0x6e, 0x68, 0xd7, 0x89, 0x84, 0xd0, 0xba, 0x75, 0xc6, 0xdf, 0x18, + 0xf7, 0x1a, 0x7a, 0xb5, 0x5b, 0x0f, 0xd9, 0xbb, 0xb8, 0xfe, 0x28, 0x4d, 0x26, 0xde, 0x5b, 0x4a, + 0x8f, 0x9d, 0x4c, 0xc0, 0x48, 0x1f, 0x1a, 0xb8, 0xa6, 0x7d, 0xe7, 0xa2, 0x81, 0x6b, 0xf2, 0x12, + 0xee, 0x54, 0x65, 0x91, 0x1b, 0xbc, 0xd8, 0xc5, 0x76, 0x49, 0x6f, 0xb9, 0xa4, 0xff, 0x3e, 0x8c, + 0x7f, 0x47, 0x30, 0x98, 0xc8, 0x82, 0xcf, 0xaf, 0xfc, 0x62, 0xbc, 0xe3, 0xf8, 0xad, 0x60, 0xf8, + 0x9d, 0x9c, 0x41, 0xd0, 0x40, 0xd7, 0x90, 0xee, 0xe9, 0x60, 0x14, 0x54, 0xd5, 0x7f, 0x92, 0x05, + 0xfb, 0xe4, 0x3e, 0x74, 0xe6, 0x56, 0xcb, 0x05, 0x6d, 0xb8, 0xa0, 0x3b, 0x60, 0x4b, 0x53, 0xff, + 0xb4, 0x1f, 0xb8, 0xb6, 0xa5, 0x39, 0x48, 0x3a, 0xcc, 0x23, 0xae, 0x9e, 0x25, 0xaa, 0x6d, 0xf3, + 0x9a, 0x9b, 0x7a, 0xee, 0x50, 0xfc, 0x19, 0x4e, 0xf6, 0xba, 0xd7, 0x25, 0x79, 0x05, 0x30, 0xbb, + 0xfe, 0xc3, 0x6c, 0xcc, 0xd3, 0x9b, 0xe6, 0xb7, 0xe7, 0xcc, 0xdb, 0x3d, 0xfd, 0x19, 0x06, 0x27, + 0x02, 0xee, 0xed, 0xb9, 0x88, 0x24, 0xa1, 0xe0, 0xfe, 0xb7, 0x39, 0x78, 0xfa, 0x9f, 0x9b, 0xba, + 0x7c, 0xfb, 0xe0, 0xcb, 0xc9, 0x28, 0xf8, 0x20, 0xbc, 0xf6, 0x87, 0xaf, 0x2d, 0xf7, 0x79, 0x78, + 0xf1, 0x27, 0x00, 0x00, 0xff, 0xff, 0x12, 0x56, 0xaa, 0x7b, 0x41, 0x04, 0x00, 0x00, } diff --git a/pkg/proto/conversation/conversation.proto b/pkg/proto/conversation/conversation.proto index 5ae5f1142..48973fdc1 100644 --- a/pkg/proto/conversation/conversation.proto +++ b/pkg/proto/conversation/conversation.proto @@ -21,6 +21,8 @@ message Conversation{ int32 groupAtType = 12; bool isNotInGroup = 13; string ex = 14; + int64 updateUnreadCountTime = 15; + } message ModifyConversationFieldReq{ Conversation conversation = 1; diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index df189119c..dc064a136 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -6,6 +6,7 @@ package user // import "./user" import proto "github.com/golang/protobuf/proto" import fmt "fmt" import math "math" +import conversation "Open_IM/pkg/proto/conversation" import sdk_ws "Open_IM/pkg/proto/sdk_ws" import ( @@ -36,7 +37,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{0} + return fileDescriptor_user_862a17c60dc96c16, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +84,7 @@ func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } func (*DeleteUsersReq) ProtoMessage() {} func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{1} + return fileDescriptor_user_862a17c60dc96c16, []int{1} } func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) @@ -136,7 +137,7 @@ func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } func (*DeleteUsersResp) ProtoMessage() {} func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{2} + return fileDescriptor_user_862a17c60dc96c16, []int{2} } func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) @@ -182,7 +183,7 @@ func (m *GetAllUserIDReq) Reset() { *m = GetAllUserIDReq{} } func (m *GetAllUserIDReq) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDReq) ProtoMessage() {} func (*GetAllUserIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{3} + return fileDescriptor_user_862a17c60dc96c16, []int{3} } func (m *GetAllUserIDReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDReq.Unmarshal(m, b) @@ -228,7 +229,7 @@ func (m *GetAllUserIDResp) Reset() { *m = GetAllUserIDResp{} } func (m *GetAllUserIDResp) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDResp) ProtoMessage() {} func (*GetAllUserIDResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{4} + return fileDescriptor_user_862a17c60dc96c16, []int{4} } func (m *GetAllUserIDResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDResp.Unmarshal(m, b) @@ -275,7 +276,7 @@ func (m *AccountCheckReq) Reset() { *m = AccountCheckReq{} } func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) } func (*AccountCheckReq) ProtoMessage() {} func (*AccountCheckReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{5} + return fileDescriptor_user_862a17c60dc96c16, []int{5} } func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b) @@ -328,7 +329,7 @@ func (m *AccountCheckResp) Reset() { *m = AccountCheckResp{} } func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp) ProtoMessage() {} func (*AccountCheckResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{6} + return fileDescriptor_user_862a17c60dc96c16, []int{6} } func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b) @@ -374,7 +375,7 @@ func (m *AccountCheckResp_SingleUserStatus) Reset() { *m = AccountCheckR func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{6, 0} + return fileDescriptor_user_862a17c60dc96c16, []int{6, 0} } func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b) @@ -421,7 +422,7 @@ func (m *GetUserInfoReq) Reset() { *m = GetUserInfoReq{} } func (m *GetUserInfoReq) String() string { return proto.CompactTextString(m) } func (*GetUserInfoReq) ProtoMessage() {} func (*GetUserInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{7} + return fileDescriptor_user_862a17c60dc96c16, []int{7} } func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) @@ -474,7 +475,7 @@ func (m *GetUserInfoResp) Reset() { *m = GetUserInfoResp{} } func (m *GetUserInfoResp) String() string { return proto.CompactTextString(m) } func (*GetUserInfoResp) ProtoMessage() {} func (*GetUserInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{8} + return fileDescriptor_user_862a17c60dc96c16, []int{8} } func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) @@ -521,7 +522,7 @@ func (m *UpdateUserInfoReq) Reset() { *m = UpdateUserInfoReq{} } func (m *UpdateUserInfoReq) String() string { return proto.CompactTextString(m) } func (*UpdateUserInfoReq) ProtoMessage() {} func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{9} + return fileDescriptor_user_862a17c60dc96c16, []int{9} } func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) @@ -573,7 +574,7 @@ func (m *UpdateUserInfoResp) Reset() { *m = UpdateUserInfoResp{} } func (m *UpdateUserInfoResp) String() string { return proto.CompactTextString(m) } func (*UpdateUserInfoResp) ProtoMessage() {} func (*UpdateUserInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{10} + return fileDescriptor_user_862a17c60dc96c16, []int{10} } func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b) @@ -613,7 +614,7 @@ func (m *SetGlobalRecvMessageOptReq) Reset() { *m = SetGlobalRecvMessage func (m *SetGlobalRecvMessageOptReq) String() string { return proto.CompactTextString(m) } func (*SetGlobalRecvMessageOptReq) ProtoMessage() {} func (*SetGlobalRecvMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{11} + return fileDescriptor_user_862a17c60dc96c16, []int{11} } func (m *SetGlobalRecvMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGlobalRecvMessageOptReq.Unmarshal(m, b) @@ -665,7 +666,7 @@ func (m *SetGlobalRecvMessageOptResp) Reset() { *m = SetGlobalRecvMessag func (m *SetGlobalRecvMessageOptResp) String() string { return proto.CompactTextString(m) } func (*SetGlobalRecvMessageOptResp) ProtoMessage() {} func (*SetGlobalRecvMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{12} + return fileDescriptor_user_862a17c60dc96c16, []int{12} } func (m *SetGlobalRecvMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGlobalRecvMessageOptResp.Unmarshal(m, b) @@ -692,162 +693,20 @@ func (m *SetGlobalRecvMessageOptResp) GetCommonResp() *CommonResp { return nil } -type Conversation struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - ConversationID string `protobuf:"bytes,2,opt,name=ConversationID" json:"ConversationID,omitempty"` - RecvMsgOpt int32 `protobuf:"varint,3,opt,name=RecvMsgOpt" json:"RecvMsgOpt,omitempty"` - ConversationType int32 `protobuf:"varint,4,opt,name=ConversationType" json:"ConversationType,omitempty"` - UserID string `protobuf:"bytes,5,opt,name=UserID" json:"UserID,omitempty"` - GroupID string `protobuf:"bytes,6,opt,name=GroupID" json:"GroupID,omitempty"` - UnreadCount int32 `protobuf:"varint,7,opt,name=UnreadCount" json:"UnreadCount,omitempty"` - DraftTextTime int64 `protobuf:"varint,8,opt,name=DraftTextTime" json:"DraftTextTime,omitempty"` - IsPinned bool `protobuf:"varint,9,opt,name=IsPinned" json:"IsPinned,omitempty"` - AttachedInfo string `protobuf:"bytes,10,opt,name=AttachedInfo" json:"AttachedInfo,omitempty"` - IsPrivateChat bool `protobuf:"varint,11,opt,name=IsPrivateChat" json:"IsPrivateChat,omitempty"` - GroupAtType int32 `protobuf:"varint,12,opt,name=GroupAtType" json:"GroupAtType,omitempty"` - IsNotInGroup bool `protobuf:"varint,13,opt,name=IsNotInGroup" json:"IsNotInGroup,omitempty"` - Ex string `protobuf:"bytes,14,opt,name=Ex" json:"Ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Conversation) Reset() { *m = Conversation{} } -func (m *Conversation) String() string { return proto.CompactTextString(m) } -func (*Conversation) ProtoMessage() {} -func (*Conversation) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{13} -} -func (m *Conversation) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Conversation.Unmarshal(m, b) -} -func (m *Conversation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Conversation.Marshal(b, m, deterministic) -} -func (dst *Conversation) XXX_Merge(src proto.Message) { - xxx_messageInfo_Conversation.Merge(dst, src) -} -func (m *Conversation) XXX_Size() int { - return xxx_messageInfo_Conversation.Size(m) -} -func (m *Conversation) XXX_DiscardUnknown() { - xxx_messageInfo_Conversation.DiscardUnknown(m) -} - -var xxx_messageInfo_Conversation proto.InternalMessageInfo - -func (m *Conversation) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID - } - return "" -} - -func (m *Conversation) GetConversationID() string { - if m != nil { - return m.ConversationID - } - return "" -} - -func (m *Conversation) GetRecvMsgOpt() int32 { - if m != nil { - return m.RecvMsgOpt - } - return 0 -} - -func (m *Conversation) GetConversationType() int32 { - if m != nil { - return m.ConversationType - } - return 0 -} - -func (m *Conversation) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *Conversation) GetGroupID() string { - if m != nil { - return m.GroupID - } - return "" -} - -func (m *Conversation) GetUnreadCount() int32 { - if m != nil { - return m.UnreadCount - } - return 0 -} - -func (m *Conversation) GetDraftTextTime() int64 { - if m != nil { - return m.DraftTextTime - } - return 0 -} - -func (m *Conversation) GetIsPinned() bool { - if m != nil { - return m.IsPinned - } - return false -} - -func (m *Conversation) GetAttachedInfo() string { - if m != nil { - return m.AttachedInfo - } - return "" -} - -func (m *Conversation) GetIsPrivateChat() bool { - if m != nil { - return m.IsPrivateChat - } - return false -} - -func (m *Conversation) GetGroupAtType() int32 { - if m != nil { - return m.GroupAtType - } - return 0 -} - -func (m *Conversation) GetIsNotInGroup() bool { - if m != nil { - return m.IsNotInGroup - } - return false -} - -func (m *Conversation) GetEx() string { - if m != nil { - return m.Ex - } - return "" -} - type SetConversationReq struct { - Conversation *Conversation `protobuf:"bytes,1,opt,name=Conversation" json:"Conversation,omitempty"` - NotificationType int32 `protobuf:"varint,2,opt,name=notificationType" json:"notificationType,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Conversation *conversation.Conversation `protobuf:"bytes,1,opt,name=Conversation" json:"Conversation,omitempty"` + NotificationType int32 `protobuf:"varint,2,opt,name=notificationType" json:"notificationType,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *SetConversationReq) Reset() { *m = SetConversationReq{} } func (m *SetConversationReq) String() string { return proto.CompactTextString(m) } func (*SetConversationReq) ProtoMessage() {} func (*SetConversationReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{14} + return fileDescriptor_user_862a17c60dc96c16, []int{13} } func (m *SetConversationReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetConversationReq.Unmarshal(m, b) @@ -867,7 +726,7 @@ func (m *SetConversationReq) XXX_DiscardUnknown() { var xxx_messageInfo_SetConversationReq proto.InternalMessageInfo -func (m *SetConversationReq) GetConversation() *Conversation { +func (m *SetConversationReq) GetConversation() *conversation.Conversation { if m != nil { return m.Conversation } @@ -899,7 +758,7 @@ func (m *SetConversationResp) Reset() { *m = SetConversationResp{} } func (m *SetConversationResp) String() string { return proto.CompactTextString(m) } func (*SetConversationResp) ProtoMessage() {} func (*SetConversationResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{15} + return fileDescriptor_user_862a17c60dc96c16, []int{14} } func (m *SetConversationResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetConversationResp.Unmarshal(m, b) @@ -941,7 +800,7 @@ func (m *SetRecvMsgOptReq) Reset() { *m = SetRecvMsgOptReq{} } func (m *SetRecvMsgOptReq) String() string { return proto.CompactTextString(m) } func (*SetRecvMsgOptReq) ProtoMessage() {} func (*SetRecvMsgOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{16} + return fileDescriptor_user_862a17c60dc96c16, []int{15} } func (m *SetRecvMsgOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetRecvMsgOptReq.Unmarshal(m, b) @@ -1007,7 +866,7 @@ func (m *SetRecvMsgOptResp) Reset() { *m = SetRecvMsgOptResp{} } func (m *SetRecvMsgOptResp) String() string { return proto.CompactTextString(m) } func (*SetRecvMsgOptResp) ProtoMessage() {} func (*SetRecvMsgOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{17} + return fileDescriptor_user_862a17c60dc96c16, []int{16} } func (m *SetRecvMsgOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetRecvMsgOptResp.Unmarshal(m, b) @@ -1047,7 +906,7 @@ func (m *GetConversationReq) Reset() { *m = GetConversationReq{} } func (m *GetConversationReq) String() string { return proto.CompactTextString(m) } func (*GetConversationReq) ProtoMessage() {} func (*GetConversationReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{18} + return fileDescriptor_user_862a17c60dc96c16, []int{17} } func (m *GetConversationReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationReq.Unmarshal(m, b) @@ -1089,18 +948,18 @@ func (m *GetConversationReq) GetOperationID() string { } type GetConversationResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - Conversation *Conversation `protobuf:"bytes,2,opt,name=Conversation" json:"Conversation,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Conversation *conversation.Conversation `protobuf:"bytes,2,opt,name=Conversation" json:"Conversation,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetConversationResp) Reset() { *m = GetConversationResp{} } func (m *GetConversationResp) String() string { return proto.CompactTextString(m) } func (*GetConversationResp) ProtoMessage() {} func (*GetConversationResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{19} + return fileDescriptor_user_862a17c60dc96c16, []int{18} } func (m *GetConversationResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationResp.Unmarshal(m, b) @@ -1127,7 +986,7 @@ func (m *GetConversationResp) GetCommonResp() *CommonResp { return nil } -func (m *GetConversationResp) GetConversation() *Conversation { +func (m *GetConversationResp) GetConversation() *conversation.Conversation { if m != nil { return m.Conversation } @@ -1147,7 +1006,7 @@ func (m *GetConversationsReq) Reset() { *m = GetConversationsReq{} } func (m *GetConversationsReq) String() string { return proto.CompactTextString(m) } func (*GetConversationsReq) ProtoMessage() {} func (*GetConversationsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{20} + return fileDescriptor_user_862a17c60dc96c16, []int{19} } func (m *GetConversationsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationsReq.Unmarshal(m, b) @@ -1189,18 +1048,18 @@ func (m *GetConversationsReq) GetOperationID() string { } type GetConversationsResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations" json:"Conversations,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Conversations []*conversation.Conversation `protobuf:"bytes,2,rep,name=Conversations" json:"Conversations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetConversationsResp) Reset() { *m = GetConversationsResp{} } func (m *GetConversationsResp) String() string { return proto.CompactTextString(m) } func (*GetConversationsResp) ProtoMessage() {} func (*GetConversationsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{21} + return fileDescriptor_user_862a17c60dc96c16, []int{20} } func (m *GetConversationsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationsResp.Unmarshal(m, b) @@ -1227,7 +1086,7 @@ func (m *GetConversationsResp) GetCommonResp() *CommonResp { return nil } -func (m *GetConversationsResp) GetConversations() []*Conversation { +func (m *GetConversationsResp) GetConversations() []*conversation.Conversation { if m != nil { return m.Conversations } @@ -1246,7 +1105,7 @@ func (m *GetAllConversationsReq) Reset() { *m = GetAllConversationsReq{} func (m *GetAllConversationsReq) String() string { return proto.CompactTextString(m) } func (*GetAllConversationsReq) ProtoMessage() {} func (*GetAllConversationsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{22} + return fileDescriptor_user_862a17c60dc96c16, []int{21} } func (m *GetAllConversationsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationsReq.Unmarshal(m, b) @@ -1281,18 +1140,18 @@ func (m *GetAllConversationsReq) GetOperationID() string { } type GetAllConversationsResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations" json:"Conversations,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Conversations []*conversation.Conversation `protobuf:"bytes,2,rep,name=Conversations" json:"Conversations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetAllConversationsResp) Reset() { *m = GetAllConversationsResp{} } func (m *GetAllConversationsResp) String() string { return proto.CompactTextString(m) } func (*GetAllConversationsResp) ProtoMessage() {} func (*GetAllConversationsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{23} + return fileDescriptor_user_862a17c60dc96c16, []int{22} } func (m *GetAllConversationsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationsResp.Unmarshal(m, b) @@ -1319,7 +1178,7 @@ func (m *GetAllConversationsResp) GetCommonResp() *CommonResp { return nil } -func (m *GetAllConversationsResp) GetConversations() []*Conversation { +func (m *GetAllConversationsResp) GetConversations() []*conversation.Conversation { if m != nil { return m.Conversations } @@ -1327,20 +1186,20 @@ func (m *GetAllConversationsResp) GetConversations() []*Conversation { } type BatchSetConversationsReq struct { - Conversations []*Conversation `protobuf:"bytes,1,rep,name=Conversations" json:"Conversations,omitempty"` - OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - NotificationType int32 `protobuf:"varint,3,opt,name=notificationType" json:"notificationType,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Conversations []*conversation.Conversation `protobuf:"bytes,1,rep,name=Conversations" json:"Conversations,omitempty"` + OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + NotificationType int32 `protobuf:"varint,3,opt,name=notificationType" json:"notificationType,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *BatchSetConversationsReq) Reset() { *m = BatchSetConversationsReq{} } func (m *BatchSetConversationsReq) String() string { return proto.CompactTextString(m) } func (*BatchSetConversationsReq) ProtoMessage() {} func (*BatchSetConversationsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{24} + return fileDescriptor_user_862a17c60dc96c16, []int{23} } func (m *BatchSetConversationsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BatchSetConversationsReq.Unmarshal(m, b) @@ -1360,7 +1219,7 @@ func (m *BatchSetConversationsReq) XXX_DiscardUnknown() { var xxx_messageInfo_BatchSetConversationsReq proto.InternalMessageInfo -func (m *BatchSetConversationsReq) GetConversations() []*Conversation { +func (m *BatchSetConversationsReq) GetConversations() []*conversation.Conversation { if m != nil { return m.Conversations } @@ -1401,7 +1260,7 @@ func (m *BatchSetConversationsResp) Reset() { *m = BatchSetConversations func (m *BatchSetConversationsResp) String() string { return proto.CompactTextString(m) } func (*BatchSetConversationsResp) ProtoMessage() {} func (*BatchSetConversationsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{25} + return fileDescriptor_user_862a17c60dc96c16, []int{24} } func (m *BatchSetConversationsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BatchSetConversationsResp.Unmarshal(m, b) @@ -1454,7 +1313,7 @@ func (m *ResignUserReq) Reset() { *m = ResignUserReq{} } func (m *ResignUserReq) String() string { return proto.CompactTextString(m) } func (*ResignUserReq) ProtoMessage() {} func (*ResignUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{26} + return fileDescriptor_user_862a17c60dc96c16, []int{25} } func (m *ResignUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResignUserReq.Unmarshal(m, b) @@ -1499,7 +1358,7 @@ func (m *ResignUserResp) Reset() { *m = ResignUserResp{} } func (m *ResignUserResp) String() string { return proto.CompactTextString(m) } func (*ResignUserResp) ProtoMessage() {} func (*ResignUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{27} + return fileDescriptor_user_862a17c60dc96c16, []int{26} } func (m *ResignUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResignUserResp.Unmarshal(m, b) @@ -1538,7 +1397,7 @@ func (m *GetUserByIdReq) Reset() { *m = GetUserByIdReq{} } func (m *GetUserByIdReq) String() string { return proto.CompactTextString(m) } func (*GetUserByIdReq) ProtoMessage() {} func (*GetUserByIdReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{28} + return fileDescriptor_user_862a17c60dc96c16, []int{27} } func (m *GetUserByIdReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserByIdReq.Unmarshal(m, b) @@ -1597,7 +1456,7 @@ func (m *User) Reset() { *m = User{} } func (m *User) String() string { return proto.CompactTextString(m) } func (*User) ProtoMessage() {} func (*User) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{29} + return fileDescriptor_user_862a17c60dc96c16, []int{28} } func (m *User) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_User.Unmarshal(m, b) @@ -1734,7 +1593,7 @@ func (m *GetUserByIdResp) Reset() { *m = GetUserByIdResp{} } func (m *GetUserByIdResp) String() string { return proto.CompactTextString(m) } func (*GetUserByIdResp) ProtoMessage() {} func (*GetUserByIdResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{30} + return fileDescriptor_user_862a17c60dc96c16, []int{29} } func (m *GetUserByIdResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserByIdResp.Unmarshal(m, b) @@ -1781,7 +1640,7 @@ func (m *GetUsersByNameReq) Reset() { *m = GetUsersByNameReq{} } func (m *GetUsersByNameReq) String() string { return proto.CompactTextString(m) } func (*GetUsersByNameReq) ProtoMessage() {} func (*GetUsersByNameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{31} + return fileDescriptor_user_862a17c60dc96c16, []int{30} } func (m *GetUsersByNameReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersByNameReq.Unmarshal(m, b) @@ -1835,7 +1694,7 @@ func (m *GetUsersByNameResp) Reset() { *m = GetUsersByNameResp{} } func (m *GetUsersByNameResp) String() string { return proto.CompactTextString(m) } func (*GetUsersByNameResp) ProtoMessage() {} func (*GetUsersByNameResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{32} + return fileDescriptor_user_862a17c60dc96c16, []int{31} } func (m *GetUsersByNameResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersByNameResp.Unmarshal(m, b) @@ -1895,7 +1754,7 @@ func (m *AlterUserReq) Reset() { *m = AlterUserReq{} } func (m *AlterUserReq) String() string { return proto.CompactTextString(m) } func (*AlterUserReq) ProtoMessage() {} func (*AlterUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{33} + return fileDescriptor_user_862a17c60dc96c16, []int{32} } func (m *AlterUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AlterUserReq.Unmarshal(m, b) @@ -1989,7 +1848,7 @@ func (m *AlterUserResp) Reset() { *m = AlterUserResp{} } func (m *AlterUserResp) String() string { return proto.CompactTextString(m) } func (*AlterUserResp) ProtoMessage() {} func (*AlterUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{34} + return fileDescriptor_user_862a17c60dc96c16, []int{33} } func (m *AlterUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AlterUserResp.Unmarshal(m, b) @@ -2029,7 +1888,7 @@ func (m *GetUsersReq) Reset() { *m = GetUsersReq{} } func (m *GetUsersReq) String() string { return proto.CompactTextString(m) } func (*GetUsersReq) ProtoMessage() {} func (*GetUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{35} + return fileDescriptor_user_862a17c60dc96c16, []int{34} } func (m *GetUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersReq.Unmarshal(m, b) @@ -2084,7 +1943,7 @@ func (m *GetUsersResp) Reset() { *m = GetUsersResp{} } func (m *GetUsersResp) String() string { return proto.CompactTextString(m) } func (*GetUsersResp) ProtoMessage() {} func (*GetUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{36} + return fileDescriptor_user_862a17c60dc96c16, []int{35} } func (m *GetUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersResp.Unmarshal(m, b) @@ -2151,7 +2010,7 @@ func (m *AddUserReq) Reset() { *m = AddUserReq{} } func (m *AddUserReq) String() string { return proto.CompactTextString(m) } func (*AddUserReq) ProtoMessage() {} func (*AddUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{37} + return fileDescriptor_user_862a17c60dc96c16, []int{36} } func (m *AddUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserReq.Unmarshal(m, b) @@ -2245,7 +2104,7 @@ func (m *AddUserResp) Reset() { *m = AddUserResp{} } func (m *AddUserResp) String() string { return proto.CompactTextString(m) } func (*AddUserResp) ProtoMessage() {} func (*AddUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{38} + return fileDescriptor_user_862a17c60dc96c16, []int{37} } func (m *AddUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserResp.Unmarshal(m, b) @@ -2286,7 +2145,7 @@ func (m *BlockUserReq) Reset() { *m = BlockUserReq{} } func (m *BlockUserReq) String() string { return proto.CompactTextString(m) } func (*BlockUserReq) ProtoMessage() {} func (*BlockUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{39} + return fileDescriptor_user_862a17c60dc96c16, []int{38} } func (m *BlockUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlockUserReq.Unmarshal(m, b) @@ -2345,7 +2204,7 @@ func (m *BlockUserResp) Reset() { *m = BlockUserResp{} } func (m *BlockUserResp) String() string { return proto.CompactTextString(m) } func (*BlockUserResp) ProtoMessage() {} func (*BlockUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{40} + return fileDescriptor_user_862a17c60dc96c16, []int{39} } func (m *BlockUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlockUserResp.Unmarshal(m, b) @@ -2385,7 +2244,7 @@ func (m *UnBlockUserReq) Reset() { *m = UnBlockUserReq{} } func (m *UnBlockUserReq) String() string { return proto.CompactTextString(m) } func (*UnBlockUserReq) ProtoMessage() {} func (*UnBlockUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{41} + return fileDescriptor_user_862a17c60dc96c16, []int{40} } func (m *UnBlockUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UnBlockUserReq.Unmarshal(m, b) @@ -2437,7 +2296,7 @@ func (m *UnBlockUserResp) Reset() { *m = UnBlockUserResp{} } func (m *UnBlockUserResp) String() string { return proto.CompactTextString(m) } func (*UnBlockUserResp) ProtoMessage() {} func (*UnBlockUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{42} + return fileDescriptor_user_862a17c60dc96c16, []int{41} } func (m *UnBlockUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UnBlockUserResp.Unmarshal(m, b) @@ -2477,7 +2336,7 @@ func (m *GetBlockUsersReq) Reset() { *m = GetBlockUsersReq{} } func (m *GetBlockUsersReq) String() string { return proto.CompactTextString(m) } func (*GetBlockUsersReq) ProtoMessage() {} func (*GetBlockUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{43} + return fileDescriptor_user_862a17c60dc96c16, []int{42} } func (m *GetBlockUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlockUsersReq.Unmarshal(m, b) @@ -2531,7 +2390,7 @@ func (m *BlockUser) Reset() { *m = BlockUser{} } func (m *BlockUser) String() string { return proto.CompactTextString(m) } func (*BlockUser) ProtoMessage() {} func (*BlockUser) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{44} + return fileDescriptor_user_862a17c60dc96c16, []int{43} } func (m *BlockUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlockUser.Unmarshal(m, b) @@ -2586,7 +2445,7 @@ func (m *GetBlockUsersResp) Reset() { *m = GetBlockUsersResp{} } func (m *GetBlockUsersResp) String() string { return proto.CompactTextString(m) } func (*GetBlockUsersResp) ProtoMessage() {} func (*GetBlockUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{45} + return fileDescriptor_user_862a17c60dc96c16, []int{44} } func (m *GetBlockUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlockUsersResp.Unmarshal(m, b) @@ -2646,7 +2505,7 @@ func (m *GetBlockUserByIdReq) Reset() { *m = GetBlockUserByIdReq{} } func (m *GetBlockUserByIdReq) String() string { return proto.CompactTextString(m) } func (*GetBlockUserByIdReq) ProtoMessage() {} func (*GetBlockUserByIdReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{46} + return fileDescriptor_user_862a17c60dc96c16, []int{45} } func (m *GetBlockUserByIdReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlockUserByIdReq.Unmarshal(m, b) @@ -2691,7 +2550,7 @@ func (m *GetBlockUserByIdResp) Reset() { *m = GetBlockUserByIdResp{} } func (m *GetBlockUserByIdResp) String() string { return proto.CompactTextString(m) } func (*GetBlockUserByIdResp) ProtoMessage() {} func (*GetBlockUserByIdResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{47} + return fileDescriptor_user_862a17c60dc96c16, []int{46} } func (m *GetBlockUserByIdResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlockUserByIdResp.Unmarshal(m, b) @@ -2731,7 +2590,7 @@ func (m *DeleteUserReq) Reset() { *m = DeleteUserReq{} } func (m *DeleteUserReq) String() string { return proto.CompactTextString(m) } func (*DeleteUserReq) ProtoMessage() {} func (*DeleteUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{48} + return fileDescriptor_user_862a17c60dc96c16, []int{47} } func (m *DeleteUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUserReq.Unmarshal(m, b) @@ -2783,7 +2642,7 @@ func (m *DeleteUserResp) Reset() { *m = DeleteUserResp{} } func (m *DeleteUserResp) String() string { return proto.CompactTextString(m) } func (*DeleteUserResp) ProtoMessage() {} func (*DeleteUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_461ee57002abbf2b, []int{49} + return fileDescriptor_user_862a17c60dc96c16, []int{48} } func (m *DeleteUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUserResp.Unmarshal(m, b) @@ -2825,7 +2684,6 @@ func init() { proto.RegisterType((*UpdateUserInfoResp)(nil), "user.UpdateUserInfoResp") proto.RegisterType((*SetGlobalRecvMessageOptReq)(nil), "user.SetGlobalRecvMessageOptReq") proto.RegisterType((*SetGlobalRecvMessageOptResp)(nil), "user.SetGlobalRecvMessageOptResp") - proto.RegisterType((*Conversation)(nil), "user.Conversation") proto.RegisterType((*SetConversationReq)(nil), "user.SetConversationReq") proto.RegisterType((*SetConversationResp)(nil), "user.SetConversationResp") proto.RegisterType((*SetRecvMsgOptReq)(nil), "user.SetRecvMsgOptReq") @@ -3662,136 +3520,127 @@ var _User_serviceDesc = grpc.ServiceDesc{ Metadata: "user/user.proto", } -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_461ee57002abbf2b) } +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_862a17c60dc96c16) } -var fileDescriptor_user_461ee57002abbf2b = []byte{ - // 2047 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0xcd, 0x6f, 0x23, 0x49, - 0x15, 0x57, 0xfb, 0x63, 0x12, 0x3f, 0xc7, 0x8e, 0x53, 0x93, 0x9d, 0xf4, 0xf6, 0xc2, 0x90, 0x6d, - 0x2d, 0x4b, 0x34, 0x12, 0x09, 0x0c, 0x88, 0x41, 0x8b, 0x60, 0x37, 0x76, 0x32, 0x96, 0xd1, 0x4c, - 0x12, 0xb5, 0x67, 0x24, 0x84, 0x10, 0x51, 0x8f, 0x5d, 0x71, 0x5a, 0xb1, 0xbb, 0x7b, 0xbb, 0xca, - 0xf3, 0xc1, 0x65, 0xd1, 0x00, 0x17, 0xc4, 0x85, 0x13, 0x82, 0x03, 0x7f, 0x0c, 0x70, 0xe2, 0x3f, - 0x80, 0x0b, 0xff, 0x03, 0x17, 0x2e, 0x1c, 0x50, 0x7d, 0x74, 0x77, 0x55, 0x77, 0x3b, 0x36, 0x9d, - 0x68, 0xf6, 0x92, 0xe4, 0xfd, 0xaa, 0xea, 0xf5, 0x7b, 0xaf, 0xde, 0x57, 0x55, 0x05, 0x36, 0xe7, - 0x04, 0x47, 0x07, 0xec, 0xc7, 0x7e, 0x18, 0x05, 0x34, 0x40, 0x35, 0xf6, 0xb7, 0xf5, 0xe1, 0x69, - 0x88, 0xfd, 0xf3, 0xc1, 0xd3, 0x83, 0xf0, 0x6a, 0x72, 0xc0, 0x07, 0x0e, 0xc8, 0xf8, 0xea, 0xfc, - 0x15, 0x39, 0x78, 0x45, 0xc4, 0x44, 0xfb, 0x47, 0x00, 0xbd, 0x60, 0x36, 0x0b, 0x7c, 0x07, 0x93, - 0x10, 0x99, 0xb0, 0x86, 0xa3, 0xa8, 0x17, 0x8c, 0xb1, 0x69, 0xec, 0x1a, 0x7b, 0x75, 0x27, 0x26, - 0xd1, 0x3d, 0xb8, 0x83, 0xa3, 0xe8, 0x29, 0x99, 0x98, 0x95, 0x5d, 0x63, 0xaf, 0xe1, 0x48, 0xca, - 0xfe, 0x05, 0xb4, 0x8f, 0xf0, 0x14, 0x53, 0xfc, 0x9c, 0xe0, 0x88, 0x38, 0xf8, 0x73, 0xf4, 0x00, - 0x3a, 0x29, 0x32, 0x38, 0x7a, 0xe2, 0x11, 0x6a, 0x56, 0x76, 0xab, 0x7b, 0x0d, 0x27, 0x87, 0x23, - 0x0b, 0xd6, 0x4f, 0x43, 0x41, 0x9b, 0x55, 0xce, 0x37, 0xa1, 0xd1, 0x2e, 0x34, 0x4f, 0x43, 0x1c, - 0xb9, 0xd4, 0x0b, 0xfc, 0xc1, 0x91, 0x59, 0xe3, 0xc3, 0x2a, 0x64, 0x07, 0xb0, 0xa9, 0x7d, 0x9b, - 0x84, 0xe8, 0x5b, 0xaa, 0x3a, 0x5c, 0x87, 0xe6, 0xc3, 0xce, 0x3e, 0x37, 0x4c, 0x8a, 0x3b, 0xaa, - 0xca, 0x0f, 0xa0, 0xf3, 0xd8, 0xf5, 0xa6, 0x78, 0x9c, 0x17, 0x37, 0x8b, 0xdb, 0xa7, 0xb0, 0xd9, - 0xc7, 0xf4, 0x70, 0x3a, 0x15, 0x18, 0xd3, 0xd6, 0x82, 0xf5, 0x20, 0xd6, 0xc0, 0x10, 0x1a, 0x04, - 0x8a, 0x06, 0x81, 0xa2, 0x81, 0x30, 0x9c, 0x0a, 0xd9, 0x63, 0xe8, 0xe8, 0x0c, 0x4b, 0xa9, 0x70, - 0x1f, 0x20, 0x27, 0xbc, 0x82, 0xd8, 0x6f, 0x60, 0xf3, 0x70, 0x34, 0x0a, 0xe6, 0x3e, 0xed, 0x5d, - 0xe2, 0xd1, 0x15, 0x13, 0x7b, 0x0f, 0x36, 0xf9, 0xdf, 0xca, 0x3a, 0x83, 0xaf, 0xcb, 0xc2, 0xda, - 0x16, 0x55, 0xae, 0xdf, 0xa2, 0x6a, 0x7e, 0x8b, 0xfe, 0x65, 0x40, 0x47, 0xff, 0xb6, 0xd0, 0x70, - 0xb4, 0x82, 0x86, 0xe9, 0x1c, 0xd4, 0x07, 0x70, 0x30, 0x99, 0x4f, 0x69, 0xa2, 0x61, 0xf3, 0xe1, - 0x37, 0xc4, 0x8a, 0x2c, 0xf7, 0xfd, 0xa1, 0xe7, 0x4f, 0xa6, 0xdc, 0x25, 0x86, 0xd4, 0xa5, 0x73, - 0xe2, 0x28, 0x4b, 0xad, 0x33, 0xe8, 0x64, 0xc7, 0x99, 0x6b, 0xcf, 0xd5, 0x0d, 0x94, 0x14, 0xfa, - 0x08, 0x5a, 0xae, 0x60, 0x2e, 0x26, 0x4a, 0xf5, 0x75, 0xd0, 0xf6, 0xa1, 0xdd, 0xc7, 0x94, 0x1b, - 0xc4, 0xbf, 0x08, 0x98, 0x6d, 0xef, 0x03, 0xcc, 0xb3, 0x66, 0x55, 0x90, 0x1b, 0x5a, 0xf4, 0xd7, - 0x06, 0x77, 0xc2, 0xf4, 0x83, 0xa5, 0x0c, 0xfa, 0x29, 0x6c, 0xc4, 0x1c, 0xb8, 0x94, 0x55, 0x6e, - 0xd2, 0x0f, 0xf6, 0x09, 0x8e, 0x5e, 0xe2, 0xe8, 0xdc, 0x0d, 0xbd, 0xf3, 0xd0, 0x8d, 0xdc, 0x19, - 0xd9, 0x4f, 0x3e, 0xa4, 0x2d, 0xb0, 0x7f, 0x6b, 0xc0, 0xd6, 0xf3, 0x70, 0xec, 0xca, 0x70, 0x96, - 0xaa, 0x3f, 0x82, 0xf5, 0x98, 0x94, 0x62, 0x5c, 0xcb, 0x32, 0x99, 0xbc, 0xcc, 0x26, 0x41, 0xde, - 0x26, 0x6a, 0x18, 0x3d, 0x06, 0x94, 0x95, 0xa5, 0x8c, 0x55, 0xec, 0xb7, 0x06, 0x58, 0x43, 0x4c, - 0xfb, 0xd3, 0xe0, 0x85, 0x3b, 0x75, 0xf0, 0xe8, 0xe5, 0x53, 0x4c, 0x88, 0x3b, 0xc1, 0xa7, 0x21, - 0x65, 0xda, 0x2d, 0x72, 0x94, 0xa5, 0x71, 0xce, 0x92, 0xcc, 0x24, 0x65, 0x4a, 0x26, 0xa7, 0x21, - 0xe5, 0x7a, 0xd4, 0x9d, 0x1c, 0x6e, 0x9f, 0xc2, 0x07, 0x0b, 0x65, 0x28, 0xa5, 0xd5, 0x3f, 0xab, - 0xb0, 0xd1, 0x0b, 0xfc, 0x97, 0x38, 0x22, 0x5c, 0x1e, 0xee, 0x64, 0xaf, 0x7c, 0x1c, 0x69, 0x69, - 0x4b, 0x85, 0xd0, 0xc7, 0xd0, 0x56, 0x57, 0x24, 0x4a, 0x65, 0x50, 0xe6, 0xea, 0x39, 0x8d, 0x14, - 0x84, 0xe9, 0xad, 0xae, 0x78, 0xf6, 0x26, 0xc4, 0x3c, 0x91, 0xd7, 0x9d, 0x1c, 0xce, 0xac, 0x2b, - 0x05, 0xaa, 0x0b, 0xeb, 0x4a, 0x59, 0x4c, 0x58, 0xeb, 0x47, 0xc1, 0x3c, 0x1c, 0x1c, 0x99, 0x77, - 0xf8, 0x40, 0x4c, 0x32, 0x3d, 0x9e, 0xfb, 0x11, 0x76, 0xc7, 0x3d, 0x16, 0x8f, 0xe6, 0x1a, 0x67, - 0xac, 0x42, 0x2c, 0x84, 0x8f, 0x22, 0xf7, 0x82, 0x3e, 0xc3, 0xaf, 0xe9, 0x33, 0x6f, 0x86, 0xcd, - 0xf5, 0x5d, 0x63, 0xaf, 0xea, 0xe8, 0x20, 0x73, 0xbe, 0x01, 0x39, 0xf3, 0x7c, 0x1f, 0x8f, 0xcd, - 0xc6, 0xae, 0xb1, 0xb7, 0xee, 0x24, 0x34, 0xb2, 0x61, 0xe3, 0x90, 0x52, 0x77, 0x74, 0x89, 0xc7, - 0xdc, 0xab, 0x81, 0x8b, 0xa0, 0x61, 0xec, 0x2b, 0x03, 0x72, 0x16, 0x79, 0x2f, 0x5d, 0x8a, 0x7b, - 0x97, 0x2e, 0x35, 0x9b, 0x9c, 0x89, 0x0e, 0x32, 0x69, 0xb9, 0xe0, 0x87, 0x94, 0x9b, 0x61, 0x43, - 0x48, 0xab, 0x40, 0xec, 0x5b, 0x03, 0x72, 0x12, 0xd0, 0x81, 0xcf, 0x51, 0xb3, 0xc5, 0xd9, 0x68, - 0x18, 0x6a, 0x43, 0xe5, 0xf8, 0xb5, 0xd9, 0xe6, 0x52, 0x54, 0x8e, 0x5f, 0xdb, 0x7f, 0x32, 0x00, - 0x0d, 0x31, 0x55, 0xad, 0xc9, 0x5c, 0xf5, 0x7b, 0xfa, 0x96, 0x4b, 0x3f, 0x41, 0xb1, 0x9f, 0x28, - 0x93, 0x75, 0xd7, 0x78, 0x00, 0x1d, 0x3f, 0xa0, 0xde, 0x85, 0x37, 0x4a, 0x37, 0xac, 0x22, 0x36, - 0x2c, 0x8b, 0xaf, 0x90, 0xab, 0xfa, 0x70, 0x37, 0x27, 0x5b, 0x29, 0x17, 0xfe, 0xbb, 0x01, 0x9d, - 0x21, 0xa6, 0xa9, 0x67, 0x31, 0x1d, 0xdf, 0xa9, 0x1b, 0xe7, 0xac, 0x52, 0x5b, 0xcd, 0x2a, 0xf5, - 0xbc, 0x55, 0x8e, 0x61, 0x2b, 0xa3, 0x4b, 0x29, 0x9b, 0xfc, 0xd2, 0x00, 0xd4, 0xcf, 0xef, 0x7c, - 0x5e, 0x67, 0xa3, 0x50, 0xe7, 0x8c, 0xf5, 0x2a, 0x79, 0xeb, 0x2d, 0xdf, 0xdf, 0x2f, 0xe0, 0x6e, - 0xff, 0x36, 0xf6, 0x37, 0xe7, 0xae, 0x95, 0xd5, 0xdc, 0xd5, 0xfe, 0x95, 0x91, 0x93, 0x80, 0xac, - 0xe6, 0x1a, 0xac, 0x01, 0xd2, 0x0c, 0x42, 0x64, 0xe3, 0x94, 0x85, 0x57, 0x30, 0xc3, 0x5b, 0x03, - 0xb6, 0xf3, 0x52, 0x94, 0x32, 0xc4, 0xf7, 0xa1, 0xa5, 0xb1, 0x91, 0xbd, 0x4e, 0x91, 0x25, 0xf4, - 0x89, 0xf6, 0xcf, 0xe0, 0x9e, 0x68, 0x25, 0x4b, 0x18, 0x23, 0xa3, 0x62, 0x25, 0xaf, 0xe2, 0x6f, - 0x0c, 0xd8, 0x29, 0x64, 0xff, 0x8e, 0xb5, 0xfc, 0x9b, 0x01, 0x66, 0xd7, 0xa5, 0xa3, 0xcb, 0x61, - 0xc1, 0xae, 0xe7, 0xd8, 0x1a, 0x2b, 0xb2, 0x5d, 0x21, 0x18, 0x8a, 0x52, 0x40, 0x75, 0xb5, 0x14, - 0x50, 0x2b, 0x0a, 0x9c, 0xf7, 0x17, 0x68, 0x51, 0xca, 0x9e, 0x26, 0xac, 0x0d, 0xe7, 0xa3, 0x11, - 0x26, 0xb1, 0x13, 0xc7, 0x24, 0x2b, 0xaa, 0xe2, 0x14, 0xc3, 0x3b, 0xbc, 0x86, 0x23, 0x29, 0x7b, - 0x00, 0x2d, 0x07, 0x13, 0x6f, 0xe2, 0x33, 0xf5, 0x64, 0x6f, 0xc3, 0x35, 0x1d, 0xc7, 0xbd, 0x8d, - 0xa0, 0x56, 0x70, 0x8d, 0x2e, 0xb4, 0x55, 0x56, 0xa5, 0x72, 0xd9, 0x8f, 0x93, 0x26, 0xba, 0xfb, - 0x66, 0x30, 0xbe, 0x99, 0x3c, 0x7f, 0xa9, 0x42, 0x8d, 0x4d, 0x66, 0xe5, 0xf4, 0x2c, 0x0a, 0x2e, - 0xbc, 0x29, 0x3e, 0xbb, 0x0c, 0x68, 0x20, 0x19, 0x69, 0x18, 0x2b, 0xfd, 0x27, 0xde, 0xe8, 0xca, - 0x77, 0x67, 0x38, 0xee, 0x3b, 0x63, 0x5a, 0x11, 0xa1, 0xaa, 0x89, 0x70, 0x1f, 0xa0, 0x17, 0x61, - 0x97, 0x62, 0xde, 0x51, 0x88, 0xdd, 0x55, 0x10, 0x26, 0xe2, 0xd9, 0x65, 0xe0, 0xe3, 0x93, 0xf9, - 0xec, 0x05, 0x8e, 0xe2, 0x0a, 0xa0, 0x40, 0x68, 0x1b, 0xea, 0xc7, 0x33, 0xd7, 0x9b, 0xca, 0x86, - 0x46, 0x10, 0x0c, 0xed, 0x7a, 0x11, 0xbd, 0xe4, 0x8d, 0x4c, 0xc3, 0x11, 0x04, 0x93, 0x50, 0xf0, - 0x1e, 0x84, 0xbc, 0x7b, 0x69, 0x38, 0x09, 0xcd, 0x1a, 0x8f, 0x27, 0x2e, 0xa1, 0x4f, 0x82, 0x89, - 0xe7, 0x73, 0x61, 0x1a, 0xe2, 0x84, 0xa2, 0x81, 0x4c, 0x9e, 0x04, 0x18, 0x84, 0xb2, 0x83, 0x51, - 0x21, 0xa6, 0x51, 0x32, 0x9d, 0xf0, 0xee, 0xa5, 0xee, 0x28, 0x08, 0xb3, 0x44, 0x1f, 0xfb, 0x63, - 0x1c, 0xc9, 0xae, 0x45, 0x52, 0xc9, 0xba, 0x27, 0xde, 0xcc, 0xa3, 0xbc, 0x5d, 0x89, 0xd7, 0x71, - 0x84, 0xf9, 0xe5, 0x80, 0x74, 0xa7, 0xc1, 0xe8, 0x8a, 0x77, 0x2c, 0xeb, 0x4e, 0x4c, 0x8a, 0x8a, - 0x3b, 0xf1, 0x08, 0xc5, 0xd1, 0x20, 0x34, 0x37, 0x85, 0x0d, 0x53, 0xc4, 0x1e, 0x25, 0x87, 0x1c, - 0xe1, 0x10, 0x25, 0xcf, 0xc5, 0xfc, 0x1a, 0x44, 0x56, 0x13, 0x10, 0x73, 0xb9, 0x97, 0x72, 0xdc, - 0xfe, 0x83, 0x01, 0x5b, 0xf2, 0x2b, 0xa4, 0xfb, 0xe6, 0xc4, 0x9d, 0x61, 0x79, 0xa2, 0x67, 0x08, - 0x23, 0xe3, 0x13, 0x7d, 0x4c, 0xa3, 0x23, 0x80, 0x33, 0x77, 0xe2, 0xf9, 0x6a, 0x95, 0xfa, 0xa8, - 0xe0, 0x84, 0xe3, 0xe0, 0xcf, 0xe7, 0x98, 0xd0, 0x74, 0xae, 0xa3, 0xac, 0x5b, 0xa1, 0xa2, 0xfc, - 0x51, 0xd4, 0x76, 0x4d, 0x32, 0x12, 0xa2, 0x5d, 0xa8, 0x33, 0xc1, 0xe3, 0xc4, 0xa6, 0x6a, 0x24, - 0x06, 0xd0, 0x71, 0x81, 0x80, 0x5f, 0x2f, 0x14, 0x90, 0x84, 0x81, 0x4f, 0xf0, 0x02, 0x09, 0x63, - 0x1b, 0xcc, 0x67, 0x44, 0x66, 0xb9, 0x84, 0xb6, 0xff, 0x6b, 0xc0, 0xc6, 0xe1, 0x94, 0x8a, 0xcc, - 0x78, 0xa3, 0x50, 0xcd, 0x46, 0x4a, 0x35, 0x1f, 0x29, 0x6a, 0x7c, 0xd6, 0x32, 0xf1, 0x99, 0x44, - 0x51, 0x5d, 0x8d, 0xa2, 0xd4, 0x57, 0x45, 0x70, 0xc5, 0xbe, 0x5a, 0x1c, 0x5d, 0xdb, 0x50, 0x17, - 0xc9, 0x41, 0x84, 0x56, 0x3d, 0xc9, 0x0a, 0xf2, 0xf4, 0x39, 0x96, 0x21, 0x95, 0xd0, 0xf6, 0x21, - 0xb4, 0x14, 0xed, 0xcb, 0xf8, 0xa5, 0xfd, 0x7b, 0x03, 0x9a, 0xf1, 0xee, 0xc6, 0x05, 0x5a, 0x31, - 0x94, 0x91, 0x37, 0xd4, 0xed, 0xf8, 0x9d, 0xea, 0xd9, 0x55, 0xdd, 0xb3, 0xed, 0xbf, 0x1a, 0xb0, - 0x91, 0xca, 0x74, 0xc3, 0x70, 0xab, 0x16, 0x85, 0x5b, 0xc6, 0x37, 0xab, 0xb7, 0xe1, 0x9b, 0xb5, - 0x8c, 0x6f, 0xfe, 0xdb, 0x00, 0x38, 0x1c, 0x8f, 0x63, 0xcf, 0x5c, 0x6e, 0xd8, 0x8c, 0x07, 0x56, - 0xf2, 0x1e, 0xb8, 0xa8, 0x0a, 0x20, 0xa8, 0x29, 0x5e, 0x59, 0xfb, 0x12, 0x3d, 0xf2, 0x53, 0x68, - 0x26, 0x3a, 0x97, 0xf2, 0xc7, 0xdf, 0x19, 0xb0, 0xc1, 0xd3, 0xf2, 0xb2, 0x88, 0xfe, 0x18, 0xda, - 0xc7, 0xfe, 0xf8, 0xc8, 0x23, 0xee, 0x8b, 0xa9, 0xa8, 0x7e, 0xf2, 0x3c, 0xa5, 0xa3, 0xcb, 0x13, - 0x9c, 0xa6, 0x4f, 0x2d, 0x1f, 0x61, 0x8a, 0x34, 0xa5, 0x34, 0xba, 0x80, 0xf6, 0x73, 0x7f, 0x25, - 0x95, 0x96, 0x27, 0x29, 0x55, 0xd4, 0x6a, 0x46, 0xd4, 0x1e, 0x6c, 0x6a, 0xdf, 0x29, 0x25, 0xec, - 0x9f, 0x0d, 0x7e, 0x0b, 0x9c, 0xb0, 0xe1, 0x39, 0x41, 0x8f, 0x78, 0xe3, 0x76, 0x2a, 0x4d, 0x81, - 0x76, 0xb6, 0xb2, 0xf5, 0x27, 0xf3, 0x99, 0xcc, 0xf6, 0x1a, 0x66, 0x7f, 0x01, 0x8d, 0x84, 0x66, - 0x51, 0xce, 0x7e, 0x4b, 0x91, 0xb4, 0x28, 0xe7, 0xe3, 0x0f, 0xa0, 0xd3, 0xc5, 0x13, 0xcf, 0xcf, - 0x7b, 0x49, 0x0e, 0x2f, 0xf0, 0xa7, 0x6a, 0x91, 0x3f, 0xd9, 0xff, 0x10, 0x85, 0x5a, 0xb5, 0x50, - 0xa9, 0x0c, 0x75, 0x00, 0x90, 0xf2, 0x90, 0x79, 0x6a, 0x53, 0xac, 0x48, 0x37, 0x51, 0x99, 0xf2, - 0x2e, 0x52, 0xd6, 0x19, 0x3f, 0xc1, 0x26, 0xdf, 0x8c, 0xfb, 0xdf, 0x1d, 0x58, 0x63, 0xe4, 0xb9, - 0xf7, 0xff, 0x37, 0xc0, 0xc7, 0xfc, 0x34, 0x9a, 0xe1, 0x48, 0x42, 0xf4, 0x4d, 0x65, 0x1b, 0x65, - 0x0d, 0xc9, 0x29, 0x9f, 0xce, 0xb0, 0x2f, 0xa0, 0x95, 0xbe, 0xae, 0xdc, 0x4c, 0xa4, 0x6b, 0x63, - 0xa8, 0xab, 0xbe, 0x20, 0x95, 0xdb, 0xd8, 0x87, 0xff, 0x69, 0x8a, 0xda, 0x83, 0x3e, 0x49, 0x2a, - 0x2b, 0xbf, 0x99, 0xdb, 0x16, 0xab, 0xf4, 0x0b, 0x7a, 0xeb, 0xbd, 0x02, 0x94, 0x84, 0xa8, 0x07, - 0x6d, 0xfd, 0x16, 0x19, 0xed, 0x48, 0xef, 0xce, 0xde, 0x73, 0x5b, 0x66, 0xf1, 0x00, 0x09, 0xd1, - 0xcf, 0x61, 0x67, 0xc1, 0xed, 0x2d, 0xda, 0x15, 0x8b, 0x16, 0x5f, 0x30, 0x5b, 0x1f, 0x2e, 0x99, - 0x41, 0x42, 0xa6, 0xa0, 0xf2, 0xe6, 0x15, 0x2b, 0xa8, 0x3f, 0xc1, 0xc5, 0x0a, 0x66, 0x1f, 0xc7, - 0x7e, 0xc8, 0x4b, 0x7c, 0xf2, 0xda, 0x84, 0x52, 0x3b, 0xa8, 0x4f, 0x5a, 0xd6, 0xbd, 0x22, 0x58, - 0x2c, 0x57, 0x1f, 0x5b, 0xe2, 0xe5, 0x99, 0xa7, 0xa5, 0x78, 0x79, 0xee, 0xd5, 0xe7, 0x31, 0x6f, - 0xe9, 0xb5, 0xdb, 0x46, 0x33, 0xf9, 0x52, 0xe6, 0x16, 0xcb, 0x7a, 0x7f, 0xc1, 0x08, 0x09, 0x91, - 0xc3, 0x03, 0x26, 0x7b, 0x13, 0x81, 0xbe, 0xa2, 0x4a, 0x9d, 0xbd, 0x1a, 0xb0, 0xbe, 0x7a, 0xcd, - 0x28, 0x09, 0xd1, 0x80, 0x67, 0x60, 0x9d, 0x61, 0xb1, 0x08, 0x9c, 0x9b, 0xb5, 0x68, 0x88, 0x84, - 0xe8, 0x27, 0xf0, 0x5e, 0xe1, 0xd1, 0x1e, 0xdd, 0x97, 0xb1, 0xb6, 0xe0, 0xf6, 0xc2, 0xfa, 0xda, - 0xb5, 0xe3, 0xc2, 0x80, 0xc3, 0x62, 0x03, 0x0e, 0x17, 0x1a, 0xb0, 0xe8, 0xfa, 0xf5, 0x33, 0x68, - 0x69, 0xf7, 0x8f, 0xe8, 0x5e, 0x32, 0x57, 0xbb, 0x60, 0xb5, 0x76, 0x0a, 0x71, 0xe1, 0x84, 0xca, - 0xe9, 0x2c, 0x13, 0x65, 0x32, 0x83, 0x65, 0xa2, 0x2c, 0xc9, 0x42, 0xbd, 0xe4, 0xa8, 0x2f, 0x4f, - 0x36, 0x71, 0x94, 0xe5, 0x4e, 0x62, 0x96, 0x59, 0x3c, 0x40, 0x42, 0xf4, 0x88, 0xbf, 0x07, 0xca, - 0x3b, 0x07, 0x74, 0x57, 0xcc, 0xd3, 0x2e, 0x34, 0xac, 0xed, 0x3c, 0x48, 0x42, 0xf4, 0x5d, 0x68, - 0x24, 0xdd, 0x3b, 0x92, 0x17, 0x43, 0xea, 0x61, 0xc6, 0xba, 0x9b, 0xc3, 0x48, 0x88, 0xbe, 0x0d, - 0xeb, 0xb1, 0x10, 0x68, 0x4b, 0x17, 0x8a, 0xad, 0x41, 0x59, 0x88, 0x84, 0x68, 0x1f, 0xd6, 0x64, - 0x53, 0x86, 0x64, 0xea, 0x4a, 0xfb, 0x52, 0x6b, 0x2b, 0x83, 0x08, 0xc1, 0xd2, 0x1a, 0x8b, 0xb2, - 0x69, 0x39, 0x15, 0x4c, 0x6f, 0x36, 0x3e, 0x81, 0xa6, 0xd2, 0x7f, 0xc4, 0x1b, 0xa1, 0xb7, 0x3e, - 0xf1, 0x46, 0x64, 0x1b, 0x95, 0xcf, 0xa0, 0xa5, 0xd5, 0x54, 0x94, 0xc6, 0xbd, 0xd6, 0x8a, 0x58, - 0x3b, 0x85, 0x78, 0x12, 0x35, 0x5a, 0xa1, 0x51, 0xa2, 0x26, 0x5b, 0xd2, 0x94, 0xa8, 0xc9, 0xd7, - 0xa6, 0x47, 0x00, 0x69, 0xb6, 0x8a, 0x37, 0x54, 0x2b, 0x3f, 0xd6, 0x76, 0x1e, 0x24, 0x61, 0xb7, - 0xf5, 0xd3, 0xe6, 0x3e, 0xff, 0xc7, 0x87, 0x1f, 0xb0, 0x1f, 0x2f, 0xee, 0xf0, 0xff, 0x6a, 0xf8, - 0xce, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xa5, 0x63, 0x75, 0x08, 0x11, 0x21, 0x00, 0x00, +var fileDescriptor_user_862a17c60dc96c16 = []byte{ + // 1900 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcb, 0x6f, 0x23, 0x49, + 0x19, 0x57, 0xc7, 0xf6, 0x24, 0xf9, 0x1c, 0x3f, 0x52, 0x93, 0x9d, 0xf4, 0xf6, 0xc2, 0x90, 0x6d, + 0x2d, 0x4b, 0x34, 0x12, 0x0e, 0x3b, 0x20, 0x8d, 0xb4, 0x88, 0xdd, 0x89, 0x9d, 0x8c, 0x65, 0x34, + 0x33, 0x89, 0xda, 0x3b, 0x12, 0x42, 0x88, 0xa8, 0x63, 0x57, 0x9c, 0x56, 0xec, 0xee, 0xde, 0xae, + 0xf6, 0x8c, 0xc2, 0x65, 0x11, 0x20, 0x21, 0xad, 0xe0, 0xc0, 0x09, 0x71, 0xe1, 0xc0, 0x9f, 0x02, + 0x37, 0xc4, 0x3f, 0xc0, 0x89, 0xff, 0x81, 0x0b, 0x17, 0x0e, 0xa8, 0x1e, 0xdd, 0x5d, 0xd5, 0xd5, + 0x8e, 0x3d, 0x9d, 0x88, 0xb9, 0x24, 0xfe, 0x7e, 0xf5, 0xe8, 0xef, 0xf7, 0xd5, 0xf7, 0xa8, 0x07, + 0xb4, 0xe6, 0x04, 0x47, 0x07, 0xf4, 0x4f, 0x27, 0x8c, 0x82, 0x38, 0x40, 0x55, 0xfa, 0xdb, 0xfa, + 0xf0, 0x24, 0xc4, 0xfe, 0xd9, 0xe0, 0xc5, 0x41, 0x78, 0x35, 0x39, 0x60, 0x0d, 0x07, 0x64, 0x7c, + 0x75, 0xf6, 0x86, 0x1c, 0xbc, 0x21, 0xbc, 0xa3, 0xf5, 0x89, 0xde, 0x65, 0x14, 0xf8, 0xaf, 0x71, + 0x44, 0xdc, 0xd8, 0x0b, 0x7c, 0x45, 0xe0, 0x43, 0xec, 0xcf, 0x00, 0x7a, 0xc1, 0x6c, 0x16, 0xf8, + 0x0e, 0x26, 0x21, 0x32, 0x61, 0x1d, 0x47, 0x51, 0x2f, 0x18, 0x63, 0xd3, 0xd8, 0x33, 0xf6, 0x6b, + 0x4e, 0x22, 0xa2, 0x07, 0x70, 0x0f, 0x47, 0xd1, 0x0b, 0x32, 0x31, 0xd7, 0xf6, 0x8c, 0xfd, 0x4d, + 0x47, 0x48, 0xf6, 0x2f, 0xa0, 0x79, 0x84, 0xa7, 0x38, 0xc6, 0xaf, 0x08, 0x8e, 0x88, 0x83, 0xbf, + 0x44, 0x8f, 0xa0, 0x9d, 0x21, 0x83, 0xa3, 0xe7, 0x1e, 0x89, 0xcd, 0xb5, 0xbd, 0xca, 0xfe, 0xa6, + 0xa3, 0xe1, 0xc8, 0x82, 0x8d, 0x93, 0x90, 0xcb, 0x66, 0x85, 0xcd, 0x9b, 0xca, 0x68, 0x0f, 0xea, + 0x27, 0x21, 0x8e, 0x98, 0xb2, 0x83, 0x23, 0xb3, 0xca, 0x9a, 0x65, 0xc8, 0x0e, 0xa0, 0xa5, 0x7c, + 0x9b, 0x84, 0xe8, 0x7b, 0x32, 0x1d, 0xc6, 0xa1, 0xfe, 0xb8, 0xdd, 0x61, 0xb6, 0xcc, 0x70, 0x47, + 0xa6, 0xfc, 0x08, 0xda, 0xcf, 0x5c, 0x6f, 0x8a, 0xc7, 0xba, 0xba, 0x79, 0xdc, 0x3e, 0x81, 0x56, + 0x1f, 0xc7, 0x87, 0xd3, 0x29, 0xc7, 0x28, 0x5b, 0x0b, 0x36, 0x82, 0x84, 0x81, 0xc1, 0x19, 0x04, + 0x12, 0x83, 0x40, 0x62, 0xc0, 0x0d, 0x27, 0x43, 0xf6, 0x18, 0xda, 0xea, 0x84, 0xa5, 0x28, 0x3c, + 0x04, 0xd0, 0x94, 0x97, 0x10, 0xfb, 0x1a, 0x5a, 0x87, 0xa3, 0x51, 0x30, 0xf7, 0xe3, 0xde, 0x25, + 0x1e, 0x5d, 0x51, 0xb5, 0xf7, 0xa1, 0xc5, 0x7e, 0x4b, 0xe3, 0x0c, 0x36, 0x2e, 0x0f, 0x2b, 0x4b, + 0xb4, 0x76, 0xf3, 0x12, 0x55, 0xf4, 0x25, 0xfa, 0x97, 0x01, 0x6d, 0xf5, 0xdb, 0x9c, 0xe1, 0x68, + 0x05, 0x86, 0x59, 0x1f, 0xd4, 0x07, 0x70, 0x30, 0x99, 0x4f, 0xe3, 0x94, 0x61, 0xfd, 0xf1, 0x77, + 0xf8, 0x88, 0xfc, 0xec, 0x9d, 0xa1, 0xe7, 0x4f, 0xa6, 0xcc, 0x25, 0x86, 0xb1, 0x1b, 0xcf, 0x89, + 0x23, 0x0d, 0xb5, 0x4e, 0xa1, 0x9d, 0x6f, 0xa7, 0xae, 0x3d, 0x97, 0x17, 0x50, 0x48, 0xe8, 0x23, + 0x68, 0xb8, 0x7c, 0x72, 0xde, 0x51, 0xd0, 0x57, 0x41, 0xdb, 0x87, 0x66, 0x1f, 0xc7, 0xcc, 0x20, + 0xfe, 0x45, 0x40, 0x6d, 0xfb, 0x10, 0x60, 0x9e, 0x37, 0xab, 0x84, 0xdc, 0xd2, 0xa2, 0xbf, 0x31, + 0x98, 0x13, 0x66, 0x1f, 0x2c, 0x65, 0xd0, 0xcf, 0x61, 0x2b, 0x99, 0x81, 0x69, 0x59, 0x61, 0x26, + 0xfd, 0xa0, 0x43, 0x70, 0xf4, 0x1a, 0x47, 0x67, 0x6e, 0xe8, 0x9d, 0x85, 0x6e, 0xe4, 0xce, 0x48, + 0x27, 0xfd, 0x90, 0x32, 0xc0, 0xfe, 0xda, 0x80, 0xed, 0x57, 0xe1, 0xd8, 0x15, 0xe1, 0x2c, 0xa8, + 0x3f, 0x81, 0x8d, 0x44, 0x14, 0x6a, 0xdc, 0x38, 0x65, 0xda, 0x79, 0x99, 0x4d, 0x02, 0xdd, 0x26, + 0x72, 0x18, 0x3d, 0x03, 0x94, 0xd7, 0xa5, 0x8c, 0x55, 0xec, 0x5f, 0x19, 0x60, 0x0d, 0x71, 0xdc, + 0x9f, 0x06, 0xe7, 0xee, 0xd4, 0xc1, 0xa3, 0xd7, 0x2f, 0x30, 0x21, 0xee, 0x04, 0x9f, 0x84, 0x31, + 0x65, 0xb7, 0xc8, 0x51, 0x96, 0xc6, 0x39, 0x4d, 0x32, 0x93, 0x6c, 0x52, 0x32, 0x39, 0x09, 0x63, + 0xc6, 0xa3, 0xe6, 0x68, 0xb8, 0x7d, 0x02, 0x1f, 0x2c, 0xd4, 0xa1, 0x14, 0xab, 0xbf, 0x18, 0x80, + 0x86, 0x38, 0xee, 0x49, 0xc9, 0x9f, 0xb2, 0xf9, 0x0c, 0xb6, 0x64, 0x48, 0x4c, 0x65, 0x75, 0x94, + 0x22, 0xa1, 0x0c, 0x52, 0xfa, 0x53, 0x4e, 0x7e, 0x10, 0x7b, 0x17, 0xde, 0x88, 0xc9, 0x5f, 0x5c, + 0x87, 0x98, 0x51, 0xaf, 0x39, 0x1a, 0xbe, 0x82, 0x5b, 0xf7, 0xe1, 0xbe, 0xa6, 0x63, 0x29, 0xb6, + 0x7f, 0x37, 0xa0, 0x3d, 0xc4, 0x71, 0x66, 0x50, 0xca, 0x95, 0x7e, 0xff, 0x8d, 0x8f, 0x23, 0x25, + 0x51, 0xcb, 0x10, 0xfa, 0x18, 0x9a, 0xf2, 0xc7, 0xd3, 0x65, 0xcc, 0xa1, 0x34, 0xb8, 0xb5, 0x35, + 0x94, 0x90, 0x42, 0xab, 0x54, 0x57, 0xb3, 0x4a, 0x4d, 0xb7, 0xca, 0x31, 0x6c, 0xe7, 0xb8, 0x94, + 0xb2, 0xc9, 0x2f, 0x0d, 0x40, 0x7d, 0xdd, 0x03, 0x74, 0xce, 0x46, 0x21, 0xe7, 0x9c, 0xf5, 0xd6, + 0x74, 0xeb, 0x2d, 0x5f, 0xdf, 0xdf, 0x1a, 0x70, 0xbf, 0x7f, 0x17, 0x0b, 0xac, 0xf9, 0xed, 0xda, + 0xdb, 0xf9, 0xad, 0xfd, 0x6b, 0x5d, 0x13, 0xb2, 0x9a, 0x8f, 0xd0, 0xa2, 0xa9, 0x58, 0x86, 0x88, + 0x62, 0x9b, 0x87, 0x57, 0xb0, 0xc7, 0xd7, 0x06, 0xec, 0xe8, 0x5a, 0x94, 0x32, 0xc8, 0x53, 0x68, + 0x28, 0xd3, 0x88, 0xfa, 0x78, 0x93, 0x45, 0xd4, 0x01, 0xf6, 0xcf, 0xe0, 0x01, 0xdf, 0x86, 0x94, + 0x30, 0x4a, 0x8e, 0xea, 0x9a, 0x4e, 0xf5, 0xf7, 0x06, 0xec, 0x16, 0x4e, 0xff, 0x8e, 0xd8, 0xfe, + 0xc3, 0x00, 0xb3, 0xeb, 0xc6, 0xa3, 0xcb, 0x61, 0x81, 0x17, 0x68, 0xd3, 0x1b, 0x6f, 0x39, 0xfd, + 0x0a, 0xd1, 0x52, 0x94, 0x23, 0x2a, 0xab, 0xe5, 0x88, 0x82, 0x5d, 0xf0, 0x57, 0xf0, 0xfe, 0x02, + 0x36, 0xa5, 0xec, 0x6b, 0xc2, 0xfa, 0x70, 0x3e, 0x1a, 0x61, 0x92, 0x38, 0x77, 0x22, 0xd2, 0xf2, + 0xc7, 0x77, 0xc4, 0x6c, 0xb7, 0xb0, 0xe9, 0x08, 0xc9, 0x1e, 0x40, 0xc3, 0xc1, 0xc4, 0x9b, 0xf8, + 0x94, 0x9e, 0xa8, 0x93, 0x8c, 0xe9, 0x38, 0xa9, 0x93, 0x5c, 0x5a, 0xc1, 0x55, 0xba, 0xd0, 0x94, + 0xa7, 0x2a, 0x95, 0xec, 0x7e, 0x9c, 0x6e, 0xc8, 0xba, 0xd7, 0x83, 0xf1, 0xed, 0xf4, 0xf9, 0x6b, + 0x05, 0xaa, 0xb4, 0x33, 0xb2, 0x61, 0xeb, 0x34, 0x0a, 0x2e, 0xbc, 0x29, 0x3e, 0xbd, 0x0c, 0xe2, + 0x40, 0x4c, 0xa4, 0x60, 0x74, 0x0f, 0xf3, 0xd2, 0x1b, 0x5d, 0xf9, 0xee, 0x0c, 0x27, 0x7b, 0x98, + 0x44, 0x96, 0x54, 0xa8, 0x28, 0x2a, 0x3c, 0x04, 0xe8, 0x45, 0xd8, 0x8d, 0xf1, 0x17, 0xde, 0x0c, + 0x8b, 0xd5, 0x95, 0x10, 0xaa, 0xe2, 0xe9, 0x65, 0xe0, 0xe3, 0x97, 0xf3, 0xd9, 0x39, 0x8e, 0x92, + 0x12, 0x21, 0x41, 0x68, 0x07, 0x6a, 0xc7, 0x33, 0xd7, 0x9b, 0x9a, 0xf7, 0x58, 0x1b, 0x17, 0x28, + 0xda, 0xf5, 0xa2, 0xf8, 0xd2, 0x5c, 0xe7, 0x28, 0x13, 0xa8, 0x86, 0x7c, 0xee, 0x41, 0x68, 0x6e, + 0x70, 0x0d, 0x13, 0x99, 0xee, 0x76, 0x9f, 0xbb, 0x24, 0x7e, 0x1e, 0x4c, 0x3c, 0x9f, 0x29, 0xb3, + 0xc9, 0x77, 0xbb, 0x0a, 0x48, 0xf5, 0x49, 0x81, 0x41, 0x68, 0x02, 0xd7, 0x47, 0x82, 0x28, 0xa3, + 0xb4, 0x3b, 0x31, 0xeb, 0xbc, 0x40, 0x66, 0x08, 0xb5, 0x44, 0x1f, 0xfb, 0x63, 0x1c, 0x99, 0x5b, + 0xac, 0x4d, 0x48, 0xe9, 0xb8, 0xe7, 0xde, 0xcc, 0x8b, 0xcd, 0x86, 0x34, 0x8e, 0x21, 0xd4, 0x2f, + 0x07, 0xa4, 0x3b, 0x0d, 0x46, 0x57, 0x66, 0x73, 0xcf, 0xd8, 0xdf, 0x70, 0x12, 0x91, 0x97, 0xe4, + 0x89, 0x47, 0x62, 0x1c, 0x0d, 0x42, 0xb3, 0xc5, 0x6d, 0x98, 0x21, 0xf6, 0x28, 0xdd, 0x30, 0x73, + 0x87, 0x28, 0x79, 0xc6, 0x62, 0xa7, 0x70, 0x51, 0x6d, 0x80, 0xf7, 0x65, 0x5e, 0xca, 0x70, 0xfb, + 0x8f, 0x06, 0x6c, 0x8b, 0xaf, 0x90, 0xee, 0xf5, 0x4b, 0x77, 0x86, 0xc5, 0xe9, 0x90, 0x22, 0x54, + 0x4c, 0x4e, 0x87, 0x89, 0x8c, 0x8e, 0x00, 0x4e, 0xdd, 0x89, 0xe7, 0xcb, 0x55, 0xec, 0xa3, 0x82, + 0xdd, 0xb2, 0x83, 0xbf, 0x9c, 0x63, 0x12, 0x67, 0x7d, 0x1d, 0x69, 0xdc, 0x0a, 0x95, 0xe6, 0x4f, + 0xbc, 0xf8, 0x2b, 0x9a, 0x91, 0x10, 0xed, 0x41, 0x8d, 0x2a, 0x9e, 0x24, 0x38, 0x99, 0x11, 0x6f, + 0x40, 0xc7, 0x05, 0x0a, 0x7e, 0xbb, 0x50, 0x41, 0x12, 0x06, 0x3e, 0xc1, 0x0b, 0x34, 0x4c, 0x6c, + 0x30, 0x9f, 0x11, 0x91, 0xe5, 0x52, 0xd9, 0xfe, 0xaf, 0x01, 0x5b, 0x87, 0xd3, 0x98, 0x67, 0xc6, + 0x5b, 0x85, 0x6a, 0x3e, 0x52, 0x2a, 0x7a, 0xa4, 0xc8, 0xf1, 0x59, 0xcd, 0xc5, 0x67, 0x1a, 0x45, + 0x35, 0x39, 0x8a, 0x32, 0x5f, 0xe5, 0xc1, 0x95, 0xf8, 0x6a, 0x71, 0x74, 0xed, 0x40, 0x8d, 0x27, + 0x07, 0x1e, 0x5a, 0xb5, 0x34, 0x2b, 0x88, 0x93, 0xcc, 0x58, 0x84, 0x54, 0x2a, 0xdb, 0x87, 0xd0, + 0x90, 0xd8, 0x97, 0xf1, 0x4b, 0xfb, 0x0f, 0x06, 0xd4, 0x93, 0xd5, 0x4d, 0x0a, 0xb6, 0x64, 0x28, + 0x43, 0x37, 0xd4, 0xdd, 0xf8, 0x9d, 0xec, 0xd9, 0x15, 0xd5, 0xb3, 0xed, 0xbf, 0x19, 0xb0, 0x95, + 0xe9, 0x74, 0xcb, 0x70, 0xab, 0x14, 0x85, 0x5b, 0xce, 0x37, 0x2b, 0x77, 0xe1, 0x9b, 0xd5, 0x9c, + 0x6f, 0xfe, 0xdb, 0x00, 0x38, 0x1c, 0x8f, 0x13, 0xcf, 0x5c, 0x6e, 0xd8, 0x9c, 0x07, 0xae, 0xe9, + 0x1e, 0xb8, 0xa8, 0x0a, 0x20, 0xa8, 0x4a, 0x5e, 0x59, 0x7d, 0x87, 0x1e, 0xf9, 0x39, 0xd4, 0x53, + 0xce, 0xa5, 0xfc, 0xf1, 0x77, 0x06, 0x6c, 0xb1, 0xb4, 0xbc, 0x2c, 0xa2, 0x3f, 0x86, 0xe6, 0xb1, + 0x3f, 0x3e, 0xf2, 0x88, 0x7b, 0x3e, 0xe5, 0xd5, 0x4f, 0x1c, 0xb8, 0x54, 0x74, 0x79, 0x82, 0x53, + 0xf8, 0x54, 0xf5, 0x08, 0x93, 0xb4, 0x29, 0xc5, 0xe8, 0x02, 0x9a, 0xaf, 0xfc, 0x95, 0x28, 0x2d, + 0x4f, 0x52, 0xb2, 0xaa, 0x95, 0x9c, 0xaa, 0x3d, 0x68, 0x29, 0xdf, 0x29, 0xa5, 0xec, 0x9f, 0x0d, + 0x76, 0xa3, 0x98, 0x4e, 0xc3, 0x72, 0x82, 0x1a, 0xf1, 0xc6, 0xdd, 0x54, 0x9a, 0x02, 0x76, 0xb6, + 0xb4, 0xf4, 0x2f, 0xe7, 0x33, 0x91, 0xed, 0x15, 0xcc, 0xfe, 0x0a, 0x36, 0x53, 0x99, 0x46, 0x39, + 0xfd, 0x2f, 0x54, 0x52, 0xa2, 0x9c, 0xb5, 0x3f, 0x82, 0x76, 0x17, 0x4f, 0x3c, 0x5f, 0xf7, 0x12, + 0x0d, 0x2f, 0xf0, 0xa7, 0x4a, 0x91, 0x3f, 0xd9, 0xff, 0xe4, 0x85, 0x5a, 0xb6, 0x50, 0xa9, 0x0c, + 0x75, 0x00, 0x90, 0xcd, 0x21, 0xf2, 0x54, 0x8b, 0x8f, 0xc8, 0x16, 0x51, 0xea, 0xf2, 0xff, 0x48, + 0x59, 0xa7, 0xec, 0x64, 0x9b, 0x7e, 0x33, 0xd9, 0xff, 0xee, 0xc2, 0x3a, 0x15, 0xcf, 0xbc, 0xb7, + 0xdf, 0x00, 0x1f, 0xb3, 0x53, 0x6a, 0x6e, 0x46, 0x12, 0xa2, 0xef, 0x4a, 0xcb, 0x28, 0x6a, 0x88, + 0x46, 0x3e, 0xeb, 0x61, 0x5f, 0x40, 0x23, 0xbb, 0xa9, 0xbf, 0x9d, 0x4a, 0x37, 0xc6, 0x50, 0x57, + 0x7e, 0x8d, 0x28, 0xb7, 0xb0, 0x8f, 0xff, 0x53, 0xe7, 0xb5, 0x07, 0x7d, 0x9a, 0x56, 0x56, 0x76, + 0x45, 0xb9, 0xc3, 0x47, 0xa9, 0x97, 0xbd, 0xd6, 0x7b, 0x05, 0x28, 0x09, 0x51, 0x0f, 0x9a, 0xea, + 0x8d, 0x24, 0xda, 0x15, 0xde, 0x9d, 0xbf, 0x33, 0xb5, 0xcc, 0xe2, 0x06, 0x12, 0xa2, 0x9f, 0xc3, + 0xee, 0x82, 0x9b, 0x40, 0xb4, 0xc7, 0x07, 0x2d, 0xbe, 0xac, 0xb4, 0x3e, 0x5c, 0xd2, 0x83, 0x84, + 0x94, 0xa0, 0xf4, 0x7e, 0x92, 0x10, 0x54, 0x9f, 0x73, 0x12, 0x82, 0xf9, 0x87, 0x96, 0x1f, 0xb1, + 0x12, 0x9f, 0xbe, 0x5c, 0xa0, 0xcc, 0x0e, 0xf2, 0xf3, 0x88, 0xf5, 0xa0, 0x08, 0xe6, 0xc3, 0xe5, + 0x8b, 0xfb, 0x64, 0x78, 0xee, 0x99, 0x22, 0x19, 0xae, 0xbd, 0x20, 0x3c, 0x63, 0x5b, 0x7a, 0xe5, + 0x3a, 0xd2, 0x4c, 0xbf, 0x94, 0xbb, 0xe6, 0xb2, 0xde, 0x5f, 0xd0, 0x42, 0x42, 0xe4, 0xb0, 0x80, + 0xc9, 0xdf, 0x4c, 0xa0, 0x6f, 0xc8, 0x5a, 0xe7, 0xaf, 0x08, 0xac, 0x6f, 0xde, 0xd0, 0x4a, 0x42, + 0x34, 0x60, 0x19, 0x58, 0x9d, 0xb0, 0x58, 0x05, 0x36, 0x9b, 0xb5, 0xa8, 0x89, 0x84, 0xe8, 0x27, + 0xf0, 0x5e, 0xe1, 0xd1, 0x1e, 0x3d, 0x14, 0xb1, 0xb6, 0xe0, 0x16, 0xc3, 0xfa, 0xd6, 0x8d, 0xed, + 0xdc, 0x80, 0xc3, 0x62, 0x03, 0x0e, 0x17, 0x1a, 0xb0, 0xe8, 0x7e, 0xf6, 0x29, 0x34, 0x94, 0x0b, + 0x4a, 0xf4, 0x20, 0xed, 0xab, 0xdc, 0xc0, 0x5a, 0xbb, 0x85, 0x38, 0x77, 0x42, 0xe9, 0x74, 0x96, + 0x8b, 0x32, 0x91, 0xc1, 0x72, 0x51, 0x96, 0x66, 0xa1, 0x5e, 0x7a, 0xd4, 0x17, 0x27, 0x9b, 0x24, + 0xca, 0xb4, 0x93, 0x98, 0x65, 0x16, 0x37, 0x90, 0x10, 0x3d, 0x61, 0x6f, 0x4b, 0xe2, 0xce, 0x01, + 0xdd, 0xe7, 0xfd, 0x94, 0x0b, 0x0d, 0x6b, 0x47, 0x07, 0x49, 0x88, 0x7e, 0x00, 0x9b, 0xe9, 0xee, + 0x1d, 0x21, 0xe1, 0xa9, 0xd2, 0x61, 0xc6, 0xba, 0xaf, 0x61, 0x24, 0x44, 0x9f, 0xc0, 0x46, 0xa2, + 0x04, 0xda, 0x56, 0x95, 0xa2, 0x63, 0x50, 0x1e, 0x22, 0x21, 0xea, 0xc0, 0xba, 0xd8, 0x94, 0x21, + 0x91, 0xba, 0xb2, 0x7d, 0xa9, 0xb5, 0x9d, 0x43, 0xb8, 0x62, 0x59, 0x8d, 0x45, 0xf9, 0xb4, 0x9c, + 0x29, 0xa6, 0x6e, 0x36, 0x3e, 0x85, 0xba, 0xb4, 0xff, 0x48, 0x16, 0x42, 0xdd, 0xfa, 0x24, 0x0b, + 0x91, 0xdf, 0xa8, 0x3c, 0x85, 0x86, 0x52, 0x53, 0x51, 0x16, 0xf7, 0xca, 0x56, 0xc4, 0xda, 0x2d, + 0xc4, 0xd3, 0xa8, 0x51, 0x0a, 0x8d, 0x14, 0x35, 0xf9, 0x92, 0x26, 0x45, 0x8d, 0x5e, 0x9b, 0x9e, + 0x00, 0x64, 0xd9, 0x2a, 0x59, 0x50, 0xa5, 0xfc, 0x58, 0x3b, 0x3a, 0x48, 0xc2, 0x6e, 0xe3, 0xa7, + 0xf5, 0x0e, 0x7b, 0x77, 0xff, 0x21, 0xfd, 0x73, 0x7e, 0x8f, 0xbd, 0x90, 0x7f, 0xff, 0x7f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0xb3, 0xba, 0x11, 0x76, 0x90, 0x1f, 0x00, 0x00, } diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index dc2751c21..a404a0c9e 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -1,5 +1,6 @@ syntax = "proto3"; import "Open_IM/pkg/proto/sdk_ws/ws.proto"; +import "Open_IM/pkg/proto/conversation/conversation.proto"; option go_package = "./user;user"; package user; @@ -75,25 +76,8 @@ message SetGlobalRecvMessageOptResp{ CommonResp commonResp = 1; } -message Conversation{ - string OwnerUserID = 1; - string ConversationID = 2; - int32 RecvMsgOpt = 3; - int32 ConversationType = 4; - string UserID = 5; - string GroupID = 6; - int32 UnreadCount = 7; - int64 DraftTextTime = 8; - bool IsPinned = 9; - string AttachedInfo = 10; - bool IsPrivateChat = 11; - int32 GroupAtType = 12; - bool IsNotInGroup = 13; - string Ex = 14; -} - message SetConversationReq{ - Conversation Conversation = 1; + conversation.Conversation Conversation = 1; int32 notificationType = 2; string OperationID = 3; } @@ -122,7 +106,7 @@ message GetConversationReq{ message GetConversationResp{ CommonResp commonResp = 1; - Conversation Conversation = 2; + conversation.Conversation Conversation = 2; } message GetConversationsReq{ @@ -133,7 +117,7 @@ message GetConversationsReq{ message GetConversationsResp{ CommonResp commonResp = 1; - repeated Conversation Conversations = 2; + repeated conversation.Conversation Conversations = 2; } message GetAllConversationsReq{ @@ -143,11 +127,11 @@ message GetAllConversationsReq{ message GetAllConversationsResp{ CommonResp commonResp = 1; - repeated Conversation Conversations = 2; + repeated conversation.Conversation Conversations = 2; } message BatchSetConversationsReq{ - repeated Conversation Conversations = 1; + repeated conversation.Conversation Conversations = 1; string OwnerUserID = 2; int32 notificationType = 3; string OperationID = 4; From 621051cfb99b576d221d7822b364d8d1230299a4 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Sun, 21 Aug 2022 23:37:43 +0800 Subject: [PATCH 210/230] pb update --- internal/rpc/group/group.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index b8c44fbd3..beff56072 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -384,7 +384,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite haveConUserID = append(haveConUserID, v.OwnerUserID) } var reqPb pbUser.SetConversationReq - var c pbUser.Conversation + var c pbConversation.Conversation for _, v := range conversations { reqPb.OperationID = req.OperationID c.OwnerUserID = v.OwnerUserID @@ -637,7 +637,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou } } var reqPb pbUser.SetConversationReq - var c pbUser.Conversation + var c pbConversation.Conversation for _, v := range okUserIDList { reqPb.OperationID = req.OperationID c.OwnerUserID = v @@ -870,7 +870,7 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G } var reqPb pbUser.SetConversationReq reqPb.OperationID = req.OperationID - var c pbUser.Conversation + var c pbConversation.Conversation conversation, err := imdb.GetConversation(req.FromUserID, utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType)) if err != nil { c.OwnerUserID = req.FromUserID @@ -1064,7 +1064,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) } //modify quitter conversation info var reqPb pbUser.SetConversationReq - var c pbUser.Conversation + var c pbConversation.Conversation reqPb.OperationID = req.OperationID c.OwnerUserID = req.OpUserID c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType) @@ -1522,7 +1522,7 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo OpUserID: req.OpUserID, } var reqPb pbUser.SetConversationReq - var c pbUser.Conversation + var c pbConversation.Conversation for _, v := range resp.Success { reqPb.OperationID = req.OperationID c.OwnerUserID = v @@ -1707,7 +1707,7 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou } //modify quitter conversation info var reqPb pbUser.SetConversationReq - var c pbUser.Conversation + var c pbConversation.Conversation for _, v := range memberList { reqPb.OperationID = req.OperationID c.OwnerUserID = v.UserID From 24137bffdd69b20d19c8248f072773ea42f81117 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Sun, 21 Aug 2022 23:56:44 +0800 Subject: [PATCH 211/230] conversation update --- internal/rpc/conversation/conversaion.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/rpc/conversation/conversaion.go b/internal/rpc/conversation/conversaion.go index 5fcab9eb4..023169a6b 100644 --- a/internal/rpc/conversation/conversaion.go +++ b/internal/rpc/conversation/conversaion.go @@ -74,6 +74,7 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"attached_info": conversation.AttachedInfo}) case constant.FieldUnread: isSyncConversation = false + err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"update_unread_count_time": utils.GetCurrentTimestampByMill()}) } if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "UpdateColumnsConversations error", err.Error()) @@ -82,6 +83,7 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo } for _, v := range utils.DifferenceString(haveUserID, req.UserIDList) { conversation.OwnerUserID = v + conversation.UpdateUnreadCountTime = utils.GetCurrentTimestampByMill() err := imdb.SetOneConversation(conversation) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation error", err.Error()) From 7d04f06f7db783ea6169d02694df908f2cc3ba48 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 22 Aug 2022 15:47:50 +0800 Subject: [PATCH 212/230] conversation fix --- internal/api/manage/management_chat.go | 4 ++++ pkg/common/db/rocks_cache/rocks_cache.go | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index 5a7a91b25..b65294379 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -336,6 +336,10 @@ func ManagementBatchSendMsg(c *gin.Context) { var recvList []string if params.IsSendAll { recvList, err = im_mysql_model.SelectAllUserID() + if err != nil { + log.NewError(params.OperationID, utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + } } else { recvList = params.RecvIDList } diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 103bd51f7..fa81bd86a 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -460,16 +460,16 @@ func GetConversationFromCache(ownerUserID, conversationID string) (*db.Conversat getConversation := func() (string, error) { conversation, err := imdb.GetConversation(ownerUserID, conversationID) if err != nil { - return "", utils.Wrap(err, "") + return "", utils.Wrap(err, "get failed") } bytes, err := json.Marshal(conversation) - return string(bytes), utils.Wrap(err, "") + return string(bytes), utils.Wrap(err, "Marshal failed") } conversationStr, err := db.DB.Rc.Fetch(conversationCache+ownerUserID+":"+conversationID, time.Second*30*60, getConversation) conversation := db.Conversation{} err = json.Unmarshal([]byte(conversationStr), &conversation) if err != nil { - return nil, err + return nil, utils.Wrap(err, "Unmarshal failed") } return &conversation, nil } From 3391bd83227f127182385efdcb6c7ffc623560e6 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 22 Aug 2022 15:59:45 +0800 Subject: [PATCH 213/230] conversation --- pkg/common/db/rocks_cache/rocks_cache.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index fa81bd86a..0d26a53f5 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -492,6 +492,7 @@ func GetUserAllConversationList(ownerUserID string) ([]db.Conversation, error) { return nil, err } var conversationList []db.Conversation + log.NewDebug("", utils.GetSelfFuncName(), IDList) for _, conversationID := range IDList { conversation, err := GetConversationFromCache(ownerUserID, conversationID) if err != nil { From 73a73b7bc75f1293ee7c0e33b88e8753fd83bff1 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 22 Aug 2022 16:03:59 +0800 Subject: [PATCH 214/230] conversation --- pkg/common/db/rocks_cache/rocks_cache.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 0d26a53f5..a8b3d5fb7 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -463,9 +463,15 @@ func GetConversationFromCache(ownerUserID, conversationID string) (*db.Conversat return "", utils.Wrap(err, "get failed") } bytes, err := json.Marshal(conversation) - return string(bytes), utils.Wrap(err, "Marshal failed") + if err != nil { + return "", utils.Wrap(err, "Marshal failed") + } + return string(bytes), nil } conversationStr, err := db.DB.Rc.Fetch(conversationCache+ownerUserID+":"+conversationID, time.Second*30*60, getConversation) + if err != nil { + return nil, utils.Wrap(err, "Fetch failed") + } conversation := db.Conversation{} err = json.Unmarshal([]byte(conversationStr), &conversation) if err != nil { From 92fc43cb3de085c4bb837130c6fc914479367715 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 22 Aug 2022 16:14:31 +0800 Subject: [PATCH 215/230] conversation --- pkg/common/db/mysql_model/im_mysql_model/conversation_model.go | 2 +- pkg/common/db/rocks_cache/rocks_cache.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go index 0f1b7374a..2a645d54f 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go @@ -99,6 +99,6 @@ func UpdateColumnsConversations(ownerUserIDList []string, conversationID string, func GetConversationIDListByUserID(userID string) ([]string, error) { var IDList []string - err := db.DB.MysqlDB.DefaultGormDB().Model(&db.Conversation{}).Where("user_id=?", userID).Pluck("conversation_id", &IDList).Error + err := db.DB.MysqlDB.DefaultGormDB().Model(&db.Conversation{}).Where("owner_user_id=?", userID).Pluck("conversation_id", &IDList).Error return IDList, err } diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index a8b3d5fb7..0cb41a8b5 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -440,6 +440,7 @@ func GetUserConversationIDListFromCache(userID string) ([]string, error) { if err != nil { return "", utils.Wrap(err, "getConversationIDList failed") } + log.NewDebug("", utils.GetSelfFuncName(), conversationIDList) bytes, err := json.Marshal(conversationIDList) return string(bytes), utils.Wrap(err, "") } @@ -447,7 +448,7 @@ func GetUserConversationIDListFromCache(userID string) ([]string, error) { var conversationIDList []string err = json.Unmarshal([]byte(conversationIDListStr), &conversationIDList) if err != nil { - return nil, err + return nil, utils.Wrap(err, "") } return conversationIDList, nil } From cb881e81a8d3e9bf3cc32dbac9fa2c1e641f30a7 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 22 Aug 2022 19:19:30 +0800 Subject: [PATCH 216/230] log for cost time --- internal/rpc/msg/send_msg.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 9042a5033..b3cf8e5d7 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -225,6 +225,7 @@ func (rpc *rpcChat) encapsulateMsgData(msg *sdk_ws.MsgData) { func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.SendMsgResp, error) { replay := pbChat.SendMsgResp{} newTime := db.GetCurrentTimestampByMill() + t1 := time.Now() log.Info(pb.OperationID, "rpc sendMsg come here ", pb.String()) flag, errCode, errMsg := isMessageHasReadEnabled(pb) log.Info(pb.OperationID, "isMessageHasReadEnabled ", flag) @@ -232,15 +233,18 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S return returnMsg(&replay, pb, errCode, errMsg, "", 0) } flag, errCode, errMsg, _ = messageVerification(pb) - log.Info(pb.OperationID, "userRelationshipVerification ", flag) + log.Info(pb.OperationID, "messageVerification ", flag, " cost time: ", time.Since(t1)) if !flag { return returnMsg(&replay, pb, errCode, errMsg, "", 0) } + t1 = time.Now() rpc.encapsulateMsgData(pb.MsgData) + log.Info(pb.OperationID, "encapsulateMsgData ", " cost time: ", time.Since(t1)) msgToMQSingle := pbChat.MsgDataToMQ{Token: pb.Token, OperationID: pb.OperationID, MsgData: pb.MsgData} // callback + t1 = time.Now() callbackResp := callbackWordFilter(pb) - log.Info(pb.OperationID, "callbackWordFilter ", callbackResp) + log.Info(pb.OperationID, "callbackWordFilter ", callbackResp, "cost time: ", time.Since(t1)) if callbackResp.ErrCode != 0 { log.Error(pb.OperationID, utils.GetSelfFuncName(), "callbackWordFilter resp: ", callbackResp) } @@ -255,7 +259,9 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S switch pb.MsgData.SessionType { case constant.SingleChatType: // callback + t1 = time.Now() callbackResp := callbackBeforeSendSingleMsg(pb) + log.Info(pb.OperationID, "callbackBeforeSendSingleMsg ", " cost time: ", time.Since(t1)) if callbackResp.ErrCode != 0 { log.NewError(pb.OperationID, utils.GetSelfFuncName(), "callbackBeforeSendSingleMsg resp: ", callbackResp) } @@ -266,28 +272,37 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callbackBeforeSendSingleMsg result", "end rpc and return", callbackResp) return returnMsg(&replay, pb, int32(callbackResp.ErrCode), callbackResp.ErrMsg, "", 0) } + t1 = time.Now() isSend := modifyMessageByUserMessageReceiveOpt(pb.MsgData.RecvID, pb.MsgData.SendID, constant.SingleChatType, pb) + log.Info(pb.OperationID, "modifyMessageByUserMessageReceiveOpt ", " cost time: ", time.Since(t1)) if isSend { msgToMQSingle.MsgData = pb.MsgData log.NewInfo(msgToMQSingle.OperationID, msgToMQSingle) + t1 = time.Now() err1 := rpc.sendMsgToKafka(&msgToMQSingle, msgToMQSingle.MsgData.RecvID, constant.OnlineStatus) + log.Info(pb.OperationID, "sendMsgToKafka ", " cost time: ", time.Since(t1)) if err1 != nil { log.NewError(msgToMQSingle.OperationID, "kafka send msg err :RecvID", msgToMQSingle.MsgData.RecvID, msgToMQSingle.String(), err1.Error()) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) } } if msgToMQSingle.MsgData.SendID != msgToMQSingle.MsgData.RecvID { //Filter messages sent to yourself + t1 = time.Now() err2 := rpc.sendMsgToKafka(&msgToMQSingle, msgToMQSingle.MsgData.SendID, constant.OnlineStatus) + log.Info(pb.OperationID, "sendMsgToKafka ", " cost time: ", time.Since(t1)) if err2 != nil { log.NewError(msgToMQSingle.OperationID, "kafka send msg err:SendID", msgToMQSingle.MsgData.SendID, msgToMQSingle.String()) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) } } // callback + t1 = time.Now() callbackResp = callbackAfterSendSingleMsg(pb) + log.Info(pb.OperationID, "callbackAfterSendSingleMsg ", " cost time: ", time.Since(t1)) if callbackResp.ErrCode != 0 { log.NewError(pb.OperationID, utils.GetSelfFuncName(), "callbackAfterSendSingleMsg resp: ", callbackResp) } + log.Debug(pb.OperationID, "send msg cost time all: ", db.GetCurrentTimestampByMill()-newTime, pb.MsgData.ClientMsgID) return returnMsg(&replay, pb, 0, "", msgToMQSingle.MsgData.ServerMsgID, msgToMQSingle.MsgData.SendTime) case constant.GroupChatType: // callback From 4bd4e0863ccb93d579707912aa210d41e504775e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 22 Aug 2022 20:00:05 +0800 Subject: [PATCH 217/230] conversation update --- internal/rpc/conversation/conversaion.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/rpc/conversation/conversaion.go b/internal/rpc/conversation/conversaion.go index 023169a6b..6fb04dfd4 100644 --- a/internal/rpc/conversation/conversaion.go +++ b/internal/rpc/conversation/conversaion.go @@ -84,6 +84,10 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo for _, v := range utils.DifferenceString(haveUserID, req.UserIDList) { conversation.OwnerUserID = v conversation.UpdateUnreadCountTime = utils.GetCurrentTimestampByMill() + err = rocksCache.DelUserConversationIDListFromCache(v) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), v, req.Conversation.ConversationID, err.Error()) + } err := imdb.SetOneConversation(conversation) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation error", err.Error()) From ec0cd9a3488fd2cd42fd7fda33454c7bfc716ebd Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 23 Aug 2022 12:06:44 +0800 Subject: [PATCH 218/230] conversation update --- internal/rpc/user/user.go | 9 +++++++-- .../db/mysql_model/im_mysql_model/conversation_model.go | 8 +++++--- pkg/common/db/rocks_cache/rocks_cache.go | 4 ++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 9bf06b8fc..a7d7934ca 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -316,13 +316,18 @@ func (s *userServer) SetRecvMsgOpt(ctx context.Context, req *pbUser.SetRecvMsgOp conversation.ConversationType = constant.GroupChatType } } - err := imdb.SetRecvMsgOpt(conversation) + isUpdate, err := imdb.SetRecvMsgOpt(conversation) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation error", err.Error()) resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} return resp, nil } - if err = rocksCache.DelConversationFromCache(conversation.OwnerUserID, conversation.ConversationID); err != nil { + if isUpdate { + err = rocksCache.DelConversationFromCache(conversation.OwnerUserID, conversation.ConversationID) + } else { + err = rocksCache.DelUserConversationIDListFromCache(conversation.OwnerUserID) + } + if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), conversation.ConversationID, err.Error()) } chat.ConversationChangeNotification(req.OperationID, req.OwnerUserID) diff --git a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go index 2a645d54f..52fe1dcb9 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go @@ -41,16 +41,18 @@ func PeerUserSetConversation(conversation db.Conversation) error { } -func SetRecvMsgOpt(conversation db.Conversation) error { +func SetRecvMsgOpt(conversation db.Conversation) (bool, error) { + var isUpdate bool newConversation := conversation if db.DB.MysqlDB.DefaultGormDB().Model(&db.Conversation{}).Find(&newConversation).RowsAffected == 0 { log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "not exist in db, create") - return db.DB.MysqlDB.DefaultGormDB().Model(&db.Conversation{}).Create(conversation).Error + return isUpdate, db.DB.MysqlDB.DefaultGormDB().Model(&db.Conversation{}).Create(conversation).Error // if exist, then update record } else { log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "exist in db, update") //force update - return db.DB.MysqlDB.DefaultGormDB().Model(conversation).Where("owner_user_id = ? and conversation_id = ?", conversation.OwnerUserID, conversation.ConversationID). + isUpdate = true + return isUpdate, db.DB.MysqlDB.DefaultGormDB().Model(conversation).Where("owner_user_id = ? and conversation_id = ?", conversation.OwnerUserID, conversation.ConversationID). Updates(map[string]interface{}{"recv_msg_opt": conversation.RecvMsgOpt}).Error } } diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 0cb41a8b5..a510b67a0 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -454,7 +454,7 @@ func GetUserConversationIDListFromCache(userID string) ([]string, error) { } func DelUserConversationIDListFromCache(userID string) error { - return db.DB.Rc.TagAsDeleted(conversationIDListCache + userID) + return utils.Wrap(db.DB.Rc.TagAsDeleted(conversationIDListCache+userID), "DelUserConversationIDListFromCache err") } func GetConversationFromCache(ownerUserID, conversationID string) (*db.Conversation, error) { @@ -511,5 +511,5 @@ func GetUserAllConversationList(ownerUserID string) ([]db.Conversation, error) { } func DelConversationFromCache(ownerUserID, conversationID string) error { - return db.DB.Rc.TagAsDeleted(conversationCache + ownerUserID + ":" + conversationID) + return utils.Wrap(db.DB.Rc.TagAsDeleted(conversationCache+ownerUserID+":"+conversationID), "DelConversationFromCache err") } From f0a9c63cd31534be49e9c509fecd05070782d120 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 23 Aug 2022 12:35:50 +0800 Subject: [PATCH 219/230] log for remote ip --- internal/msg_gateway/gate/ws_server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 2ed590bce..29ec4f8ea 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -282,7 +282,7 @@ func (ws *WServer) sendKickMsg(oldConn, newConn *UserConn) { func (ws *WServer) addUserConn(uid string, platformID int, conn *UserConn, token string, operationID string) { rwLock.Lock() defer rwLock.Unlock() - log.Info(operationID, utils.GetSelfFuncName(), " args: ", uid, platformID, conn, token) + log.Info(operationID, utils.GetSelfFuncName(), " args: ", uid, platformID, conn, token, "ip: ", conn.RemoteAddr().String()) callbackResp := callbackUserOnline(operationID, uid, platformID, token) if callbackResp.ErrCode != 0 { log.NewError(operationID, utils.GetSelfFuncName(), "callbackUserOnline resp:", callbackResp) From 2dab179166dd374391c1a232ce5e1e9341098f43 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 23 Aug 2022 19:13:56 +0800 Subject: [PATCH 220/230] conversation --- pkg/base_info/conversation_api_struct.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/base_info/conversation_api_struct.go b/pkg/base_info/conversation_api_struct.go index c0cb9fccf..be913a3c0 100644 --- a/pkg/base_info/conversation_api_struct.go +++ b/pkg/base_info/conversation_api_struct.go @@ -45,7 +45,7 @@ type Conversation struct { IsPrivateChat bool `json:"isPrivateChat"` GroupAtType int32 `json:"groupAtType"` IsNotInGroup bool `json:"isNotInGroup"` - UpdateUnreadCountTime int64 ` json:"updateUnreadCountTime"` + UpdateUnreadCountTime int64 `json:"updateUnreadCountTime"` AttachedInfo string `json:"attachedInfo"` Ex string `json:"ex"` } From aa2d07ca8dd6ebe5920911a15eb55c3fdd888f4c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 24 Aug 2022 14:22:47 +0800 Subject: [PATCH 221/230] callback add ex field and sdk server shell update --- config/config.yaml | 3 +++ internal/rpc/msg/callback.go | 3 ++- pkg/call_back_struct/common.go | 1 + script/sdk_svr_start.sh | 12 ++++-------- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 5524a1219..984d8175a 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -102,6 +102,9 @@ cmsapi: sdk: openImSdkWsPort: [ 10003 ] #jssdk服务端口,默认即可,项目中使用jssdk才需开放此端口或做nginx转发 dataDir: [ ../db/sdk/ ] + openImWsAddress: + openImApiAddress: + #对象存储服务,以下配置二选一,目前支持两种,腾讯云和minio,二者配置好其中一种即可(如果使用minio参考https://doc.rentsoft.cn/#/qa/minio搭建minio服务器) credential: #腾讯cos,发送图片、视频、文件时需要,请自行申请后替换,必须修改 tencent: diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index e00ee001a..e60a1ff3c 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -29,6 +29,7 @@ func copyCallbackCommonReqStruct(msg *pbChat.SendMsgReq) cbApi.CommonCallbackReq SenderFaceURL: msg.MsgData.SenderFaceURL, Content: callback.GetContent(msg.MsgData), Seq: msg.MsgData.Seq, + Ex: msg.MsgData.Ex, } return req } @@ -137,11 +138,11 @@ func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) cbApi.CommonCallbackResp } func callbackWordFilter(msg *pbChat.SendMsgReq) cbApi.CommonCallbackResp { + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) callbackResp := cbApi.CommonCallbackResp{OperationID: msg.OperationID} if !config.Config.Callback.CallbackWordFilter.Enable || msg.MsgData.ContentType != constant.Text { return callbackResp } - log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) commonCallbackReq := copyCallbackCommonReqStruct(msg) commonCallbackReq.CallbackCommand = constant.CallbackWordFilterCommand req := cbApi.CallbackWordFilterReq{ diff --git a/pkg/call_back_struct/common.go b/pkg/call_back_struct/common.go index ea61818e5..c3e5a4a71 100644 --- a/pkg/call_back_struct/common.go +++ b/pkg/call_back_struct/common.go @@ -17,6 +17,7 @@ type CommonCallbackReq struct { Seq uint32 `json:"seq"` AtUserIDList []string `json:"atUserList"` SenderFaceURL string `json:"faceURL"` + Ex string `json:"ex"` } type CommonCallbackResp struct { diff --git a/script/sdk_svr_start.sh b/script/sdk_svr_start.sh index 5ac90501d..f362e6d2d 100644 --- a/script/sdk_svr_start.sh +++ b/script/sdk_svr_start.sh @@ -4,17 +4,13 @@ source ./style_info.cfg source ./path_info.cfg source ./function.sh ulimit -n 200000 -list1=$(cat $config_path | grep openImApiPort | awk -F '[:]' '{print $NF}') -list2=$(cat $config_path | grep openImWsPort | awk -F '[:]' '{print $NF}') + +ws_address=$(cat $config_path | grep openImWsAddress | awk -F '[:]' '{print $NF}') +api_address=$(cat $config_path | grep openImApiAddress | awk -F '[:]' '{print $NF}') list3=$(cat $config_path | grep openImSdkWsPort | awk -F '[:]' '{print $NF}') logLevel=$(cat $config_path | grep remainLogLevel | awk -F '[:]' '{print $NF}') -list_to_string $list1 -api_ports=($ports_array) -list_to_string $list2 -ws_ports=($ports_array) list_to_string $list3 sdk_ws_ports=($ports_array) -list_to_string $list4 @@ -28,7 +24,7 @@ fi #Waiting port recycling sleep 1 cd ${sdk_server_binary_root} - nohup ./${sdk_server_name} -openIM_api_port ${api_ports[0]} -openIM_ws_port ${ws_ports[0]} -sdk_ws_port ${sdk_ws_ports[0]} -openIM_log_level ${logLevel} >>../logs/openIM.log 2>&1 & + nohup ./${sdk_server_name} -openIM_api_address ${api_address} -openIM_ws_address ${ws_address} -sdk_ws_port ${sdk_ws_ports[0]} -openIM_log_level ${logLevel} >>../logs/openIM.log 2>&1 & #Check launched service process sleep 3 From 203bfbe4115c5ee5ae01a60303d28fe081981da1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 24 Aug 2022 15:20:01 +0800 Subject: [PATCH 222/230] callback add ex field and sdk server shell update --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 984d8175a..ab24c920f 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -102,8 +102,8 @@ cmsapi: sdk: openImSdkWsPort: [ 10003 ] #jssdk服务端口,默认即可,项目中使用jssdk才需开放此端口或做nginx转发 dataDir: [ ../db/sdk/ ] - openImWsAddress: - openImApiAddress: + openImWsAddress: "" + openImApiAddress: "" #对象存储服务,以下配置二选一,目前支持两种,腾讯云和minio,二者配置好其中一种即可(如果使用minio参考https://doc.rentsoft.cn/#/qa/minio搭建minio服务器) credential: #腾讯cos,发送图片、视频、文件时需要,请自行申请后替换,必须修改 From 0befceef9a31b1fe182d9bed6313a4fd0b31917e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 24 Aug 2022 15:26:33 +0800 Subject: [PATCH 223/230] callback add ex field and sdk server shell update --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index ab24c920f..984d8175a 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -102,8 +102,8 @@ cmsapi: sdk: openImSdkWsPort: [ 10003 ] #jssdk服务端口,默认即可,项目中使用jssdk才需开放此端口或做nginx转发 dataDir: [ ../db/sdk/ ] - openImWsAddress: "" - openImApiAddress: "" + openImWsAddress: + openImApiAddress: #对象存储服务,以下配置二选一,目前支持两种,腾讯云和minio,二者配置好其中一种即可(如果使用minio参考https://doc.rentsoft.cn/#/qa/minio搭建minio服务器) credential: #腾讯cos,发送图片、视频、文件时需要,请自行申请后替换,必须修改 From a2a71ff8f5b444c19a19faa55879a67f587b4a6e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 24 Aug 2022 15:38:57 +0800 Subject: [PATCH 224/230] callback add ex field and sdk server shell update --- script/sdk_svr_start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/sdk_svr_start.sh b/script/sdk_svr_start.sh index f362e6d2d..2f16c9834 100644 --- a/script/sdk_svr_start.sh +++ b/script/sdk_svr_start.sh @@ -24,7 +24,7 @@ fi #Waiting port recycling sleep 1 cd ${sdk_server_binary_root} - nohup ./${sdk_server_name} -openIM_api_address ${api_address} -openIM_ws_address ${ws_address} -sdk_ws_port ${sdk_ws_ports[0]} -openIM_log_level ${logLevel} >>../logs/openIM.log 2>&1 & + nohup ./${sdk_server_name} -openIM_ws_address ${ws_address} -sdk_ws_port ${sdk_ws_ports[0]} -openIM_api_address ${api_address} -openIM_log_level ${logLevel} >>../logs/openIM.log 2>&1 & #Check launched service process sleep 3 From de67b9465ad6816bf5b4781a48f1173b89409afa Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 24 Aug 2022 15:42:27 +0800 Subject: [PATCH 225/230] callback add ex field and sdk server shell update --- script/sdk_svr_start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/sdk_svr_start.sh b/script/sdk_svr_start.sh index 2f16c9834..a8e4dc362 100644 --- a/script/sdk_svr_start.sh +++ b/script/sdk_svr_start.sh @@ -24,7 +24,7 @@ fi #Waiting port recycling sleep 1 cd ${sdk_server_binary_root} - nohup ./${sdk_server_name} -openIM_ws_address ${ws_address} -sdk_ws_port ${sdk_ws_ports[0]} -openIM_api_address ${api_address} -openIM_log_level ${logLevel} >>../logs/openIM.log 2>&1 & + nohup ./${sdk_server_name} -openIM_ws_address ${ws_address} -sdk_ws_port ${sdk_ws_ports[0]} -openIM_api_address ${api_address} -openIM_log_level ${logLevel} >>../logs/openIM.log 2>&1 & #Check launched service process sleep 3 From 0941a8e0166da72e67e96aa36f3f71dd74fdd3ca Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 24 Aug 2022 15:45:13 +0800 Subject: [PATCH 226/230] shell update --- script/sdk_svr_start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/sdk_svr_start.sh b/script/sdk_svr_start.sh index a8e4dc362..0432ebbfd 100644 --- a/script/sdk_svr_start.sh +++ b/script/sdk_svr_start.sh @@ -24,7 +24,7 @@ fi #Waiting port recycling sleep 1 cd ${sdk_server_binary_root} - nohup ./${sdk_server_name} -openIM_ws_address ${ws_address} -sdk_ws_port ${sdk_ws_ports[0]} -openIM_api_address ${api_address} -openIM_log_level ${logLevel} >>../logs/openIM.log 2>&1 & + nohup ./${sdk_server_name} -sdk_ws_port ${sdk_ws_ports[0]} -openIM_api_address ${api_address} -openIM_log_level ${logLevel} -openIM_ws_address ${ws_address} >>../logs/openIM.log 2>&1 & #Check launched service process sleep 3 From e172364e868d72ab748763fca10e8e36f2557b97 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 24 Aug 2022 15:51:23 +0800 Subject: [PATCH 227/230] shell update --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 984d8175a..88196ecbe 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -102,8 +102,8 @@ cmsapi: sdk: openImSdkWsPort: [ 10003 ] #jssdk服务端口,默认即可,项目中使用jssdk才需开放此端口或做nginx转发 dataDir: [ ../db/sdk/ ] - openImWsAddress: - openImApiAddress: + openImWsAddress: "ws://127.0.0.1:10001" + openImApiAddress: "http://127.0.0.1:10002" #对象存储服务,以下配置二选一,目前支持两种,腾讯云和minio,二者配置好其中一种即可(如果使用minio参考https://doc.rentsoft.cn/#/qa/minio搭建minio服务器) credential: #腾讯cos,发送图片、视频、文件时需要,请自行申请后替换,必须修改 From 059dd1993ae647a7ebf6ba09115a5255b68342b4 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 24 Aug 2022 15:51:50 +0800 Subject: [PATCH 228/230] shell update --- script/sdk_svr_start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/sdk_svr_start.sh b/script/sdk_svr_start.sh index 0432ebbfd..a8e4dc362 100644 --- a/script/sdk_svr_start.sh +++ b/script/sdk_svr_start.sh @@ -24,7 +24,7 @@ fi #Waiting port recycling sleep 1 cd ${sdk_server_binary_root} - nohup ./${sdk_server_name} -sdk_ws_port ${sdk_ws_ports[0]} -openIM_api_address ${api_address} -openIM_log_level ${logLevel} -openIM_ws_address ${ws_address} >>../logs/openIM.log 2>&1 & + nohup ./${sdk_server_name} -openIM_ws_address ${ws_address} -sdk_ws_port ${sdk_ws_ports[0]} -openIM_api_address ${api_address} -openIM_log_level ${logLevel} >>../logs/openIM.log 2>&1 & #Check launched service process sleep 3 From 4203c4d30c4dc0aee71c57b6995f58caf1959153 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 24 Aug 2022 16:15:24 +0800 Subject: [PATCH 229/230] shell update --- script/sdk_svr_start.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script/sdk_svr_start.sh b/script/sdk_svr_start.sh index a8e4dc362..115ceff82 100644 --- a/script/sdk_svr_start.sh +++ b/script/sdk_svr_start.sh @@ -5,8 +5,8 @@ source ./path_info.cfg source ./function.sh ulimit -n 200000 -ws_address=$(cat $config_path | grep openImWsAddress | awk -F '[:]' '{print $NF}') -api_address=$(cat $config_path | grep openImApiAddress | awk -F '[:]' '{print $NF}') +ws_address=$(cat $config_path | grep openImWsAddress | awk -F '[ ]' '{print $NF}') +api_address=$(cat $config_path | grep openImApiAddress | awk -F '[ ]' '{print $NF}') list3=$(cat $config_path | grep openImSdkWsPort | awk -F '[:]' '{print $NF}') logLevel=$(cat $config_path | grep remainLogLevel | awk -F '[:]' '{print $NF}') list_to_string $list3 From 221b4587d42e1a6b63d3cfc38b6cc53765d73f3b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 24 Aug 2022 16:20:31 +0800 Subject: [PATCH 230/230] shell update --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 88196ecbe..7236c9c32 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -102,8 +102,8 @@ cmsapi: sdk: openImSdkWsPort: [ 10003 ] #jssdk服务端口,默认即可,项目中使用jssdk才需开放此端口或做nginx转发 dataDir: [ ../db/sdk/ ] - openImWsAddress: "ws://127.0.0.1:10001" - openImApiAddress: "http://127.0.0.1:10002" + openImWsAddress: ws://127.0.0.1:10001 + openImApiAddress: http://127.0.0.1:10002 #对象存储服务,以下配置二选一,目前支持两种,腾讯云和minio,二者配置好其中一种即可(如果使用minio参考https://doc.rentsoft.cn/#/qa/minio搭建minio服务器) credential: #腾讯cos,发送图片、视频、文件时需要,请自行申请后替换,必须修改