From 276ec1f404b819f8e745d1b5a16278d493fe5a3d Mon Sep 17 00:00:00 2001 From: chao <48119764+withchao@users.noreply.github.com> Date: Wed, 30 Oct 2024 17:15:51 +0800 Subject: [PATCH] fix: too many tokens (#612) --- internal/api/admin/admin.go | 20 + internal/api/admin/start.go | 7 + internal/api/chat/chat.go | 8 + internal/api/chat/start.go | 4 + internal/rpc/admin/application.go | 128 ++ pkg/common/db/database/admin.go | 32 + pkg/common/db/model/admin/application.go | 83 + pkg/common/db/table/admin/application.go | 29 + pkg/protocol/admin/admin.pb.go | 2143 +++++++++++++++++----- pkg/protocol/admin/admin.proto | 76 + 10 files changed, 2032 insertions(+), 498 deletions(-) create mode 100644 internal/rpc/admin/application.go create mode 100644 pkg/common/db/model/admin/application.go create mode 100644 pkg/common/db/table/admin/application.go diff --git a/internal/api/admin/admin.go b/internal/api/admin/admin.go index df0d8531e..e4f34b906 100644 --- a/internal/api/admin/admin.go +++ b/internal/api/admin/admin.go @@ -566,3 +566,23 @@ func (o *Api) SetAllowRegister(c *gin.Context) { func (o *Api) GetAllowRegister(c *gin.Context) { a2r.Call(chat.ChatClient.GetAllowRegister, o.chatClient, c) } + +func (o *Api) LatestApplicationVersion(c *gin.Context) { + a2r.Call(admin.AdminClient.LatestApplicationVersion, o.adminClient, c) +} + +func (o *Api) PageApplicationVersion(c *gin.Context) { + a2r.Call(admin.AdminClient.PageApplicationVersion, o.adminClient, c) +} + +func (o *Api) AddApplicationVersion(c *gin.Context) { + a2r.Call(admin.AdminClient.AddApplicationVersion, o.adminClient, c) +} + +func (o *Api) UpdateApplicationVersion(c *gin.Context) { + a2r.Call(admin.AdminClient.UpdateApplicationVersion, o.adminClient, c) +} + +func (o *Api) DeleteApplicationVersion(c *gin.Context) { + a2r.Call(admin.AdminClient.DeleteApplicationVersion, o.adminClient, c) +} diff --git a/internal/api/admin/start.go b/internal/api/admin/start.go index fc53c94f8..3aa1e717d 100644 --- a/internal/api/admin/start.go +++ b/internal/api/admin/start.go @@ -135,4 +135,11 @@ func SetAdminRoute(router gin.IRouter, admin *Api, mw *chatmw.MW) { statistic := router.Group("/statistic", mw.CheckAdmin) statistic.POST("/new_user_count", admin.NewUserCount) statistic.POST("/login_user_count", admin.LoginUserCount) + + applicationGroup := router.Group("application") + applicationGroup.POST("/add_version", mw.CheckAdmin, admin.AddApplicationVersion) + applicationGroup.POST("/update_version", mw.CheckAdmin, admin.UpdateApplicationVersion) + applicationGroup.POST("/delete_version", mw.CheckAdmin, admin.DeleteApplicationVersion) + applicationGroup.POST("/latest_version", admin.LatestApplicationVersion) + applicationGroup.POST("/page_versions", admin.PageApplicationVersion) } diff --git a/internal/api/chat/chat.go b/internal/api/chat/chat.go index eca5e3bbe..d6d8d51e1 100644 --- a/internal/api/chat/chat.go +++ b/internal/api/chat/chat.go @@ -360,3 +360,11 @@ func (o *Api) SearchFriend(c *gin.Context) { } apiresp.GinSuccess(c, resp) } + +func (o *Api) LatestApplicationVersion(c *gin.Context) { + a2r.Call(admin.AdminClient.LatestApplicationVersion, o.adminClient, c) +} + +func (o *Api) PageApplicationVersion(c *gin.Context) { + a2r.Call(admin.AdminClient.PageApplicationVersion, o.adminClient, c) +} diff --git a/internal/api/chat/start.go b/internal/api/chat/start.go index 22cb38bf1..81b250cd1 100644 --- a/internal/api/chat/start.go +++ b/internal/api/chat/start.go @@ -86,5 +86,9 @@ func SetChatRoute(router gin.IRouter, chat *Api, mw *chatmw.MW) { router.Group("/client_config").POST("/get", chat.GetClientConfig) // Get client initialization configuration + applicationGroup := router.Group("application") + applicationGroup.POST("/latest_version", chat.LatestApplicationVersion) + applicationGroup.POST("/page_versions", chat.PageApplicationVersion) + router.Group("/callback").POST("/open_im", chat.OpenIMCallback) // Callback } diff --git a/internal/rpc/admin/application.go b/internal/rpc/admin/application.go new file mode 100644 index 000000000..6aff546de --- /dev/null +++ b/internal/rpc/admin/application.go @@ -0,0 +1,128 @@ +package admin + +import ( + "context" + admindb "github.com/openimsdk/chat/pkg/common/db/table/admin" + "github.com/openimsdk/chat/pkg/common/mctx" + "github.com/openimsdk/chat/pkg/protocol/admin" + "github.com/openimsdk/tools/errs" + "github.com/openimsdk/tools/utils/datautil" + "github.com/redis/go-redis/v9" + "go.mongodb.org/mongo-driver/bson/primitive" + "go.mongodb.org/mongo-driver/mongo" + "time" +) + +func IsNotFound(err error) bool { + switch errs.Unwrap(err) { + case redis.Nil, mongo.ErrNoDocuments: + return true + default: + return false + } +} + +func (o *adminServer) db2pbApplication(val *admindb.Application) *admin.ApplicationVersion { + return &admin.ApplicationVersion{ + Id: val.ID.Hex(), + Platform: val.Platform, + Version: val.Version, + Url: val.Url, + Text: val.Text, + Force: val.Force, + Latest: val.Latest, + Hot: val.Hot, + CreateTime: val.CreateTime.UnixMilli(), + } +} + +func (o *adminServer) LatestApplicationVersion(ctx context.Context, req *admin.LatestApplicationVersionReq) (*admin.LatestApplicationVersionResp, error) { + res, err := o.Database.LatestVersion(ctx, req.Platform) + if err == nil { + return &admin.LatestApplicationVersionResp{Version: o.db2pbApplication(res)}, nil + } else if IsNotFound(err) { + return &admin.LatestApplicationVersionResp{}, nil + } else { + return nil, err + } +} + +func (o *adminServer) AddApplicationVersion(ctx context.Context, req *admin.AddApplicationVersionReq) (*admin.AddApplicationVersionResp, error) { + if _, err := mctx.CheckAdmin(ctx); err != nil { + return nil, err + } + val := &admindb.Application{ + ID: primitive.NewObjectID(), + Platform: req.Platform, + Version: req.Version, + Url: req.Url, + Text: req.Text, + Force: req.Force, + Latest: req.Latest, + Hot: req.Hot, + CreateTime: time.Now(), + } + if err := o.Database.AddVersion(ctx, val); err != nil { + return nil, err + } + return &admin.AddApplicationVersionResp{}, nil +} + +func (o *adminServer) UpdateApplicationVersion(ctx context.Context, req *admin.UpdateApplicationVersionReq) (*admin.UpdateApplicationVersionResp, error) { + if _, err := mctx.CheckAdmin(ctx); err != nil { + return nil, err + } + oid, err := primitive.ObjectIDFromHex(req.Id) + if err != nil { + return nil, errs.ErrArgs.WrapMsg("invalid id " + err.Error()) + } + update := make(map[string]any) + putUpdate(update, "platform", req.Platform) + putUpdate(update, "version", req.Version) + putUpdate(update, "url", req.Url) + putUpdate(update, "text", req.Text) + putUpdate(update, "force", req.Force) + putUpdate(update, "latest", req.Latest) + putUpdate(update, "hot", req.Hot) + if err := o.Database.UpdateVersion(ctx, oid, update); err != nil { + return nil, err + } + return &admin.UpdateApplicationVersionResp{}, nil +} + +func (o *adminServer) DeleteApplicationVersion(ctx context.Context, req *admin.DeleteApplicationVersionReq) (*admin.DeleteApplicationVersionResp, error) { + if _, err := mctx.CheckAdmin(ctx); err != nil { + return nil, err + } + ids := make([]primitive.ObjectID, 0, len(req.Id)) + for _, id := range req.Id { + oid, err := primitive.ObjectIDFromHex(id) + if err != nil { + return nil, errs.ErrArgs.WrapMsg("invalid id " + err.Error()) + } + ids = append(ids, oid) + } + if err := o.Database.DeleteVersion(ctx, ids); err != nil { + return nil, err + } + return &admin.DeleteApplicationVersionResp{}, nil +} + +func (o *adminServer) PageApplicationVersion(ctx context.Context, req *admin.PageApplicationVersionReq) (*admin.PageApplicationVersionResp, error) { + total, res, err := o.Database.PageVersion(ctx, req.Platform, req.Pagination) + if err != nil { + return nil, err + } + return &admin.PageApplicationVersionResp{ + Total: total, + Versions: datautil.Slice(res, o.db2pbApplication), + }, nil +} + +func putUpdate[T any](update map[string]any, name string, val interface{ GetValuePtr() *T }) { + ptrVal := val.GetValuePtr() + if ptrVal == nil { + return + } + update[name] = *ptrVal +} diff --git a/pkg/common/db/database/admin.go b/pkg/common/db/database/admin.go index 820864df1..2335add82 100644 --- a/pkg/common/db/database/admin.go +++ b/pkg/common/db/database/admin.go @@ -16,6 +16,7 @@ package database import ( "context" + "go.mongodb.org/mongo-driver/bson/primitive" "time" "github.com/openimsdk/chat/pkg/common/db/cache" @@ -78,6 +79,11 @@ type AdminDatabaseInterface interface { CacheToken(ctx context.Context, userID string, token string, expire time.Duration) error GetTokens(ctx context.Context, userID string) (map[string]int32, error) DeleteToken(ctx context.Context, userID string) error + LatestVersion(ctx context.Context, platform string) (*admindb.Application, error) + AddVersion(ctx context.Context, val *admindb.Application) error + UpdateVersion(ctx context.Context, id primitive.ObjectID, update map[string]any) error + DeleteVersion(ctx context.Context, id []primitive.ObjectID) error + PageVersion(ctx context.Context, platforms []string, page pagination.Pagination) (int64, []*admindb.Application, error) } func NewAdminDatabase(cli *mongoutil.Client, rdb redis.UniversalClient) (AdminDatabaseInterface, error) { @@ -117,6 +123,10 @@ func NewAdminDatabase(cli *mongoutil.Client, rdb redis.UniversalClient) (AdminDa if err != nil { return nil, err } + application, err := admin.NewApplication(cli.GetDB()) + if err != nil { + return nil, err + } return &AdminDatabase{ tx: cli.GetTx(), admin: a, @@ -128,6 +138,7 @@ func NewAdminDatabase(cli *mongoutil.Client, rdb redis.UniversalClient) (AdminDa registerAddGroup: registerAddGroup, applet: applet, clientConfig: clientConfig, + application: application, cache: cache.NewTokenInterface(rdb), }, nil } @@ -143,6 +154,7 @@ type AdminDatabase struct { registerAddGroup admindb.RegisterAddGroupInterface applet admindb.AppletInterface clientConfig admindb.ClientConfigInterface + application admindb.ApplicationInterface cache cache.TokenInterface } @@ -347,3 +359,23 @@ func (o *AdminDatabase) GetTokens(ctx context.Context, userID string) (map[strin func (o *AdminDatabase) DeleteToken(ctx context.Context, userID string) error { return o.cache.DeleteTokenByUid(ctx, userID) } + +func (o *AdminDatabase) LatestVersion(ctx context.Context, platform string) (*admindb.Application, error) { + return o.application.LatestVersion(ctx, platform) +} + +func (o *AdminDatabase) AddVersion(ctx context.Context, val *admindb.Application) error { + return o.application.AddVersion(ctx, val) +} + +func (o *AdminDatabase) UpdateVersion(ctx context.Context, id primitive.ObjectID, update map[string]any) error { + return o.application.UpdateVersion(ctx, id, update) +} + +func (o *AdminDatabase) DeleteVersion(ctx context.Context, id []primitive.ObjectID) error { + return o.application.DeleteVersion(ctx, id) +} + +func (o *AdminDatabase) PageVersion(ctx context.Context, platforms []string, page pagination.Pagination) (int64, []*admindb.Application, error) { + return o.application.PageVersion(ctx, platforms, page) +} diff --git a/pkg/common/db/model/admin/application.go b/pkg/common/db/model/admin/application.go new file mode 100644 index 000000000..e69268d21 --- /dev/null +++ b/pkg/common/db/model/admin/application.go @@ -0,0 +1,83 @@ +package admin + +import ( + "context" + "github.com/openimsdk/chat/pkg/common/db/table/admin" + admindb "github.com/openimsdk/chat/pkg/common/db/table/admin" + "github.com/openimsdk/tools/db/mongoutil" + "github.com/openimsdk/tools/db/pagination" + "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/bson/primitive" + "go.mongodb.org/mongo-driver/mongo" + "go.mongodb.org/mongo-driver/mongo/options" +) + +func NewApplication(db *mongo.Database) (admindb.ApplicationInterface, error) { + coll := db.Collection("application") + _, err := coll.Indexes().CreateMany(context.Background(), []mongo.IndexModel{ + { + Keys: bson.D{ + {Key: "platform", Value: 1}, + {Key: "version", Value: 1}, + }, + Options: options.Index().SetUnique(true), + }, + { + Keys: bson.D{ + {Key: "latest", Value: -1}, + }, + }, + }) + if err != nil { + return nil, err + } + return &ApplicationMgo{coll: coll}, nil +} + +type ApplicationMgo struct { + coll *mongo.Collection +} + +func (a *ApplicationMgo) sort() any { + return bson.D{{"latest", -1}, {"_id", -1}} +} + +func (a *ApplicationMgo) LatestVersion(ctx context.Context, platform string) (*admin.Application, error) { + return mongoutil.FindOne[*admin.Application](ctx, a.coll, bson.M{"platform": platform}, options.FindOne().SetSort(a.sort())) +} + +func (a *ApplicationMgo) AddVersion(ctx context.Context, val *admin.Application) error { + if val.ID.IsZero() { + val.ID = primitive.NewObjectID() + } + return mongoutil.InsertMany(ctx, a.coll, []*admin.Application{val}) +} + +func (a *ApplicationMgo) UpdateVersion(ctx context.Context, id primitive.ObjectID, update map[string]any) error { + if len(update) == 0 { + return nil + } + return mongoutil.UpdateOne(ctx, a.coll, bson.M{"_id": id}, bson.M{"$set": update}, true) +} + +func (a *ApplicationMgo) DeleteVersion(ctx context.Context, id []primitive.ObjectID) error { + if len(id) == 0 { + return nil + } + return mongoutil.DeleteMany(ctx, a.coll, bson.M{"_id": bson.M{"$in": id}}) +} + +func (a *ApplicationMgo) PageVersion(ctx context.Context, platforms []string, page pagination.Pagination) (int64, []*admin.Application, error) { + filter := bson.M{} + if len(platforms) > 0 { + filter["platform"] = bson.M{"$in": platforms} + } + return mongoutil.FindPage[*admin.Application](ctx, a.coll, filter, page, options.Find().SetSort(a.sort())) +} + +func (a *ApplicationMgo) FindPlatform(ctx context.Context, id []primitive.ObjectID) ([]string, error) { + if len(id) == 0 { + return nil, nil + } + return mongoutil.Find[string](ctx, a.coll, bson.M{"_id": bson.M{"$in": id}}, options.Find().SetProjection(bson.M{"_id": 0, "platform": 1})) +} diff --git a/pkg/common/db/table/admin/application.go b/pkg/common/db/table/admin/application.go new file mode 100644 index 000000000..44333fa3a --- /dev/null +++ b/pkg/common/db/table/admin/application.go @@ -0,0 +1,29 @@ +package admin + +import ( + "context" + "github.com/openimsdk/tools/db/pagination" + "go.mongodb.org/mongo-driver/bson/primitive" + "time" +) + +type Application struct { + ID primitive.ObjectID `bson:"_id"` + Platform string `bson:"platform"` + Hot bool `bson:"hot"` + Version string `bson:"version"` + Url string `bson:"url"` + Text string `bson:"text"` + Force bool `bson:"force"` + Latest bool `bson:"latest"` + CreateTime time.Time `bson:"create_time"` +} + +type ApplicationInterface interface { + LatestVersion(ctx context.Context, platform string) (*Application, error) + AddVersion(ctx context.Context, val *Application) error + UpdateVersion(ctx context.Context, id primitive.ObjectID, update map[string]any) error + DeleteVersion(ctx context.Context, id []primitive.ObjectID) error + PageVersion(ctx context.Context, platforms []string, page pagination.Pagination) (int64, []*Application, error) + FindPlatform(ctx context.Context, id []primitive.ObjectID) ([]string, error) +} diff --git a/pkg/protocol/admin/admin.pb.go b/pkg/protocol/admin/admin.pb.go index 9b8161e14..309326fbe 100644 --- a/pkg/protocol/admin/admin.pb.go +++ b/pkg/protocol/admin/admin.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.33.0 -// protoc v5.27.1 +// protoc v5.26.0 // source: admin/admin.proto package admin @@ -5398,6 +5398,688 @@ func (x *GetUserTokenResp) GetTokensMap() map[string]int32 { return nil } +type ApplicationVersion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Platform string `protobuf:"bytes,2,opt,name=platform,proto3" json:"platform"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version"` + Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url"` + Text string `protobuf:"bytes,5,opt,name=text,proto3" json:"text"` + Force bool `protobuf:"varint,6,opt,name=force,proto3" json:"force"` + Latest bool `protobuf:"varint,7,opt,name=latest,proto3" json:"latest"` + Hot bool `protobuf:"varint,8,opt,name=hot,proto3" json:"hot"` + CreateTime int64 `protobuf:"varint,9,opt,name=createTime,proto3" json:"createTime"` +} + +func (x *ApplicationVersion) Reset() { + *x = ApplicationVersion{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_admin_proto_msgTypes[103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplicationVersion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplicationVersion) ProtoMessage() {} + +func (x *ApplicationVersion) ProtoReflect() protoreflect.Message { + mi := &file_admin_admin_proto_msgTypes[103] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApplicationVersion.ProtoReflect.Descriptor instead. +func (*ApplicationVersion) Descriptor() ([]byte, []int) { + return file_admin_admin_proto_rawDescGZIP(), []int{103} +} + +func (x *ApplicationVersion) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ApplicationVersion) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *ApplicationVersion) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *ApplicationVersion) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *ApplicationVersion) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +func (x *ApplicationVersion) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +func (x *ApplicationVersion) GetLatest() bool { + if x != nil { + return x.Latest + } + return false +} + +func (x *ApplicationVersion) GetHot() bool { + if x != nil { + return x.Hot + } + return false +} + +func (x *ApplicationVersion) GetCreateTime() int64 { + if x != nil { + return x.CreateTime + } + return 0 +} + +type LatestApplicationVersionReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,2,opt,name=platform,proto3" json:"platform"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version"` +} + +func (x *LatestApplicationVersionReq) Reset() { + *x = LatestApplicationVersionReq{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_admin_proto_msgTypes[104] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LatestApplicationVersionReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LatestApplicationVersionReq) ProtoMessage() {} + +func (x *LatestApplicationVersionReq) ProtoReflect() protoreflect.Message { + mi := &file_admin_admin_proto_msgTypes[104] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LatestApplicationVersionReq.ProtoReflect.Descriptor instead. +func (*LatestApplicationVersionReq) Descriptor() ([]byte, []int) { + return file_admin_admin_proto_rawDescGZIP(), []int{104} +} + +func (x *LatestApplicationVersionReq) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *LatestApplicationVersionReq) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +type LatestApplicationVersionResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version *ApplicationVersion `protobuf:"bytes,1,opt,name=version,proto3" json:"version"` +} + +func (x *LatestApplicationVersionResp) Reset() { + *x = LatestApplicationVersionResp{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_admin_proto_msgTypes[105] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LatestApplicationVersionResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LatestApplicationVersionResp) ProtoMessage() {} + +func (x *LatestApplicationVersionResp) ProtoReflect() protoreflect.Message { + mi := &file_admin_admin_proto_msgTypes[105] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LatestApplicationVersionResp.ProtoReflect.Descriptor instead. +func (*LatestApplicationVersionResp) Descriptor() ([]byte, []int) { + return file_admin_admin_proto_rawDescGZIP(), []int{105} +} + +func (x *LatestApplicationVersionResp) GetVersion() *ApplicationVersion { + if x != nil { + return x.Version + } + return nil +} + +type AddApplicationVersionReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version"` + Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url"` + Text string `protobuf:"bytes,4,opt,name=text,proto3" json:"text"` + Force bool `protobuf:"varint,5,opt,name=force,proto3" json:"force"` + Latest bool `protobuf:"varint,6,opt,name=latest,proto3" json:"latest"` + Hot bool `protobuf:"varint,7,opt,name=hot,proto3" json:"hot"` +} + +func (x *AddApplicationVersionReq) Reset() { + *x = AddApplicationVersionReq{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_admin_proto_msgTypes[106] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddApplicationVersionReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddApplicationVersionReq) ProtoMessage() {} + +func (x *AddApplicationVersionReq) ProtoReflect() protoreflect.Message { + mi := &file_admin_admin_proto_msgTypes[106] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddApplicationVersionReq.ProtoReflect.Descriptor instead. +func (*AddApplicationVersionReq) Descriptor() ([]byte, []int) { + return file_admin_admin_proto_rawDescGZIP(), []int{106} +} + +func (x *AddApplicationVersionReq) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *AddApplicationVersionReq) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *AddApplicationVersionReq) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *AddApplicationVersionReq) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +func (x *AddApplicationVersionReq) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +func (x *AddApplicationVersionReq) GetLatest() bool { + if x != nil { + return x.Latest + } + return false +} + +func (x *AddApplicationVersionReq) GetHot() bool { + if x != nil { + return x.Hot + } + return false +} + +type AddApplicationVersionResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AddApplicationVersionResp) Reset() { + *x = AddApplicationVersionResp{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_admin_proto_msgTypes[107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddApplicationVersionResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddApplicationVersionResp) ProtoMessage() {} + +func (x *AddApplicationVersionResp) ProtoReflect() protoreflect.Message { + mi := &file_admin_admin_proto_msgTypes[107] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddApplicationVersionResp.ProtoReflect.Descriptor instead. +func (*AddApplicationVersionResp) Descriptor() ([]byte, []int) { + return file_admin_admin_proto_rawDescGZIP(), []int{107} +} + +type UpdateApplicationVersionReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Platform *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=platform,proto3" json:"platform"` + Version *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=version,proto3" json:"version"` + Url *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=url,proto3" json:"url"` + Text *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=text,proto3" json:"text"` + Force *wrapperspb.BoolValue `protobuf:"bytes,6,opt,name=force,proto3" json:"force"` + Latest *wrapperspb.BoolValue `protobuf:"bytes,7,opt,name=latest,proto3" json:"latest"` + Hot *wrapperspb.BoolValue `protobuf:"bytes,8,opt,name=hot,proto3" json:"hot"` +} + +func (x *UpdateApplicationVersionReq) Reset() { + *x = UpdateApplicationVersionReq{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_admin_proto_msgTypes[108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateApplicationVersionReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateApplicationVersionReq) ProtoMessage() {} + +func (x *UpdateApplicationVersionReq) ProtoReflect() protoreflect.Message { + mi := &file_admin_admin_proto_msgTypes[108] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateApplicationVersionReq.ProtoReflect.Descriptor instead. +func (*UpdateApplicationVersionReq) Descriptor() ([]byte, []int) { + return file_admin_admin_proto_rawDescGZIP(), []int{108} +} + +func (x *UpdateApplicationVersionReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *UpdateApplicationVersionReq) GetPlatform() *wrapperspb.StringValue { + if x != nil { + return x.Platform + } + return nil +} + +func (x *UpdateApplicationVersionReq) GetVersion() *wrapperspb.StringValue { + if x != nil { + return x.Version + } + return nil +} + +func (x *UpdateApplicationVersionReq) GetUrl() *wrapperspb.StringValue { + if x != nil { + return x.Url + } + return nil +} + +func (x *UpdateApplicationVersionReq) GetText() *wrapperspb.StringValue { + if x != nil { + return x.Text + } + return nil +} + +func (x *UpdateApplicationVersionReq) GetForce() *wrapperspb.BoolValue { + if x != nil { + return x.Force + } + return nil +} + +func (x *UpdateApplicationVersionReq) GetLatest() *wrapperspb.BoolValue { + if x != nil { + return x.Latest + } + return nil +} + +func (x *UpdateApplicationVersionReq) GetHot() *wrapperspb.BoolValue { + if x != nil { + return x.Hot + } + return nil +} + +type UpdateApplicationVersionResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateApplicationVersionResp) Reset() { + *x = UpdateApplicationVersionResp{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_admin_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateApplicationVersionResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateApplicationVersionResp) ProtoMessage() {} + +func (x *UpdateApplicationVersionResp) ProtoReflect() protoreflect.Message { + mi := &file_admin_admin_proto_msgTypes[109] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateApplicationVersionResp.ProtoReflect.Descriptor instead. +func (*UpdateApplicationVersionResp) Descriptor() ([]byte, []int) { + return file_admin_admin_proto_rawDescGZIP(), []int{109} +} + +type DeleteApplicationVersionReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []string `protobuf:"bytes,1,rep,name=id,proto3" json:"id"` +} + +func (x *DeleteApplicationVersionReq) Reset() { + *x = DeleteApplicationVersionReq{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_admin_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteApplicationVersionReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteApplicationVersionReq) ProtoMessage() {} + +func (x *DeleteApplicationVersionReq) ProtoReflect() protoreflect.Message { + mi := &file_admin_admin_proto_msgTypes[110] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteApplicationVersionReq.ProtoReflect.Descriptor instead. +func (*DeleteApplicationVersionReq) Descriptor() ([]byte, []int) { + return file_admin_admin_proto_rawDescGZIP(), []int{110} +} + +func (x *DeleteApplicationVersionReq) GetId() []string { + if x != nil { + return x.Id + } + return nil +} + +type DeleteApplicationVersionResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteApplicationVersionResp) Reset() { + *x = DeleteApplicationVersionResp{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_admin_proto_msgTypes[111] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteApplicationVersionResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteApplicationVersionResp) ProtoMessage() {} + +func (x *DeleteApplicationVersionResp) ProtoReflect() protoreflect.Message { + mi := &file_admin_admin_proto_msgTypes[111] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteApplicationVersionResp.ProtoReflect.Descriptor instead. +func (*DeleteApplicationVersionResp) Descriptor() ([]byte, []int) { + return file_admin_admin_proto_rawDescGZIP(), []int{111} +} + +type PageApplicationVersionReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform []string `protobuf:"bytes,1,rep,name=platform,proto3" json:"platform"` + Pagination *sdkws.RequestPagination `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination"` +} + +func (x *PageApplicationVersionReq) Reset() { + *x = PageApplicationVersionReq{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_admin_proto_msgTypes[112] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PageApplicationVersionReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PageApplicationVersionReq) ProtoMessage() {} + +func (x *PageApplicationVersionReq) ProtoReflect() protoreflect.Message { + mi := &file_admin_admin_proto_msgTypes[112] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PageApplicationVersionReq.ProtoReflect.Descriptor instead. +func (*PageApplicationVersionReq) Descriptor() ([]byte, []int) { + return file_admin_admin_proto_rawDescGZIP(), []int{112} +} + +func (x *PageApplicationVersionReq) GetPlatform() []string { + if x != nil { + return x.Platform + } + return nil +} + +func (x *PageApplicationVersionReq) GetPagination() *sdkws.RequestPagination { + if x != nil { + return x.Pagination + } + return nil +} + +type PageApplicationVersionResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` + Versions []*ApplicationVersion `protobuf:"bytes,2,rep,name=versions,proto3" json:"versions"` +} + +func (x *PageApplicationVersionResp) Reset() { + *x = PageApplicationVersionResp{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_admin_proto_msgTypes[113] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PageApplicationVersionResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PageApplicationVersionResp) ProtoMessage() {} + +func (x *PageApplicationVersionResp) ProtoReflect() protoreflect.Message { + mi := &file_admin_admin_proto_msgTypes[113] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PageApplicationVersionResp.ProtoReflect.Descriptor instead. +func (*PageApplicationVersionResp) Descriptor() ([]byte, []int) { + return file_admin_admin_proto_rawDescGZIP(), []int{113} +} + +func (x *PageApplicationVersionResp) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *PageApplicationVersionResp) GetVersions() []*ApplicationVersion { + if x != nil { + return x.Versions + } + return nil +} + var File_admin_admin_proto protoreflect.FileDescriptor var file_admin_admin_proto_rawDesc = []byte{ @@ -5925,270 +6607,391 @@ var file_admin_admin_proto_rawDesc = []byte{ 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x32, 0xbe, 0x20, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x38, 0x0a, 0x05, 0x4c, - 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x69, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x53, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, - 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, 0x0f, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, - 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, - 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x4d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x1a, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x56, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x13, 0x43, 0x68, 0x61, + 0x01, 0x22, 0xe0, 0x01, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x65, 0x78, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x03, 0x68, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x22, 0x53, 0x0a, 0x1b, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5a, 0x0a, 0x1c, 0x4c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb6, 0x01, 0x0a, 0x18, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, + 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, + 0x6f, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x68, 0x6f, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x68, 0x6f, 0x74, 0x22, 0x1b, + 0x0a, 0x19, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x95, 0x03, 0x0a, 0x1b, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x38, 0x0a, 0x08, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x36, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, + 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x30, 0x0a, + 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, + 0x30, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x12, 0x32, 0x0a, 0x06, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x68, 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, + 0x68, 0x6f, 0x74, 0x22, 0x1e, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x2d, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x78, 0x0a, 0x19, 0x50, 0x61, 0x67, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x3f, 0x0a, 0x0a, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x70, 0x0a, 0x1a, + 0x50, 0x61, 0x67, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x12, 0x3c, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0xee, + 0x24, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x38, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x12, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x53, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, 0x0f, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x4d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x56, + 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x24, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, - 0x0f, 0x44, 0x65, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x44, 0x65, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5f, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, - 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x59, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, 0x0f, 0x44, 0x65, + 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, + 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, + 0x65, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x5f, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, + 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x59, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, - 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x59, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, + 0x61, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x59, + 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, - 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x11, - 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x13, 0x53, 0x65, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x11, 0x46, 0x69, 0x6e, + 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x22, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x46, 0x69, + 0x6e, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x24, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x56, - 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x41, 0x64, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x59, - 0x0a, 0x10, 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5f, 0x0a, 0x12, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, + 0x64, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x11, 0x41, 0x64, - 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, - 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x6e, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x47, 0x65, 0x6e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5f, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, 0x0f, 0x41, + 0x64, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x20, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, + 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, + 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x41, 0x64, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, + 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x59, 0x0a, 0x10, 0x46, + 0x69, 0x6e, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x46, + 0x69, 0x6e, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5f, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x49, 0x6e, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x73, 0x65, 0x49, + 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x55, 0x73, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x49, 0x6e, 0x76, 0x69, + 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x49, 0x6e, 0x76, + 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, - 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x65, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x16, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x50, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4c, - 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x50, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x50, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4c, 0x6f, - 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x50, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x24, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, - 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x50, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x69, - 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x50, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x13, 0x44, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, + 0x6e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x5f, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x24, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x46, 0x69, + 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x73, 0x65, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x73, 0x65, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x65, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, + 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x16, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x50, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x50, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x50, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x50, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x24, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x50, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, + 0x71, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x50, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x50, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, + 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x50, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x50, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, - 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x50, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x5c, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x50, 0x46, 0x6f, 0x72, 0x62, 0x69, - 0x64, 0x64, 0x65, 0x6e, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x50, 0x46, 0x6f, 0x72, 0x62, - 0x69, 0x64, 0x64, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, - 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x50, - 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x53, 0x0a, - 0x0e, 0x41, 0x64, 0x64, 0x49, 0x50, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, - 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, - 0x64, 0x64, 0x49, 0x50, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x52, 0x65, 0x71, - 0x1a, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x41, 0x64, 0x64, 0x49, 0x50, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x53, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x49, 0x50, 0x46, 0x6f, 0x72, 0x62, 0x69, - 0x64, 0x64, 0x65, 0x6e, 0x12, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x49, 0x50, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, - 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x49, 0x50, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, - 0x64, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x59, 0x0a, 0x10, 0x43, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x22, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x44, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4a, 0x0a, 0x0b, 0x55, 0x6e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x6e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x6e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, 0x0f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x11, - 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x16, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x62, 0x69, - 0x64, 0x64, 0x65, 0x6e, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, - 0x64, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x13, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x24, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, - 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, - 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4a, 0x0a, 0x0b, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1c, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, - 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x73, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x73, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x73, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x44, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x12, 0x1a, 0x2e, + 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x50, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x11, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x50, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, + 0x6e, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x50, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, + 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x50, 0x46, 0x6f, 0x72, + 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x53, 0x0a, 0x0e, 0x41, 0x64, + 0x64, 0x49, 0x50, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x1f, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x49, + 0x50, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, - 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, - 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x41, 0x70, 0x70, - 0x6c, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, - 0x65, 0x6c, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4d, 0x0a, 0x0c, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x0a, 0x46, - 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, - 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, + 0x49, 0x50, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x53, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x49, 0x50, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, + 0x6e, 0x12, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x44, 0x65, 0x6c, 0x49, 0x50, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x52, + 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x49, 0x50, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x59, 0x0a, 0x10, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, + 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x44, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, + 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4a, 0x0a, 0x0b, 0x55, 0x6e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x6e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x55, 0x6e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x56, 0x0a, 0x0f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x11, 0x46, 0x69, 0x6e, + 0x64, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x46, 0x69, + 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, + 0x6e, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x46, 0x6f, + 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x13, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4c, 0x6f, 0x67, + 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x24, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x52, 0x65, + 0x71, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x62, 0x69, + 0x64, 0x64, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4a, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x73, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x73, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, + 0x61, 0x72, 0x73, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, + 0x09, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, + 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, + 0x12, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x44, 0x65, 0x6c, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x41, + 0x70, 0x70, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4d, 0x0a, 0x0c, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, + 0x70, 0x70, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, + 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, + 0x70, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x0a, 0x46, 0x69, 0x6e, 0x64, + 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x4d, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x70, - 0x70, 0x6c, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, - 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, 0x0f, 0x53, - 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, - 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, - 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x53, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, - 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4d, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, 0x0f, 0x49, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x49, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, - 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x49, - 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, - 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x4d, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x65, + 0x74, 0x12, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x56, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x74, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x56, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, + 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x49, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x71, 0x0a, 0x18, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, + 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x68, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x1a, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x71, 0x0a, 0x18, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, + 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x71, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x16, 0x50, 0x61, 0x67, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x61, 0x67, 0x65, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x42, + 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x70, 0x6b, 0x67, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -6203,266 +7006,298 @@ func file_admin_admin_proto_rawDescGZIP() []byte { return file_admin_admin_proto_rawDescData } -var file_admin_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 106) +var file_admin_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 117) var file_admin_admin_proto_goTypes = []interface{}{ - (*LoginReq)(nil), // 0: openim.admin.LoginReq - (*LoginResp)(nil), // 1: openim.admin.LoginResp - (*AddAdminAccountReq)(nil), // 2: openim.admin.AddAdminAccountReq - (*AddAdminAccountResp)(nil), // 3: openim.admin.AddAdminAccountResp - (*AdminUpdateInfoReq)(nil), // 4: openim.admin.AdminUpdateInfoReq - (*AdminUpdateInfoResp)(nil), // 5: openim.admin.AdminUpdateInfoResp - (*ChangePasswordReq)(nil), // 6: openim.admin.ChangePasswordReq - (*ChangePasswordResp)(nil), // 7: openim.admin.ChangePasswordResp - (*GetAdminInfoReq)(nil), // 8: openim.admin.GetAdminInfoReq - (*ChangeAdminPasswordReq)(nil), // 9: openim.admin.ChangeAdminPasswordReq - (*ChangeAdminPasswordResp)(nil), // 10: openim.admin.ChangeAdminPasswordResp - (*DelAdminAccountReq)(nil), // 11: openim.admin.DelAdminAccountReq - (*DelAdminAccountResp)(nil), // 12: openim.admin.DelAdminAccountResp - (*SearchAdminAccountReq)(nil), // 13: openim.admin.SearchAdminAccountReq - (*SearchAdminAccountResp)(nil), // 14: openim.admin.SearchAdminAccountResp - (*GetAdminInfoResp)(nil), // 15: openim.admin.GetAdminInfoResp - (*AddDefaultFriendReq)(nil), // 16: openim.admin.AddDefaultFriendReq - (*AddDefaultFriendResp)(nil), // 17: openim.admin.AddDefaultFriendResp - (*DelDefaultFriendReq)(nil), // 18: openim.admin.DelDefaultFriendReq - (*DelDefaultFriendResp)(nil), // 19: openim.admin.DelDefaultFriendResp - (*FindDefaultFriendReq)(nil), // 20: openim.admin.FindDefaultFriendReq - (*FindDefaultFriendResp)(nil), // 21: openim.admin.FindDefaultFriendResp - (*SearchDefaultFriendReq)(nil), // 22: openim.admin.SearchDefaultFriendReq - (*DefaultFriendAttribute)(nil), // 23: openim.admin.DefaultFriendAttribute - (*SearchDefaultFriendResp)(nil), // 24: openim.admin.SearchDefaultFriendResp - (*AddDefaultGroupReq)(nil), // 25: openim.admin.AddDefaultGroupReq - (*AddDefaultGroupResp)(nil), // 26: openim.admin.AddDefaultGroupResp - (*DelDefaultGroupReq)(nil), // 27: openim.admin.DelDefaultGroupReq - (*DelDefaultGroupResp)(nil), // 28: openim.admin.DelDefaultGroupResp - (*FindDefaultGroupReq)(nil), // 29: openim.admin.FindDefaultGroupReq - (*FindDefaultGroupResp)(nil), // 30: openim.admin.FindDefaultGroupResp - (*SearchDefaultGroupReq)(nil), // 31: openim.admin.SearchDefaultGroupReq - (*GroupAttribute)(nil), // 32: openim.admin.GroupAttribute - (*SearchDefaultGroupResp)(nil), // 33: openim.admin.SearchDefaultGroupResp - (*AddInvitationCodeReq)(nil), // 34: openim.admin.AddInvitationCodeReq - (*AddInvitationCodeResp)(nil), // 35: openim.admin.AddInvitationCodeResp - (*GenInvitationCodeReq)(nil), // 36: openim.admin.GenInvitationCodeReq - (*GenInvitationCodeResp)(nil), // 37: openim.admin.GenInvitationCodeResp - (*FindInvitationCodeReq)(nil), // 38: openim.admin.FindInvitationCodeReq - (*FindInvitationCodeResp)(nil), // 39: openim.admin.FindInvitationCodeResp - (*UseInvitationCodeReq)(nil), // 40: openim.admin.UseInvitationCodeReq - (*UseInvitationCodeResp)(nil), // 41: openim.admin.UseInvitationCodeResp - (*DelInvitationCodeReq)(nil), // 42: openim.admin.DelInvitationCodeReq - (*DelInvitationCodeResp)(nil), // 43: openim.admin.DelInvitationCodeResp - (*InvitationRegister)(nil), // 44: openim.admin.InvitationRegister - (*SearchInvitationCodeReq)(nil), // 45: openim.admin.SearchInvitationCodeReq - (*SearchInvitationCodeResp)(nil), // 46: openim.admin.SearchInvitationCodeResp - (*SearchUserIPLimitLoginReq)(nil), // 47: openim.admin.SearchUserIPLimitLoginReq - (*LimitUserLoginIP)(nil), // 48: openim.admin.LimitUserLoginIP - (*SearchUserIPLimitLoginResp)(nil), // 49: openim.admin.SearchUserIPLimitLoginResp - (*UserIPLimitLogin)(nil), // 50: openim.admin.UserIPLimitLogin - (*AddUserIPLimitLoginReq)(nil), // 51: openim.admin.AddUserIPLimitLoginReq - (*AddUserIPLimitLoginResp)(nil), // 52: openim.admin.AddUserIPLimitLoginResp - (*DelUserIPLimitLoginReq)(nil), // 53: openim.admin.DelUserIPLimitLoginReq - (*DelUserIPLimitLoginResp)(nil), // 54: openim.admin.DelUserIPLimitLoginResp - (*IPForbidden)(nil), // 55: openim.admin.IPForbidden - (*IPForbiddenAdd)(nil), // 56: openim.admin.IPForbiddenAdd - (*SearchIPForbiddenReq)(nil), // 57: openim.admin.SearchIPForbiddenReq - (*SearchIPForbiddenResp)(nil), // 58: openim.admin.SearchIPForbiddenResp - (*AddIPForbiddenReq)(nil), // 59: openim.admin.AddIPForbiddenReq - (*AddIPForbiddenResp)(nil), // 60: openim.admin.AddIPForbiddenResp - (*DelIPForbiddenReq)(nil), // 61: openim.admin.DelIPForbiddenReq - (*DelIPForbiddenResp)(nil), // 62: openim.admin.DelIPForbiddenResp - (*CheckRegisterForbiddenReq)(nil), // 63: openim.admin.CheckRegisterForbiddenReq - (*CheckRegisterForbiddenResp)(nil), // 64: openim.admin.CheckRegisterForbiddenResp - (*CheckLoginForbiddenReq)(nil), // 65: openim.admin.CheckLoginForbiddenReq - (*CheckLoginForbiddenResp)(nil), // 66: openim.admin.CheckLoginForbiddenResp - (*CancellationUserReq)(nil), // 67: openim.admin.CancellationUserReq - (*CancellationUserResp)(nil), // 68: openim.admin.CancellationUserResp - (*BlockUserReq)(nil), // 69: openim.admin.BlockUserReq - (*BlockUserResp)(nil), // 70: openim.admin.BlockUserResp - (*UnblockUserReq)(nil), // 71: openim.admin.UnblockUserReq - (*UnblockUserResp)(nil), // 72: openim.admin.UnblockUserResp - (*SearchBlockUserReq)(nil), // 73: openim.admin.SearchBlockUserReq - (*BlockUserInfo)(nil), // 74: openim.admin.BlockUserInfo - (*SearchBlockUserResp)(nil), // 75: openim.admin.SearchBlockUserResp - (*FindUserBlockInfoReq)(nil), // 76: openim.admin.FindUserBlockInfoReq - (*BlockInfo)(nil), // 77: openim.admin.BlockInfo - (*FindUserBlockInfoResp)(nil), // 78: openim.admin.FindUserBlockInfoResp - (*CreateTokenReq)(nil), // 79: openim.admin.CreateTokenReq - (*CreateTokenResp)(nil), // 80: openim.admin.CreateTokenResp - (*ParseTokenReq)(nil), // 81: openim.admin.ParseTokenReq - (*ParseTokenResp)(nil), // 82: openim.admin.ParseTokenResp - (*InvalidateTokenReq)(nil), // 83: openim.admin.InvalidateTokenReq - (*InvalidateTokenResp)(nil), // 84: openim.admin.InvalidateTokenResp - (*AddAppletReq)(nil), // 85: openim.admin.AddAppletReq - (*AddAppletResp)(nil), // 86: openim.admin.AddAppletResp - (*DelAppletReq)(nil), // 87: openim.admin.DelAppletReq - (*DelAppletResp)(nil), // 88: openim.admin.DelAppletResp - (*UpdateAppletReq)(nil), // 89: openim.admin.UpdateAppletReq - (*UpdateAppletResp)(nil), // 90: openim.admin.UpdateAppletResp - (*FindAppletReq)(nil), // 91: openim.admin.FindAppletReq - (*FindAppletResp)(nil), // 92: openim.admin.FindAppletResp - (*SearchAppletReq)(nil), // 93: openim.admin.SearchAppletReq - (*SearchAppletResp)(nil), // 94: openim.admin.SearchAppletResp - (*SetClientConfigReq)(nil), // 95: openim.admin.SetClientConfigReq - (*SetClientConfigResp)(nil), // 96: openim.admin.SetClientConfigResp - (*DelClientConfigReq)(nil), // 97: openim.admin.DelClientConfigReq - (*DelClientConfigResp)(nil), // 98: openim.admin.DelClientConfigResp - (*GetClientConfigReq)(nil), // 99: openim.admin.GetClientConfigReq - (*GetClientConfigResp)(nil), // 100: openim.admin.GetClientConfigResp - (*GetUserTokenReq)(nil), // 101: openim.admin.GetUserTokenReq - (*GetUserTokenResp)(nil), // 102: openim.admin.GetUserTokenResp - nil, // 103: openim.admin.SetClientConfigReq.ConfigEntry - nil, // 104: openim.admin.GetClientConfigResp.ConfigEntry - nil, // 105: openim.admin.GetUserTokenResp.TokensMapEntry - (*wrapperspb.StringValue)(nil), // 106: openim.protobuf.StringValue - (*wrapperspb.Int32Value)(nil), // 107: openim.protobuf.Int32Value - (*sdkws.RequestPagination)(nil), // 108: openim.sdkws.RequestPagination - (*common.UserPublicInfo)(nil), // 109: openim.chat.common.UserPublicInfo - (*sdkws.GroupInfo)(nil), // 110: openim.sdkws.GroupInfo - (*wrapperspb.Int64Value)(nil), // 111: openim.protobuf.Int64Value - (*wrapperspb.UInt32Value)(nil), // 112: openim.protobuf.UInt32Value - (*common.AppletInfo)(nil), // 113: openim.chat.common.AppletInfo + (*LoginReq)(nil), // 0: openim.admin.LoginReq + (*LoginResp)(nil), // 1: openim.admin.LoginResp + (*AddAdminAccountReq)(nil), // 2: openim.admin.AddAdminAccountReq + (*AddAdminAccountResp)(nil), // 3: openim.admin.AddAdminAccountResp + (*AdminUpdateInfoReq)(nil), // 4: openim.admin.AdminUpdateInfoReq + (*AdminUpdateInfoResp)(nil), // 5: openim.admin.AdminUpdateInfoResp + (*ChangePasswordReq)(nil), // 6: openim.admin.ChangePasswordReq + (*ChangePasswordResp)(nil), // 7: openim.admin.ChangePasswordResp + (*GetAdminInfoReq)(nil), // 8: openim.admin.GetAdminInfoReq + (*ChangeAdminPasswordReq)(nil), // 9: openim.admin.ChangeAdminPasswordReq + (*ChangeAdminPasswordResp)(nil), // 10: openim.admin.ChangeAdminPasswordResp + (*DelAdminAccountReq)(nil), // 11: openim.admin.DelAdminAccountReq + (*DelAdminAccountResp)(nil), // 12: openim.admin.DelAdminAccountResp + (*SearchAdminAccountReq)(nil), // 13: openim.admin.SearchAdminAccountReq + (*SearchAdminAccountResp)(nil), // 14: openim.admin.SearchAdminAccountResp + (*GetAdminInfoResp)(nil), // 15: openim.admin.GetAdminInfoResp + (*AddDefaultFriendReq)(nil), // 16: openim.admin.AddDefaultFriendReq + (*AddDefaultFriendResp)(nil), // 17: openim.admin.AddDefaultFriendResp + (*DelDefaultFriendReq)(nil), // 18: openim.admin.DelDefaultFriendReq + (*DelDefaultFriendResp)(nil), // 19: openim.admin.DelDefaultFriendResp + (*FindDefaultFriendReq)(nil), // 20: openim.admin.FindDefaultFriendReq + (*FindDefaultFriendResp)(nil), // 21: openim.admin.FindDefaultFriendResp + (*SearchDefaultFriendReq)(nil), // 22: openim.admin.SearchDefaultFriendReq + (*DefaultFriendAttribute)(nil), // 23: openim.admin.DefaultFriendAttribute + (*SearchDefaultFriendResp)(nil), // 24: openim.admin.SearchDefaultFriendResp + (*AddDefaultGroupReq)(nil), // 25: openim.admin.AddDefaultGroupReq + (*AddDefaultGroupResp)(nil), // 26: openim.admin.AddDefaultGroupResp + (*DelDefaultGroupReq)(nil), // 27: openim.admin.DelDefaultGroupReq + (*DelDefaultGroupResp)(nil), // 28: openim.admin.DelDefaultGroupResp + (*FindDefaultGroupReq)(nil), // 29: openim.admin.FindDefaultGroupReq + (*FindDefaultGroupResp)(nil), // 30: openim.admin.FindDefaultGroupResp + (*SearchDefaultGroupReq)(nil), // 31: openim.admin.SearchDefaultGroupReq + (*GroupAttribute)(nil), // 32: openim.admin.GroupAttribute + (*SearchDefaultGroupResp)(nil), // 33: openim.admin.SearchDefaultGroupResp + (*AddInvitationCodeReq)(nil), // 34: openim.admin.AddInvitationCodeReq + (*AddInvitationCodeResp)(nil), // 35: openim.admin.AddInvitationCodeResp + (*GenInvitationCodeReq)(nil), // 36: openim.admin.GenInvitationCodeReq + (*GenInvitationCodeResp)(nil), // 37: openim.admin.GenInvitationCodeResp + (*FindInvitationCodeReq)(nil), // 38: openim.admin.FindInvitationCodeReq + (*FindInvitationCodeResp)(nil), // 39: openim.admin.FindInvitationCodeResp + (*UseInvitationCodeReq)(nil), // 40: openim.admin.UseInvitationCodeReq + (*UseInvitationCodeResp)(nil), // 41: openim.admin.UseInvitationCodeResp + (*DelInvitationCodeReq)(nil), // 42: openim.admin.DelInvitationCodeReq + (*DelInvitationCodeResp)(nil), // 43: openim.admin.DelInvitationCodeResp + (*InvitationRegister)(nil), // 44: openim.admin.InvitationRegister + (*SearchInvitationCodeReq)(nil), // 45: openim.admin.SearchInvitationCodeReq + (*SearchInvitationCodeResp)(nil), // 46: openim.admin.SearchInvitationCodeResp + (*SearchUserIPLimitLoginReq)(nil), // 47: openim.admin.SearchUserIPLimitLoginReq + (*LimitUserLoginIP)(nil), // 48: openim.admin.LimitUserLoginIP + (*SearchUserIPLimitLoginResp)(nil), // 49: openim.admin.SearchUserIPLimitLoginResp + (*UserIPLimitLogin)(nil), // 50: openim.admin.UserIPLimitLogin + (*AddUserIPLimitLoginReq)(nil), // 51: openim.admin.AddUserIPLimitLoginReq + (*AddUserIPLimitLoginResp)(nil), // 52: openim.admin.AddUserIPLimitLoginResp + (*DelUserIPLimitLoginReq)(nil), // 53: openim.admin.DelUserIPLimitLoginReq + (*DelUserIPLimitLoginResp)(nil), // 54: openim.admin.DelUserIPLimitLoginResp + (*IPForbidden)(nil), // 55: openim.admin.IPForbidden + (*IPForbiddenAdd)(nil), // 56: openim.admin.IPForbiddenAdd + (*SearchIPForbiddenReq)(nil), // 57: openim.admin.SearchIPForbiddenReq + (*SearchIPForbiddenResp)(nil), // 58: openim.admin.SearchIPForbiddenResp + (*AddIPForbiddenReq)(nil), // 59: openim.admin.AddIPForbiddenReq + (*AddIPForbiddenResp)(nil), // 60: openim.admin.AddIPForbiddenResp + (*DelIPForbiddenReq)(nil), // 61: openim.admin.DelIPForbiddenReq + (*DelIPForbiddenResp)(nil), // 62: openim.admin.DelIPForbiddenResp + (*CheckRegisterForbiddenReq)(nil), // 63: openim.admin.CheckRegisterForbiddenReq + (*CheckRegisterForbiddenResp)(nil), // 64: openim.admin.CheckRegisterForbiddenResp + (*CheckLoginForbiddenReq)(nil), // 65: openim.admin.CheckLoginForbiddenReq + (*CheckLoginForbiddenResp)(nil), // 66: openim.admin.CheckLoginForbiddenResp + (*CancellationUserReq)(nil), // 67: openim.admin.CancellationUserReq + (*CancellationUserResp)(nil), // 68: openim.admin.CancellationUserResp + (*BlockUserReq)(nil), // 69: openim.admin.BlockUserReq + (*BlockUserResp)(nil), // 70: openim.admin.BlockUserResp + (*UnblockUserReq)(nil), // 71: openim.admin.UnblockUserReq + (*UnblockUserResp)(nil), // 72: openim.admin.UnblockUserResp + (*SearchBlockUserReq)(nil), // 73: openim.admin.SearchBlockUserReq + (*BlockUserInfo)(nil), // 74: openim.admin.BlockUserInfo + (*SearchBlockUserResp)(nil), // 75: openim.admin.SearchBlockUserResp + (*FindUserBlockInfoReq)(nil), // 76: openim.admin.FindUserBlockInfoReq + (*BlockInfo)(nil), // 77: openim.admin.BlockInfo + (*FindUserBlockInfoResp)(nil), // 78: openim.admin.FindUserBlockInfoResp + (*CreateTokenReq)(nil), // 79: openim.admin.CreateTokenReq + (*CreateTokenResp)(nil), // 80: openim.admin.CreateTokenResp + (*ParseTokenReq)(nil), // 81: openim.admin.ParseTokenReq + (*ParseTokenResp)(nil), // 82: openim.admin.ParseTokenResp + (*InvalidateTokenReq)(nil), // 83: openim.admin.InvalidateTokenReq + (*InvalidateTokenResp)(nil), // 84: openim.admin.InvalidateTokenResp + (*AddAppletReq)(nil), // 85: openim.admin.AddAppletReq + (*AddAppletResp)(nil), // 86: openim.admin.AddAppletResp + (*DelAppletReq)(nil), // 87: openim.admin.DelAppletReq + (*DelAppletResp)(nil), // 88: openim.admin.DelAppletResp + (*UpdateAppletReq)(nil), // 89: openim.admin.UpdateAppletReq + (*UpdateAppletResp)(nil), // 90: openim.admin.UpdateAppletResp + (*FindAppletReq)(nil), // 91: openim.admin.FindAppletReq + (*FindAppletResp)(nil), // 92: openim.admin.FindAppletResp + (*SearchAppletReq)(nil), // 93: openim.admin.SearchAppletReq + (*SearchAppletResp)(nil), // 94: openim.admin.SearchAppletResp + (*SetClientConfigReq)(nil), // 95: openim.admin.SetClientConfigReq + (*SetClientConfigResp)(nil), // 96: openim.admin.SetClientConfigResp + (*DelClientConfigReq)(nil), // 97: openim.admin.DelClientConfigReq + (*DelClientConfigResp)(nil), // 98: openim.admin.DelClientConfigResp + (*GetClientConfigReq)(nil), // 99: openim.admin.GetClientConfigReq + (*GetClientConfigResp)(nil), // 100: openim.admin.GetClientConfigResp + (*GetUserTokenReq)(nil), // 101: openim.admin.GetUserTokenReq + (*GetUserTokenResp)(nil), // 102: openim.admin.GetUserTokenResp + (*ApplicationVersion)(nil), // 103: openim.admin.ApplicationVersion + (*LatestApplicationVersionReq)(nil), // 104: openim.admin.LatestApplicationVersionReq + (*LatestApplicationVersionResp)(nil), // 105: openim.admin.LatestApplicationVersionResp + (*AddApplicationVersionReq)(nil), // 106: openim.admin.AddApplicationVersionReq + (*AddApplicationVersionResp)(nil), // 107: openim.admin.AddApplicationVersionResp + (*UpdateApplicationVersionReq)(nil), // 108: openim.admin.UpdateApplicationVersionReq + (*UpdateApplicationVersionResp)(nil), // 109: openim.admin.UpdateApplicationVersionResp + (*DeleteApplicationVersionReq)(nil), // 110: openim.admin.DeleteApplicationVersionReq + (*DeleteApplicationVersionResp)(nil), // 111: openim.admin.DeleteApplicationVersionResp + (*PageApplicationVersionReq)(nil), // 112: openim.admin.PageApplicationVersionReq + (*PageApplicationVersionResp)(nil), // 113: openim.admin.PageApplicationVersionResp + nil, // 114: openim.admin.SetClientConfigReq.ConfigEntry + nil, // 115: openim.admin.GetClientConfigResp.ConfigEntry + nil, // 116: openim.admin.GetUserTokenResp.TokensMapEntry + (*wrapperspb.StringValue)(nil), // 117: openim.protobuf.StringValue + (*wrapperspb.Int32Value)(nil), // 118: openim.protobuf.Int32Value + (*sdkws.RequestPagination)(nil), // 119: openim.sdkws.RequestPagination + (*common.UserPublicInfo)(nil), // 120: openim.chat.common.UserPublicInfo + (*sdkws.GroupInfo)(nil), // 121: openim.sdkws.GroupInfo + (*wrapperspb.Int64Value)(nil), // 122: openim.protobuf.Int64Value + (*wrapperspb.UInt32Value)(nil), // 123: openim.protobuf.UInt32Value + (*common.AppletInfo)(nil), // 124: openim.chat.common.AppletInfo + (*wrapperspb.BoolValue)(nil), // 125: openim.protobuf.BoolValue } var file_admin_admin_proto_depIdxs = []int32{ - 106, // 0: openim.admin.AdminUpdateInfoReq.account:type_name -> openim.protobuf.StringValue - 106, // 1: openim.admin.AdminUpdateInfoReq.password:type_name -> openim.protobuf.StringValue - 106, // 2: openim.admin.AdminUpdateInfoReq.faceURL:type_name -> openim.protobuf.StringValue - 106, // 3: openim.admin.AdminUpdateInfoReq.nickname:type_name -> openim.protobuf.StringValue - 107, // 4: openim.admin.AdminUpdateInfoReq.level:type_name -> openim.protobuf.Int32Value - 108, // 5: openim.admin.SearchAdminAccountReq.pagination:type_name -> openim.sdkws.RequestPagination + 117, // 0: openim.admin.AdminUpdateInfoReq.account:type_name -> openim.protobuf.StringValue + 117, // 1: openim.admin.AdminUpdateInfoReq.password:type_name -> openim.protobuf.StringValue + 117, // 2: openim.admin.AdminUpdateInfoReq.faceURL:type_name -> openim.protobuf.StringValue + 117, // 3: openim.admin.AdminUpdateInfoReq.nickname:type_name -> openim.protobuf.StringValue + 118, // 4: openim.admin.AdminUpdateInfoReq.level:type_name -> openim.protobuf.Int32Value + 119, // 5: openim.admin.SearchAdminAccountReq.pagination:type_name -> openim.sdkws.RequestPagination 15, // 6: openim.admin.SearchAdminAccountResp.adminAccounts:type_name -> openim.admin.GetAdminInfoResp - 108, // 7: openim.admin.SearchDefaultFriendReq.pagination:type_name -> openim.sdkws.RequestPagination - 109, // 8: openim.admin.DefaultFriendAttribute.user:type_name -> openim.chat.common.UserPublicInfo + 119, // 7: openim.admin.SearchDefaultFriendReq.pagination:type_name -> openim.sdkws.RequestPagination + 120, // 8: openim.admin.DefaultFriendAttribute.user:type_name -> openim.chat.common.UserPublicInfo 23, // 9: openim.admin.SearchDefaultFriendResp.users:type_name -> openim.admin.DefaultFriendAttribute - 108, // 10: openim.admin.SearchDefaultGroupReq.pagination:type_name -> openim.sdkws.RequestPagination - 110, // 11: openim.admin.GroupAttribute.group:type_name -> openim.sdkws.GroupInfo + 119, // 10: openim.admin.SearchDefaultGroupReq.pagination:type_name -> openim.sdkws.RequestPagination + 121, // 11: openim.admin.GroupAttribute.group:type_name -> openim.sdkws.GroupInfo 44, // 12: openim.admin.FindInvitationCodeResp.codes:type_name -> openim.admin.InvitationRegister - 109, // 13: openim.admin.InvitationRegister.usedUser:type_name -> openim.chat.common.UserPublicInfo - 108, // 14: openim.admin.SearchInvitationCodeReq.pagination:type_name -> openim.sdkws.RequestPagination + 120, // 13: openim.admin.InvitationRegister.usedUser:type_name -> openim.chat.common.UserPublicInfo + 119, // 14: openim.admin.SearchInvitationCodeReq.pagination:type_name -> openim.sdkws.RequestPagination 44, // 15: openim.admin.SearchInvitationCodeResp.list:type_name -> openim.admin.InvitationRegister - 108, // 16: openim.admin.SearchUserIPLimitLoginReq.pagination:type_name -> openim.sdkws.RequestPagination - 109, // 17: openim.admin.LimitUserLoginIP.user:type_name -> openim.chat.common.UserPublicInfo + 119, // 16: openim.admin.SearchUserIPLimitLoginReq.pagination:type_name -> openim.sdkws.RequestPagination + 120, // 17: openim.admin.LimitUserLoginIP.user:type_name -> openim.chat.common.UserPublicInfo 48, // 18: openim.admin.SearchUserIPLimitLoginResp.limits:type_name -> openim.admin.LimitUserLoginIP 50, // 19: openim.admin.AddUserIPLimitLoginReq.limits:type_name -> openim.admin.UserIPLimitLogin 50, // 20: openim.admin.DelUserIPLimitLoginReq.limits:type_name -> openim.admin.UserIPLimitLogin - 108, // 21: openim.admin.SearchIPForbiddenReq.pagination:type_name -> openim.sdkws.RequestPagination + 119, // 21: openim.admin.SearchIPForbiddenReq.pagination:type_name -> openim.sdkws.RequestPagination 55, // 22: openim.admin.SearchIPForbiddenResp.forbiddens:type_name -> openim.admin.IPForbidden 56, // 23: openim.admin.AddIPForbiddenReq.forbiddens:type_name -> openim.admin.IPForbiddenAdd - 108, // 24: openim.admin.SearchBlockUserReq.pagination:type_name -> openim.sdkws.RequestPagination + 119, // 24: openim.admin.SearchBlockUserReq.pagination:type_name -> openim.sdkws.RequestPagination 74, // 25: openim.admin.SearchBlockUserResp.users:type_name -> openim.admin.BlockUserInfo 77, // 26: openim.admin.FindUserBlockInfoResp.blocks:type_name -> openim.admin.BlockInfo - 106, // 27: openim.admin.UpdateAppletReq.name:type_name -> openim.protobuf.StringValue - 106, // 28: openim.admin.UpdateAppletReq.appID:type_name -> openim.protobuf.StringValue - 106, // 29: openim.admin.UpdateAppletReq.icon:type_name -> openim.protobuf.StringValue - 106, // 30: openim.admin.UpdateAppletReq.url:type_name -> openim.protobuf.StringValue - 106, // 31: openim.admin.UpdateAppletReq.md5:type_name -> openim.protobuf.StringValue - 111, // 32: openim.admin.UpdateAppletReq.size:type_name -> openim.protobuf.Int64Value - 106, // 33: openim.admin.UpdateAppletReq.version:type_name -> openim.protobuf.StringValue - 112, // 34: openim.admin.UpdateAppletReq.priority:type_name -> openim.protobuf.UInt32Value - 112, // 35: openim.admin.UpdateAppletReq.status:type_name -> openim.protobuf.UInt32Value - 111, // 36: openim.admin.UpdateAppletReq.createTime:type_name -> openim.protobuf.Int64Value - 113, // 37: openim.admin.FindAppletResp.applets:type_name -> openim.chat.common.AppletInfo - 108, // 38: openim.admin.SearchAppletReq.pagination:type_name -> openim.sdkws.RequestPagination - 113, // 39: openim.admin.SearchAppletResp.applets:type_name -> openim.chat.common.AppletInfo - 103, // 40: openim.admin.SetClientConfigReq.config:type_name -> openim.admin.SetClientConfigReq.ConfigEntry - 104, // 41: openim.admin.GetClientConfigResp.config:type_name -> openim.admin.GetClientConfigResp.ConfigEntry - 105, // 42: openim.admin.GetUserTokenResp.tokensMap:type_name -> openim.admin.GetUserTokenResp.TokensMapEntry - 0, // 43: openim.admin.admin.Login:input_type -> openim.admin.LoginReq - 6, // 44: openim.admin.admin.ChangePassword:input_type -> openim.admin.ChangePasswordReq - 4, // 45: openim.admin.admin.AdminUpdateInfo:input_type -> openim.admin.AdminUpdateInfoReq - 8, // 46: openim.admin.admin.GetAdminInfo:input_type -> openim.admin.GetAdminInfoReq - 2, // 47: openim.admin.admin.AddAdminAccount:input_type -> openim.admin.AddAdminAccountReq - 9, // 48: openim.admin.admin.ChangeAdminPassword:input_type -> openim.admin.ChangeAdminPasswordReq - 11, // 49: openim.admin.admin.DelAdminAccount:input_type -> openim.admin.DelAdminAccountReq - 13, // 50: openim.admin.admin.SearchAdminAccount:input_type -> openim.admin.SearchAdminAccountReq - 16, // 51: openim.admin.admin.AddDefaultFriend:input_type -> openim.admin.AddDefaultFriendReq - 18, // 52: openim.admin.admin.DelDefaultFriend:input_type -> openim.admin.DelDefaultFriendReq - 20, // 53: openim.admin.admin.FindDefaultFriend:input_type -> openim.admin.FindDefaultFriendReq - 22, // 54: openim.admin.admin.SearchDefaultFriend:input_type -> openim.admin.SearchDefaultFriendReq - 25, // 55: openim.admin.admin.AddDefaultGroup:input_type -> openim.admin.AddDefaultGroupReq - 27, // 56: openim.admin.admin.DelDefaultGroup:input_type -> openim.admin.DelDefaultGroupReq - 29, // 57: openim.admin.admin.FindDefaultGroup:input_type -> openim.admin.FindDefaultGroupReq - 31, // 58: openim.admin.admin.SearchDefaultGroup:input_type -> openim.admin.SearchDefaultGroupReq - 34, // 59: openim.admin.admin.AddInvitationCode:input_type -> openim.admin.AddInvitationCodeReq - 36, // 60: openim.admin.admin.GenInvitationCode:input_type -> openim.admin.GenInvitationCodeReq - 38, // 61: openim.admin.admin.FindInvitationCode:input_type -> openim.admin.FindInvitationCodeReq - 40, // 62: openim.admin.admin.UseInvitationCode:input_type -> openim.admin.UseInvitationCodeReq - 42, // 63: openim.admin.admin.DelInvitationCode:input_type -> openim.admin.DelInvitationCodeReq - 45, // 64: openim.admin.admin.SearchInvitationCode:input_type -> openim.admin.SearchInvitationCodeReq - 47, // 65: openim.admin.admin.SearchUserIPLimitLogin:input_type -> openim.admin.SearchUserIPLimitLoginReq - 51, // 66: openim.admin.admin.AddUserIPLimitLogin:input_type -> openim.admin.AddUserIPLimitLoginReq - 53, // 67: openim.admin.admin.DelUserIPLimitLogin:input_type -> openim.admin.DelUserIPLimitLoginReq - 57, // 68: openim.admin.admin.SearchIPForbidden:input_type -> openim.admin.SearchIPForbiddenReq - 59, // 69: openim.admin.admin.AddIPForbidden:input_type -> openim.admin.AddIPForbiddenReq - 61, // 70: openim.admin.admin.DelIPForbidden:input_type -> openim.admin.DelIPForbiddenReq - 67, // 71: openim.admin.admin.CancellationUser:input_type -> openim.admin.CancellationUserReq - 69, // 72: openim.admin.admin.BlockUser:input_type -> openim.admin.BlockUserReq - 71, // 73: openim.admin.admin.UnblockUser:input_type -> openim.admin.UnblockUserReq - 73, // 74: openim.admin.admin.SearchBlockUser:input_type -> openim.admin.SearchBlockUserReq - 76, // 75: openim.admin.admin.FindUserBlockInfo:input_type -> openim.admin.FindUserBlockInfoReq - 63, // 76: openim.admin.admin.CheckRegisterForbidden:input_type -> openim.admin.CheckRegisterForbiddenReq - 65, // 77: openim.admin.admin.CheckLoginForbidden:input_type -> openim.admin.CheckLoginForbiddenReq - 79, // 78: openim.admin.admin.CreateToken:input_type -> openim.admin.CreateTokenReq - 81, // 79: openim.admin.admin.ParseToken:input_type -> openim.admin.ParseTokenReq - 85, // 80: openim.admin.admin.AddApplet:input_type -> openim.admin.AddAppletReq - 87, // 81: openim.admin.admin.DelApplet:input_type -> openim.admin.DelAppletReq - 89, // 82: openim.admin.admin.UpdateApplet:input_type -> openim.admin.UpdateAppletReq - 91, // 83: openim.admin.admin.FindApplet:input_type -> openim.admin.FindAppletReq - 93, // 84: openim.admin.admin.SearchApplet:input_type -> openim.admin.SearchAppletReq - 99, // 85: openim.admin.admin.GetClientConfig:input_type -> openim.admin.GetClientConfigReq - 95, // 86: openim.admin.admin.SetClientConfig:input_type -> openim.admin.SetClientConfigReq - 97, // 87: openim.admin.admin.DelClientConfig:input_type -> openim.admin.DelClientConfigReq - 101, // 88: openim.admin.admin.GetUserToken:input_type -> openim.admin.GetUserTokenReq - 83, // 89: openim.admin.admin.InvalidateToken:input_type -> openim.admin.InvalidateTokenReq - 1, // 90: openim.admin.admin.Login:output_type -> openim.admin.LoginResp - 7, // 91: openim.admin.admin.ChangePassword:output_type -> openim.admin.ChangePasswordResp - 5, // 92: openim.admin.admin.AdminUpdateInfo:output_type -> openim.admin.AdminUpdateInfoResp - 15, // 93: openim.admin.admin.GetAdminInfo:output_type -> openim.admin.GetAdminInfoResp - 3, // 94: openim.admin.admin.AddAdminAccount:output_type -> openim.admin.AddAdminAccountResp - 10, // 95: openim.admin.admin.ChangeAdminPassword:output_type -> openim.admin.ChangeAdminPasswordResp - 12, // 96: openim.admin.admin.DelAdminAccount:output_type -> openim.admin.DelAdminAccountResp - 14, // 97: openim.admin.admin.SearchAdminAccount:output_type -> openim.admin.SearchAdminAccountResp - 17, // 98: openim.admin.admin.AddDefaultFriend:output_type -> openim.admin.AddDefaultFriendResp - 19, // 99: openim.admin.admin.DelDefaultFriend:output_type -> openim.admin.DelDefaultFriendResp - 21, // 100: openim.admin.admin.FindDefaultFriend:output_type -> openim.admin.FindDefaultFriendResp - 24, // 101: openim.admin.admin.SearchDefaultFriend:output_type -> openim.admin.SearchDefaultFriendResp - 26, // 102: openim.admin.admin.AddDefaultGroup:output_type -> openim.admin.AddDefaultGroupResp - 28, // 103: openim.admin.admin.DelDefaultGroup:output_type -> openim.admin.DelDefaultGroupResp - 30, // 104: openim.admin.admin.FindDefaultGroup:output_type -> openim.admin.FindDefaultGroupResp - 33, // 105: openim.admin.admin.SearchDefaultGroup:output_type -> openim.admin.SearchDefaultGroupResp - 35, // 106: openim.admin.admin.AddInvitationCode:output_type -> openim.admin.AddInvitationCodeResp - 37, // 107: openim.admin.admin.GenInvitationCode:output_type -> openim.admin.GenInvitationCodeResp - 39, // 108: openim.admin.admin.FindInvitationCode:output_type -> openim.admin.FindInvitationCodeResp - 41, // 109: openim.admin.admin.UseInvitationCode:output_type -> openim.admin.UseInvitationCodeResp - 43, // 110: openim.admin.admin.DelInvitationCode:output_type -> openim.admin.DelInvitationCodeResp - 46, // 111: openim.admin.admin.SearchInvitationCode:output_type -> openim.admin.SearchInvitationCodeResp - 49, // 112: openim.admin.admin.SearchUserIPLimitLogin:output_type -> openim.admin.SearchUserIPLimitLoginResp - 52, // 113: openim.admin.admin.AddUserIPLimitLogin:output_type -> openim.admin.AddUserIPLimitLoginResp - 54, // 114: openim.admin.admin.DelUserIPLimitLogin:output_type -> openim.admin.DelUserIPLimitLoginResp - 58, // 115: openim.admin.admin.SearchIPForbidden:output_type -> openim.admin.SearchIPForbiddenResp - 60, // 116: openim.admin.admin.AddIPForbidden:output_type -> openim.admin.AddIPForbiddenResp - 62, // 117: openim.admin.admin.DelIPForbidden:output_type -> openim.admin.DelIPForbiddenResp - 68, // 118: openim.admin.admin.CancellationUser:output_type -> openim.admin.CancellationUserResp - 70, // 119: openim.admin.admin.BlockUser:output_type -> openim.admin.BlockUserResp - 72, // 120: openim.admin.admin.UnblockUser:output_type -> openim.admin.UnblockUserResp - 75, // 121: openim.admin.admin.SearchBlockUser:output_type -> openim.admin.SearchBlockUserResp - 78, // 122: openim.admin.admin.FindUserBlockInfo:output_type -> openim.admin.FindUserBlockInfoResp - 64, // 123: openim.admin.admin.CheckRegisterForbidden:output_type -> openim.admin.CheckRegisterForbiddenResp - 66, // 124: openim.admin.admin.CheckLoginForbidden:output_type -> openim.admin.CheckLoginForbiddenResp - 80, // 125: openim.admin.admin.CreateToken:output_type -> openim.admin.CreateTokenResp - 82, // 126: openim.admin.admin.ParseToken:output_type -> openim.admin.ParseTokenResp - 86, // 127: openim.admin.admin.AddApplet:output_type -> openim.admin.AddAppletResp - 88, // 128: openim.admin.admin.DelApplet:output_type -> openim.admin.DelAppletResp - 90, // 129: openim.admin.admin.UpdateApplet:output_type -> openim.admin.UpdateAppletResp - 92, // 130: openim.admin.admin.FindApplet:output_type -> openim.admin.FindAppletResp - 94, // 131: openim.admin.admin.SearchApplet:output_type -> openim.admin.SearchAppletResp - 100, // 132: openim.admin.admin.GetClientConfig:output_type -> openim.admin.GetClientConfigResp - 96, // 133: openim.admin.admin.SetClientConfig:output_type -> openim.admin.SetClientConfigResp - 98, // 134: openim.admin.admin.DelClientConfig:output_type -> openim.admin.DelClientConfigResp - 102, // 135: openim.admin.admin.GetUserToken:output_type -> openim.admin.GetUserTokenResp - 84, // 136: openim.admin.admin.InvalidateToken:output_type -> openim.admin.InvalidateTokenResp - 90, // [90:137] is the sub-list for method output_type - 43, // [43:90] is the sub-list for method input_type - 43, // [43:43] is the sub-list for extension type_name - 43, // [43:43] is the sub-list for extension extendee - 0, // [0:43] is the sub-list for field type_name + 117, // 27: openim.admin.UpdateAppletReq.name:type_name -> openim.protobuf.StringValue + 117, // 28: openim.admin.UpdateAppletReq.appID:type_name -> openim.protobuf.StringValue + 117, // 29: openim.admin.UpdateAppletReq.icon:type_name -> openim.protobuf.StringValue + 117, // 30: openim.admin.UpdateAppletReq.url:type_name -> openim.protobuf.StringValue + 117, // 31: openim.admin.UpdateAppletReq.md5:type_name -> openim.protobuf.StringValue + 122, // 32: openim.admin.UpdateAppletReq.size:type_name -> openim.protobuf.Int64Value + 117, // 33: openim.admin.UpdateAppletReq.version:type_name -> openim.protobuf.StringValue + 123, // 34: openim.admin.UpdateAppletReq.priority:type_name -> openim.protobuf.UInt32Value + 123, // 35: openim.admin.UpdateAppletReq.status:type_name -> openim.protobuf.UInt32Value + 122, // 36: openim.admin.UpdateAppletReq.createTime:type_name -> openim.protobuf.Int64Value + 124, // 37: openim.admin.FindAppletResp.applets:type_name -> openim.chat.common.AppletInfo + 119, // 38: openim.admin.SearchAppletReq.pagination:type_name -> openim.sdkws.RequestPagination + 124, // 39: openim.admin.SearchAppletResp.applets:type_name -> openim.chat.common.AppletInfo + 114, // 40: openim.admin.SetClientConfigReq.config:type_name -> openim.admin.SetClientConfigReq.ConfigEntry + 115, // 41: openim.admin.GetClientConfigResp.config:type_name -> openim.admin.GetClientConfigResp.ConfigEntry + 116, // 42: openim.admin.GetUserTokenResp.tokensMap:type_name -> openim.admin.GetUserTokenResp.TokensMapEntry + 103, // 43: openim.admin.LatestApplicationVersionResp.version:type_name -> openim.admin.ApplicationVersion + 117, // 44: openim.admin.UpdateApplicationVersionReq.platform:type_name -> openim.protobuf.StringValue + 117, // 45: openim.admin.UpdateApplicationVersionReq.version:type_name -> openim.protobuf.StringValue + 117, // 46: openim.admin.UpdateApplicationVersionReq.url:type_name -> openim.protobuf.StringValue + 117, // 47: openim.admin.UpdateApplicationVersionReq.text:type_name -> openim.protobuf.StringValue + 125, // 48: openim.admin.UpdateApplicationVersionReq.force:type_name -> openim.protobuf.BoolValue + 125, // 49: openim.admin.UpdateApplicationVersionReq.latest:type_name -> openim.protobuf.BoolValue + 125, // 50: openim.admin.UpdateApplicationVersionReq.hot:type_name -> openim.protobuf.BoolValue + 119, // 51: openim.admin.PageApplicationVersionReq.pagination:type_name -> openim.sdkws.RequestPagination + 103, // 52: openim.admin.PageApplicationVersionResp.versions:type_name -> openim.admin.ApplicationVersion + 0, // 53: openim.admin.admin.Login:input_type -> openim.admin.LoginReq + 6, // 54: openim.admin.admin.ChangePassword:input_type -> openim.admin.ChangePasswordReq + 4, // 55: openim.admin.admin.AdminUpdateInfo:input_type -> openim.admin.AdminUpdateInfoReq + 8, // 56: openim.admin.admin.GetAdminInfo:input_type -> openim.admin.GetAdminInfoReq + 2, // 57: openim.admin.admin.AddAdminAccount:input_type -> openim.admin.AddAdminAccountReq + 9, // 58: openim.admin.admin.ChangeAdminPassword:input_type -> openim.admin.ChangeAdminPasswordReq + 11, // 59: openim.admin.admin.DelAdminAccount:input_type -> openim.admin.DelAdminAccountReq + 13, // 60: openim.admin.admin.SearchAdminAccount:input_type -> openim.admin.SearchAdminAccountReq + 16, // 61: openim.admin.admin.AddDefaultFriend:input_type -> openim.admin.AddDefaultFriendReq + 18, // 62: openim.admin.admin.DelDefaultFriend:input_type -> openim.admin.DelDefaultFriendReq + 20, // 63: openim.admin.admin.FindDefaultFriend:input_type -> openim.admin.FindDefaultFriendReq + 22, // 64: openim.admin.admin.SearchDefaultFriend:input_type -> openim.admin.SearchDefaultFriendReq + 25, // 65: openim.admin.admin.AddDefaultGroup:input_type -> openim.admin.AddDefaultGroupReq + 27, // 66: openim.admin.admin.DelDefaultGroup:input_type -> openim.admin.DelDefaultGroupReq + 29, // 67: openim.admin.admin.FindDefaultGroup:input_type -> openim.admin.FindDefaultGroupReq + 31, // 68: openim.admin.admin.SearchDefaultGroup:input_type -> openim.admin.SearchDefaultGroupReq + 34, // 69: openim.admin.admin.AddInvitationCode:input_type -> openim.admin.AddInvitationCodeReq + 36, // 70: openim.admin.admin.GenInvitationCode:input_type -> openim.admin.GenInvitationCodeReq + 38, // 71: openim.admin.admin.FindInvitationCode:input_type -> openim.admin.FindInvitationCodeReq + 40, // 72: openim.admin.admin.UseInvitationCode:input_type -> openim.admin.UseInvitationCodeReq + 42, // 73: openim.admin.admin.DelInvitationCode:input_type -> openim.admin.DelInvitationCodeReq + 45, // 74: openim.admin.admin.SearchInvitationCode:input_type -> openim.admin.SearchInvitationCodeReq + 47, // 75: openim.admin.admin.SearchUserIPLimitLogin:input_type -> openim.admin.SearchUserIPLimitLoginReq + 51, // 76: openim.admin.admin.AddUserIPLimitLogin:input_type -> openim.admin.AddUserIPLimitLoginReq + 53, // 77: openim.admin.admin.DelUserIPLimitLogin:input_type -> openim.admin.DelUserIPLimitLoginReq + 57, // 78: openim.admin.admin.SearchIPForbidden:input_type -> openim.admin.SearchIPForbiddenReq + 59, // 79: openim.admin.admin.AddIPForbidden:input_type -> openim.admin.AddIPForbiddenReq + 61, // 80: openim.admin.admin.DelIPForbidden:input_type -> openim.admin.DelIPForbiddenReq + 67, // 81: openim.admin.admin.CancellationUser:input_type -> openim.admin.CancellationUserReq + 69, // 82: openim.admin.admin.BlockUser:input_type -> openim.admin.BlockUserReq + 71, // 83: openim.admin.admin.UnblockUser:input_type -> openim.admin.UnblockUserReq + 73, // 84: openim.admin.admin.SearchBlockUser:input_type -> openim.admin.SearchBlockUserReq + 76, // 85: openim.admin.admin.FindUserBlockInfo:input_type -> openim.admin.FindUserBlockInfoReq + 63, // 86: openim.admin.admin.CheckRegisterForbidden:input_type -> openim.admin.CheckRegisterForbiddenReq + 65, // 87: openim.admin.admin.CheckLoginForbidden:input_type -> openim.admin.CheckLoginForbiddenReq + 79, // 88: openim.admin.admin.CreateToken:input_type -> openim.admin.CreateTokenReq + 81, // 89: openim.admin.admin.ParseToken:input_type -> openim.admin.ParseTokenReq + 85, // 90: openim.admin.admin.AddApplet:input_type -> openim.admin.AddAppletReq + 87, // 91: openim.admin.admin.DelApplet:input_type -> openim.admin.DelAppletReq + 89, // 92: openim.admin.admin.UpdateApplet:input_type -> openim.admin.UpdateAppletReq + 91, // 93: openim.admin.admin.FindApplet:input_type -> openim.admin.FindAppletReq + 93, // 94: openim.admin.admin.SearchApplet:input_type -> openim.admin.SearchAppletReq + 99, // 95: openim.admin.admin.GetClientConfig:input_type -> openim.admin.GetClientConfigReq + 95, // 96: openim.admin.admin.SetClientConfig:input_type -> openim.admin.SetClientConfigReq + 97, // 97: openim.admin.admin.DelClientConfig:input_type -> openim.admin.DelClientConfigReq + 101, // 98: openim.admin.admin.GetUserToken:input_type -> openim.admin.GetUserTokenReq + 83, // 99: openim.admin.admin.InvalidateToken:input_type -> openim.admin.InvalidateTokenReq + 104, // 100: openim.admin.admin.LatestApplicationVersion:input_type -> openim.admin.LatestApplicationVersionReq + 106, // 101: openim.admin.admin.AddApplicationVersion:input_type -> openim.admin.AddApplicationVersionReq + 108, // 102: openim.admin.admin.UpdateApplicationVersion:input_type -> openim.admin.UpdateApplicationVersionReq + 110, // 103: openim.admin.admin.DeleteApplicationVersion:input_type -> openim.admin.DeleteApplicationVersionReq + 112, // 104: openim.admin.admin.PageApplicationVersion:input_type -> openim.admin.PageApplicationVersionReq + 1, // 105: openim.admin.admin.Login:output_type -> openim.admin.LoginResp + 7, // 106: openim.admin.admin.ChangePassword:output_type -> openim.admin.ChangePasswordResp + 5, // 107: openim.admin.admin.AdminUpdateInfo:output_type -> openim.admin.AdminUpdateInfoResp + 15, // 108: openim.admin.admin.GetAdminInfo:output_type -> openim.admin.GetAdminInfoResp + 3, // 109: openim.admin.admin.AddAdminAccount:output_type -> openim.admin.AddAdminAccountResp + 10, // 110: openim.admin.admin.ChangeAdminPassword:output_type -> openim.admin.ChangeAdminPasswordResp + 12, // 111: openim.admin.admin.DelAdminAccount:output_type -> openim.admin.DelAdminAccountResp + 14, // 112: openim.admin.admin.SearchAdminAccount:output_type -> openim.admin.SearchAdminAccountResp + 17, // 113: openim.admin.admin.AddDefaultFriend:output_type -> openim.admin.AddDefaultFriendResp + 19, // 114: openim.admin.admin.DelDefaultFriend:output_type -> openim.admin.DelDefaultFriendResp + 21, // 115: openim.admin.admin.FindDefaultFriend:output_type -> openim.admin.FindDefaultFriendResp + 24, // 116: openim.admin.admin.SearchDefaultFriend:output_type -> openim.admin.SearchDefaultFriendResp + 26, // 117: openim.admin.admin.AddDefaultGroup:output_type -> openim.admin.AddDefaultGroupResp + 28, // 118: openim.admin.admin.DelDefaultGroup:output_type -> openim.admin.DelDefaultGroupResp + 30, // 119: openim.admin.admin.FindDefaultGroup:output_type -> openim.admin.FindDefaultGroupResp + 33, // 120: openim.admin.admin.SearchDefaultGroup:output_type -> openim.admin.SearchDefaultGroupResp + 35, // 121: openim.admin.admin.AddInvitationCode:output_type -> openim.admin.AddInvitationCodeResp + 37, // 122: openim.admin.admin.GenInvitationCode:output_type -> openim.admin.GenInvitationCodeResp + 39, // 123: openim.admin.admin.FindInvitationCode:output_type -> openim.admin.FindInvitationCodeResp + 41, // 124: openim.admin.admin.UseInvitationCode:output_type -> openim.admin.UseInvitationCodeResp + 43, // 125: openim.admin.admin.DelInvitationCode:output_type -> openim.admin.DelInvitationCodeResp + 46, // 126: openim.admin.admin.SearchInvitationCode:output_type -> openim.admin.SearchInvitationCodeResp + 49, // 127: openim.admin.admin.SearchUserIPLimitLogin:output_type -> openim.admin.SearchUserIPLimitLoginResp + 52, // 128: openim.admin.admin.AddUserIPLimitLogin:output_type -> openim.admin.AddUserIPLimitLoginResp + 54, // 129: openim.admin.admin.DelUserIPLimitLogin:output_type -> openim.admin.DelUserIPLimitLoginResp + 58, // 130: openim.admin.admin.SearchIPForbidden:output_type -> openim.admin.SearchIPForbiddenResp + 60, // 131: openim.admin.admin.AddIPForbidden:output_type -> openim.admin.AddIPForbiddenResp + 62, // 132: openim.admin.admin.DelIPForbidden:output_type -> openim.admin.DelIPForbiddenResp + 68, // 133: openim.admin.admin.CancellationUser:output_type -> openim.admin.CancellationUserResp + 70, // 134: openim.admin.admin.BlockUser:output_type -> openim.admin.BlockUserResp + 72, // 135: openim.admin.admin.UnblockUser:output_type -> openim.admin.UnblockUserResp + 75, // 136: openim.admin.admin.SearchBlockUser:output_type -> openim.admin.SearchBlockUserResp + 78, // 137: openim.admin.admin.FindUserBlockInfo:output_type -> openim.admin.FindUserBlockInfoResp + 64, // 138: openim.admin.admin.CheckRegisterForbidden:output_type -> openim.admin.CheckRegisterForbiddenResp + 66, // 139: openim.admin.admin.CheckLoginForbidden:output_type -> openim.admin.CheckLoginForbiddenResp + 80, // 140: openim.admin.admin.CreateToken:output_type -> openim.admin.CreateTokenResp + 82, // 141: openim.admin.admin.ParseToken:output_type -> openim.admin.ParseTokenResp + 86, // 142: openim.admin.admin.AddApplet:output_type -> openim.admin.AddAppletResp + 88, // 143: openim.admin.admin.DelApplet:output_type -> openim.admin.DelAppletResp + 90, // 144: openim.admin.admin.UpdateApplet:output_type -> openim.admin.UpdateAppletResp + 92, // 145: openim.admin.admin.FindApplet:output_type -> openim.admin.FindAppletResp + 94, // 146: openim.admin.admin.SearchApplet:output_type -> openim.admin.SearchAppletResp + 100, // 147: openim.admin.admin.GetClientConfig:output_type -> openim.admin.GetClientConfigResp + 96, // 148: openim.admin.admin.SetClientConfig:output_type -> openim.admin.SetClientConfigResp + 98, // 149: openim.admin.admin.DelClientConfig:output_type -> openim.admin.DelClientConfigResp + 102, // 150: openim.admin.admin.GetUserToken:output_type -> openim.admin.GetUserTokenResp + 84, // 151: openim.admin.admin.InvalidateToken:output_type -> openim.admin.InvalidateTokenResp + 105, // 152: openim.admin.admin.LatestApplicationVersion:output_type -> openim.admin.LatestApplicationVersionResp + 107, // 153: openim.admin.admin.AddApplicationVersion:output_type -> openim.admin.AddApplicationVersionResp + 109, // 154: openim.admin.admin.UpdateApplicationVersion:output_type -> openim.admin.UpdateApplicationVersionResp + 111, // 155: openim.admin.admin.DeleteApplicationVersion:output_type -> openim.admin.DeleteApplicationVersionResp + 113, // 156: openim.admin.admin.PageApplicationVersion:output_type -> openim.admin.PageApplicationVersionResp + 105, // [105:157] is the sub-list for method output_type + 53, // [53:105] is the sub-list for method input_type + 53, // [53:53] is the sub-list for extension type_name + 53, // [53:53] is the sub-list for extension extendee + 0, // [0:53] is the sub-list for field type_name } func init() { file_admin_admin_proto_init() } @@ -7707,6 +8542,138 @@ func file_admin_admin_proto_init() { return nil } } + file_admin_admin_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplicationVersion); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_admin_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LatestApplicationVersionReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_admin_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LatestApplicationVersionResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_admin_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddApplicationVersionReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_admin_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddApplicationVersionResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_admin_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateApplicationVersionReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_admin_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateApplicationVersionResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_admin_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteApplicationVersionReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_admin_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteApplicationVersionResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_admin_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PageApplicationVersionReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_admin_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PageApplicationVersionResp); 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{ @@ -7714,7 +8681,7 @@ func file_admin_admin_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_admin_admin_proto_rawDesc, NumEnums: 0, - NumMessages: 106, + NumMessages: 117, NumExtensions: 0, NumServices: 1, }, @@ -7799,6 +8766,11 @@ type AdminClient interface { GetUserToken(ctx context.Context, in *GetUserTokenReq, opts ...grpc.CallOption) (*GetUserTokenResp, error) // invalidate token InvalidateToken(ctx context.Context, in *InvalidateTokenReq, opts ...grpc.CallOption) (*InvalidateTokenResp, error) + LatestApplicationVersion(ctx context.Context, in *LatestApplicationVersionReq, opts ...grpc.CallOption) (*LatestApplicationVersionResp, error) + AddApplicationVersion(ctx context.Context, in *AddApplicationVersionReq, opts ...grpc.CallOption) (*AddApplicationVersionResp, error) + UpdateApplicationVersion(ctx context.Context, in *UpdateApplicationVersionReq, opts ...grpc.CallOption) (*UpdateApplicationVersionResp, error) + DeleteApplicationVersion(ctx context.Context, in *DeleteApplicationVersionReq, opts ...grpc.CallOption) (*DeleteApplicationVersionResp, error) + PageApplicationVersion(ctx context.Context, in *PageApplicationVersionReq, opts ...grpc.CallOption) (*PageApplicationVersionResp, error) } type adminClient struct { @@ -8232,6 +9204,51 @@ func (c *adminClient) InvalidateToken(ctx context.Context, in *InvalidateTokenRe return out, nil } +func (c *adminClient) LatestApplicationVersion(ctx context.Context, in *LatestApplicationVersionReq, opts ...grpc.CallOption) (*LatestApplicationVersionResp, error) { + out := new(LatestApplicationVersionResp) + err := c.cc.Invoke(ctx, "/openim.admin.admin/LatestApplicationVersion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminClient) AddApplicationVersion(ctx context.Context, in *AddApplicationVersionReq, opts ...grpc.CallOption) (*AddApplicationVersionResp, error) { + out := new(AddApplicationVersionResp) + err := c.cc.Invoke(ctx, "/openim.admin.admin/AddApplicationVersion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminClient) UpdateApplicationVersion(ctx context.Context, in *UpdateApplicationVersionReq, opts ...grpc.CallOption) (*UpdateApplicationVersionResp, error) { + out := new(UpdateApplicationVersionResp) + err := c.cc.Invoke(ctx, "/openim.admin.admin/UpdateApplicationVersion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminClient) DeleteApplicationVersion(ctx context.Context, in *DeleteApplicationVersionReq, opts ...grpc.CallOption) (*DeleteApplicationVersionResp, error) { + out := new(DeleteApplicationVersionResp) + err := c.cc.Invoke(ctx, "/openim.admin.admin/DeleteApplicationVersion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminClient) PageApplicationVersion(ctx context.Context, in *PageApplicationVersionReq, opts ...grpc.CallOption) (*PageApplicationVersionResp, error) { + out := new(PageApplicationVersionResp) + err := c.cc.Invoke(ctx, "/openim.admin.admin/PageApplicationVersion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // AdminServer is the server API for Admin service. type AdminServer interface { // Login @@ -8293,6 +9310,11 @@ type AdminServer interface { GetUserToken(context.Context, *GetUserTokenReq) (*GetUserTokenResp, error) // invalidate token InvalidateToken(context.Context, *InvalidateTokenReq) (*InvalidateTokenResp, error) + LatestApplicationVersion(context.Context, *LatestApplicationVersionReq) (*LatestApplicationVersionResp, error) + AddApplicationVersion(context.Context, *AddApplicationVersionReq) (*AddApplicationVersionResp, error) + UpdateApplicationVersion(context.Context, *UpdateApplicationVersionReq) (*UpdateApplicationVersionResp, error) + DeleteApplicationVersion(context.Context, *DeleteApplicationVersionReq) (*DeleteApplicationVersionResp, error) + PageApplicationVersion(context.Context, *PageApplicationVersionReq) (*PageApplicationVersionResp, error) } // UnimplementedAdminServer can be embedded to have forward compatible implementations. @@ -8440,6 +9462,21 @@ func (*UnimplementedAdminServer) GetUserToken(context.Context, *GetUserTokenReq) func (*UnimplementedAdminServer) InvalidateToken(context.Context, *InvalidateTokenReq) (*InvalidateTokenResp, error) { return nil, status.Errorf(codes.Unimplemented, "method InvalidateToken not implemented") } +func (*UnimplementedAdminServer) LatestApplicationVersion(context.Context, *LatestApplicationVersionReq) (*LatestApplicationVersionResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method LatestApplicationVersion not implemented") +} +func (*UnimplementedAdminServer) AddApplicationVersion(context.Context, *AddApplicationVersionReq) (*AddApplicationVersionResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddApplicationVersion not implemented") +} +func (*UnimplementedAdminServer) UpdateApplicationVersion(context.Context, *UpdateApplicationVersionReq) (*UpdateApplicationVersionResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateApplicationVersion not implemented") +} +func (*UnimplementedAdminServer) DeleteApplicationVersion(context.Context, *DeleteApplicationVersionReq) (*DeleteApplicationVersionResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteApplicationVersion not implemented") +} +func (*UnimplementedAdminServer) PageApplicationVersion(context.Context, *PageApplicationVersionReq) (*PageApplicationVersionResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method PageApplicationVersion not implemented") +} func RegisterAdminServer(s *grpc.Server, srv AdminServer) { s.RegisterService(&_Admin_serviceDesc, srv) @@ -9291,6 +10328,96 @@ func _Admin_InvalidateToken_Handler(srv interface{}, ctx context.Context, dec fu return interceptor(ctx, in, info, handler) } +func _Admin_LatestApplicationVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LatestApplicationVersionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServer).LatestApplicationVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openim.admin.admin/LatestApplicationVersion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServer).LatestApplicationVersion(ctx, req.(*LatestApplicationVersionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Admin_AddApplicationVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddApplicationVersionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServer).AddApplicationVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openim.admin.admin/AddApplicationVersion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServer).AddApplicationVersion(ctx, req.(*AddApplicationVersionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Admin_UpdateApplicationVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateApplicationVersionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServer).UpdateApplicationVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openim.admin.admin/UpdateApplicationVersion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServer).UpdateApplicationVersion(ctx, req.(*UpdateApplicationVersionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Admin_DeleteApplicationVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteApplicationVersionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServer).DeleteApplicationVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openim.admin.admin/DeleteApplicationVersion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServer).DeleteApplicationVersion(ctx, req.(*DeleteApplicationVersionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Admin_PageApplicationVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PageApplicationVersionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServer).PageApplicationVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openim.admin.admin/PageApplicationVersion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServer).PageApplicationVersion(ctx, req.(*PageApplicationVersionReq)) + } + return interceptor(ctx, in, info, handler) +} + var _Admin_serviceDesc = grpc.ServiceDesc{ ServiceName: "openim.admin.admin", HandlerType: (*AdminServer)(nil), @@ -9483,6 +10610,26 @@ var _Admin_serviceDesc = grpc.ServiceDesc{ MethodName: "InvalidateToken", Handler: _Admin_InvalidateToken_Handler, }, + { + MethodName: "LatestApplicationVersion", + Handler: _Admin_LatestApplicationVersion_Handler, + }, + { + MethodName: "AddApplicationVersion", + Handler: _Admin_AddApplicationVersion_Handler, + }, + { + MethodName: "UpdateApplicationVersion", + Handler: _Admin_UpdateApplicationVersion_Handler, + }, + { + MethodName: "DeleteApplicationVersion", + Handler: _Admin_DeleteApplicationVersion_Handler, + }, + { + MethodName: "PageApplicationVersion", + Handler: _Admin_PageApplicationVersion_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "admin/admin.proto", diff --git a/pkg/protocol/admin/admin.proto b/pkg/protocol/admin/admin.proto index 2c4ee995a..86063aa03 100644 --- a/pkg/protocol/admin/admin.proto +++ b/pkg/protocol/admin/admin.proto @@ -485,6 +485,76 @@ message GetUserTokenResp { map tokensMap = 1; } + +message ApplicationVersion { + string id = 1; + string platform = 2; + string version = 3; + string url = 4; + string text = 5; + bool force = 6; + bool latest = 7; + bool hot = 8; + int64 createTime = 9; +} + +message LatestApplicationVersionReq { + string platform = 2; + string version = 3; +} + +message LatestApplicationVersionResp { + ApplicationVersion version = 1; +} + +message AddApplicationVersionReq { + string platform = 1; + string version = 2; + string url = 3; + string text = 4; + bool force = 5; + bool latest = 6; + bool hot = 7; +} + +message AddApplicationVersionResp { + +} + +message UpdateApplicationVersionReq { + string id = 1; + openim.protobuf.StringValue platform = 2; + openim.protobuf.StringValue version = 3; + openim.protobuf.StringValue url = 4; + openim.protobuf.StringValue text = 5; + openim.protobuf.BoolValue force = 6; + openim.protobuf.BoolValue latest = 7; + openim.protobuf.BoolValue hot = 8; +} + +message UpdateApplicationVersionResp { + +} + +message DeleteApplicationVersionReq { + repeated string id = 1; +} + +message DeleteApplicationVersionResp { + +} + +message PageApplicationVersionReq { + repeated string platform = 1; + openim.sdkws.RequestPagination pagination = 2; +} + +message PageApplicationVersionResp { + int64 total = 1; + repeated ApplicationVersion versions = 2; +} + + service admin { // Login rpc Login(LoginReq) returns (LoginResp); @@ -557,4 +627,10 @@ service admin { // invalidate token rpc InvalidateToken(InvalidateTokenReq) returns (InvalidateTokenResp); + + rpc LatestApplicationVersion(LatestApplicationVersionReq) returns (LatestApplicationVersionResp); + rpc AddApplicationVersion(AddApplicationVersionReq) returns (AddApplicationVersionResp); + rpc UpdateApplicationVersion(UpdateApplicationVersionReq) returns (UpdateApplicationVersionResp); + rpc DeleteApplicationVersion(DeleteApplicationVersionReq) returns (DeleteApplicationVersionResp); + rpc PageApplicationVersion(PageApplicationVersionReq) returns (PageApplicationVersionResp); }