From bdc512b0262ea1a7e498d3a13582930dfcab4e82 Mon Sep 17 00:00:00 2001 From: Monet Lee Date: Tue, 24 Sep 2024 10:48:43 +0800 Subject: [PATCH] Update relation.proto to use openim.sdkws.BlackInfo for getIncrementalBlacksResp and add GetSpecifiedBlacksReq and GetSpecifiedBlacksResp (#132) --- relation/relation.pb.go | 924 +++++++++++++++++++++------------------- relation/relation.proto | 36 +- 2 files changed, 511 insertions(+), 449 deletions(-) diff --git a/relation/relation.pb.go b/relation/relation.pb.go index 88147106..452d7b8f 100644 --- a/relation/relation.pb.go +++ b/relation/relation.pb.go @@ -2541,23 +2541,18 @@ func (x *GetIncrementalFriendsResp) GetSortVersion() uint64 { return 0 } -type BlackInfo struct { +type GetIncrementalBlacksReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID,proto3" json:"ownerUserID"` - BlackUserID string `protobuf:"bytes,2,opt,name=blackUserID,proto3" json:"blackUserID"` - BlackNickname string `protobuf:"bytes,3,opt,name=blackNickname,proto3" json:"blackNickname"` - BlackFaceURL string `protobuf:"bytes,4,opt,name=blackFaceURL,proto3" json:"blackFaceURL"` - CreateTime int64 `protobuf:"varint,5,opt,name=createTime,proto3" json:"createTime"` - AddSource int32 `protobuf:"varint,6,opt,name=addSource,proto3" json:"addSource"` - OperatorUserID string `protobuf:"bytes,7,opt,name=operatorUserID,proto3" json:"operatorUserID"` - Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex"` + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"` + VersionID string `protobuf:"bytes,2,opt,name=versionID,proto3" json:"versionID"` + Version uint64 `protobuf:"varint,3,opt,name=version,proto3" json:"version"` } -func (x *BlackInfo) Reset() { - *x = BlackInfo{} +func (x *GetIncrementalBlacksReq) Reset() { + *x = GetIncrementalBlacksReq{} if protoimpl.UnsafeEnabled { mi := &file_relation_relation_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2565,13 +2560,13 @@ func (x *BlackInfo) Reset() { } } -func (x *BlackInfo) String() string { +func (x *GetIncrementalBlacksReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlackInfo) ProtoMessage() {} +func (*GetIncrementalBlacksReq) ProtoMessage() {} -func (x *BlackInfo) ProtoReflect() protoreflect.Message { +func (x *GetIncrementalBlacksReq) ProtoReflect() protoreflect.Message { mi := &file_relation_relation_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2583,79 +2578,47 @@ func (x *BlackInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BlackInfo.ProtoReflect.Descriptor instead. -func (*BlackInfo) Descriptor() ([]byte, []int) { +// Deprecated: Use GetIncrementalBlacksReq.ProtoReflect.Descriptor instead. +func (*GetIncrementalBlacksReq) Descriptor() ([]byte, []int) { return file_relation_relation_proto_rawDescGZIP(), []int{44} } -func (x *BlackInfo) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID - } - return "" -} - -func (x *BlackInfo) GetBlackUserID() string { - if x != nil { - return x.BlackUserID - } - return "" -} - -func (x *BlackInfo) GetBlackNickname() string { +func (x *GetIncrementalBlacksReq) GetUserID() string { if x != nil { - return x.BlackNickname + return x.UserID } return "" } -func (x *BlackInfo) GetBlackFaceURL() string { +func (x *GetIncrementalBlacksReq) GetVersionID() string { if x != nil { - return x.BlackFaceURL + return x.VersionID } return "" } -func (x *BlackInfo) GetCreateTime() int64 { - if x != nil { - return x.CreateTime - } - return 0 -} - -func (x *BlackInfo) GetAddSource() int32 { +func (x *GetIncrementalBlacksReq) GetVersion() uint64 { if x != nil { - return x.AddSource + return x.Version } return 0 } -func (x *BlackInfo) GetOperatorUserID() string { - if x != nil { - return x.OperatorUserID - } - return "" -} - -func (x *BlackInfo) GetEx() string { - if x != nil { - return x.Ex - } - return "" -} - -type GetIncrementalBlacksReq struct { +type GetIncrementalBlacksResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"` - VersionID string `protobuf:"bytes,2,opt,name=versionID,proto3" json:"versionID"` - Version uint64 `protobuf:"varint,3,opt,name=version,proto3" json:"version"` + Version uint64 `protobuf:"varint,1,opt,name=version,proto3" json:"version"` + VersionID string `protobuf:"bytes,2,opt,name=versionID,proto3" json:"versionID"` + Full bool `protobuf:"varint,3,opt,name=full,proto3" json:"full"` + Delete []string `protobuf:"bytes,4,rep,name=delete,proto3" json:"delete"` + Insert []*sdkws.BlackInfo `protobuf:"bytes,5,rep,name=insert,proto3" json:"insert"` + Update []*sdkws.BlackInfo `protobuf:"bytes,6,rep,name=update,proto3" json:"update"` } -func (x *GetIncrementalBlacksReq) Reset() { - *x = GetIncrementalBlacksReq{} +func (x *GetIncrementalBlacksResp) Reset() { + *x = GetIncrementalBlacksResp{} if protoimpl.UnsafeEnabled { mi := &file_relation_relation_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2663,13 +2626,13 @@ func (x *GetIncrementalBlacksReq) Reset() { } } -func (x *GetIncrementalBlacksReq) String() string { +func (x *GetIncrementalBlacksResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetIncrementalBlacksReq) ProtoMessage() {} +func (*GetIncrementalBlacksResp) ProtoMessage() {} -func (x *GetIncrementalBlacksReq) ProtoReflect() protoreflect.Message { +func (x *GetIncrementalBlacksResp) ProtoReflect() protoreflect.Message { mi := &file_relation_relation_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2681,47 +2644,64 @@ func (x *GetIncrementalBlacksReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetIncrementalBlacksReq.ProtoReflect.Descriptor instead. -func (*GetIncrementalBlacksReq) Descriptor() ([]byte, []int) { +// Deprecated: Use GetIncrementalBlacksResp.ProtoReflect.Descriptor instead. +func (*GetIncrementalBlacksResp) Descriptor() ([]byte, []int) { return file_relation_relation_proto_rawDescGZIP(), []int{45} } -func (x *GetIncrementalBlacksReq) GetUserID() string { +func (x *GetIncrementalBlacksResp) GetVersion() uint64 { if x != nil { - return x.UserID + return x.Version } - return "" + return 0 } -func (x *GetIncrementalBlacksReq) GetVersionID() string { +func (x *GetIncrementalBlacksResp) GetVersionID() string { if x != nil { return x.VersionID } return "" } -func (x *GetIncrementalBlacksReq) GetVersion() uint64 { +func (x *GetIncrementalBlacksResp) GetFull() bool { if x != nil { - return x.Version + return x.Full } - return 0 + return false } -type GetIncrementalBlacksResp struct { +func (x *GetIncrementalBlacksResp) GetDelete() []string { + if x != nil { + return x.Delete + } + return nil +} + +func (x *GetIncrementalBlacksResp) GetInsert() []*sdkws.BlackInfo { + if x != nil { + return x.Insert + } + return nil +} + +func (x *GetIncrementalBlacksResp) GetUpdate() []*sdkws.BlackInfo { + if x != nil { + return x.Update + } + return nil +} + +type GetSpecifiedBlacksReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Version uint64 `protobuf:"varint,1,opt,name=version,proto3" json:"version"` - VersionID string `protobuf:"bytes,2,opt,name=versionID,proto3" json:"versionID"` - Full bool `protobuf:"varint,3,opt,name=full,proto3" json:"full"` - Delete []string `protobuf:"bytes,4,rep,name=delete,proto3" json:"delete"` - Insert []*BlackInfo `protobuf:"bytes,5,rep,name=insert,proto3" json:"insert"` - Update []*BlackInfo `protobuf:"bytes,6,rep,name=update,proto3" json:"update"` + OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID,proto3" json:"ownerUserID"` + UserIDList []string `protobuf:"bytes,2,rep,name=userIDList,proto3" json:"userIDList"` } -func (x *GetIncrementalBlacksResp) Reset() { - *x = GetIncrementalBlacksResp{} +func (x *GetSpecifiedBlacksReq) Reset() { + *x = GetSpecifiedBlacksReq{} if protoimpl.UnsafeEnabled { mi := &file_relation_relation_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2729,13 +2709,13 @@ func (x *GetIncrementalBlacksResp) Reset() { } } -func (x *GetIncrementalBlacksResp) String() string { +func (x *GetSpecifiedBlacksReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetIncrementalBlacksResp) ProtoMessage() {} +func (*GetSpecifiedBlacksReq) ProtoMessage() {} -func (x *GetIncrementalBlacksResp) ProtoReflect() protoreflect.Message { +func (x *GetSpecifiedBlacksReq) ProtoReflect() protoreflect.Message { mi := &file_relation_relation_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2747,51 +2727,78 @@ func (x *GetIncrementalBlacksResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetIncrementalBlacksResp.ProtoReflect.Descriptor instead. -func (*GetIncrementalBlacksResp) Descriptor() ([]byte, []int) { +// Deprecated: Use GetSpecifiedBlacksReq.ProtoReflect.Descriptor instead. +func (*GetSpecifiedBlacksReq) Descriptor() ([]byte, []int) { return file_relation_relation_proto_rawDescGZIP(), []int{46} } -func (x *GetIncrementalBlacksResp) GetVersion() uint64 { +func (x *GetSpecifiedBlacksReq) GetOwnerUserID() string { if x != nil { - return x.Version + return x.OwnerUserID } - return 0 + return "" } -func (x *GetIncrementalBlacksResp) GetVersionID() string { +func (x *GetSpecifiedBlacksReq) GetUserIDList() []string { if x != nil { - return x.VersionID + return x.UserIDList } - return "" + return nil } -func (x *GetIncrementalBlacksResp) GetFull() bool { - if x != nil { - return x.Full +type GetSpecifiedBlacksResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Blacks []*sdkws.BlackInfo `protobuf:"bytes,1,rep,name=blacks,proto3" json:"blacks"` + Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total"` +} + +func (x *GetSpecifiedBlacksResp) Reset() { + *x = GetSpecifiedBlacksResp{} + if protoimpl.UnsafeEnabled { + mi := &file_relation_relation_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return false } -func (x *GetIncrementalBlacksResp) GetDelete() []string { - if x != nil { - return x.Delete +func (x *GetSpecifiedBlacksResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSpecifiedBlacksResp) ProtoMessage() {} + +func (x *GetSpecifiedBlacksResp) ProtoReflect() protoreflect.Message { + mi := &file_relation_relation_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) +} + +// Deprecated: Use GetSpecifiedBlacksResp.ProtoReflect.Descriptor instead. +func (*GetSpecifiedBlacksResp) Descriptor() ([]byte, []int) { + return file_relation_relation_proto_rawDescGZIP(), []int{47} } -func (x *GetIncrementalBlacksResp) GetInsert() []*BlackInfo { +func (x *GetSpecifiedBlacksResp) GetBlacks() []*sdkws.BlackInfo { if x != nil { - return x.Insert + return x.Blacks } return nil } -func (x *GetIncrementalBlacksResp) GetUpdate() []*BlackInfo { +func (x *GetSpecifiedBlacksResp) GetTotal() int32 { if x != nil { - return x.Update + return x.Total } - return nil + return 0 } type GetFullFriendUserIDsReq struct { @@ -2806,7 +2813,7 @@ type GetFullFriendUserIDsReq struct { func (x *GetFullFriendUserIDsReq) Reset() { *x = GetFullFriendUserIDsReq{} if protoimpl.UnsafeEnabled { - mi := &file_relation_relation_proto_msgTypes[47] + mi := &file_relation_relation_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2819,7 +2826,7 @@ func (x *GetFullFriendUserIDsReq) String() string { func (*GetFullFriendUserIDsReq) ProtoMessage() {} func (x *GetFullFriendUserIDsReq) ProtoReflect() protoreflect.Message { - mi := &file_relation_relation_proto_msgTypes[47] + mi := &file_relation_relation_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2832,7 +2839,7 @@ func (x *GetFullFriendUserIDsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFullFriendUserIDsReq.ProtoReflect.Descriptor instead. func (*GetFullFriendUserIDsReq) Descriptor() ([]byte, []int) { - return file_relation_relation_proto_rawDescGZIP(), []int{47} + return file_relation_relation_proto_rawDescGZIP(), []int{48} } func (x *GetFullFriendUserIDsReq) GetIdHash() uint64 { @@ -2863,7 +2870,7 @@ type GetFullFriendUserIDsResp struct { func (x *GetFullFriendUserIDsResp) Reset() { *x = GetFullFriendUserIDsResp{} if protoimpl.UnsafeEnabled { - mi := &file_relation_relation_proto_msgTypes[48] + mi := &file_relation_relation_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2876,7 +2883,7 @@ func (x *GetFullFriendUserIDsResp) String() string { func (*GetFullFriendUserIDsResp) ProtoMessage() {} func (x *GetFullFriendUserIDsResp) ProtoReflect() protoreflect.Message { - mi := &file_relation_relation_proto_msgTypes[48] + mi := &file_relation_relation_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2889,7 +2896,7 @@ func (x *GetFullFriendUserIDsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFullFriendUserIDsResp.ProtoReflect.Descriptor instead. func (*GetFullFriendUserIDsResp) Descriptor() ([]byte, []int) { - return file_relation_relation_proto_rawDescGZIP(), []int{48} + return file_relation_relation_proto_rawDescGZIP(), []int{49} } func (x *GetFullFriendUserIDsResp) GetVersion() uint64 { @@ -2933,7 +2940,7 @@ type NotificationUserInfoUpdateReq struct { func (x *NotificationUserInfoUpdateReq) Reset() { *x = NotificationUserInfoUpdateReq{} if protoimpl.UnsafeEnabled { - mi := &file_relation_relation_proto_msgTypes[49] + mi := &file_relation_relation_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2946,7 +2953,7 @@ func (x *NotificationUserInfoUpdateReq) String() string { func (*NotificationUserInfoUpdateReq) ProtoMessage() {} func (x *NotificationUserInfoUpdateReq) ProtoReflect() protoreflect.Message { - mi := &file_relation_relation_proto_msgTypes[49] + mi := &file_relation_relation_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2959,7 +2966,7 @@ func (x *NotificationUserInfoUpdateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use NotificationUserInfoUpdateReq.ProtoReflect.Descriptor instead. func (*NotificationUserInfoUpdateReq) Descriptor() ([]byte, []int) { - return file_relation_relation_proto_rawDescGZIP(), []int{49} + return file_relation_relation_proto_rawDescGZIP(), []int{50} } func (x *NotificationUserInfoUpdateReq) GetUserID() string { @@ -2992,7 +2999,7 @@ type NotificationUserInfoUpdateResp struct { func (x *NotificationUserInfoUpdateResp) Reset() { *x = NotificationUserInfoUpdateResp{} if protoimpl.UnsafeEnabled { - mi := &file_relation_relation_proto_msgTypes[50] + mi := &file_relation_relation_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3005,7 +3012,7 @@ func (x *NotificationUserInfoUpdateResp) String() string { func (*NotificationUserInfoUpdateResp) ProtoMessage() {} func (x *NotificationUserInfoUpdateResp) ProtoReflect() protoreflect.Message { - mi := &file_relation_relation_proto_msgTypes[50] + mi := &file_relation_relation_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3018,7 +3025,7 @@ func (x *NotificationUserInfoUpdateResp) ProtoReflect() protoreflect.Message { // Deprecated: Use NotificationUserInfoUpdateResp.ProtoReflect.Descriptor instead. func (*NotificationUserInfoUpdateResp) Descriptor() ([]byte, []int) { - return file_relation_relation_proto_rawDescGZIP(), []int{50} + return file_relation_relation_proto_rawDescGZIP(), []int{51} } var File_relation_relation_proto protoreflect.FileDescriptor @@ -3320,231 +3327,232 @@ var file_relation_relation_proto_rawDesc = []byte{ 0x73, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x6f, 0x72, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8f, 0x02, 0x0a, 0x09, 0x62, 0x6c, 0x61, 0x63, 0x6b, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x6c, 0x61, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x6c, 0x61, 0x63, - 0x6b, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, - 0x0a, 0x0c, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x46, 0x61, 0x63, 0x65, 0x55, - 0x52, 0x4c, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x69, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x49, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, - 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0xe6, 0x01, 0x0a, 0x18, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6c, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x75, 0x6c, 0x6c, 0x12, 0x16, 0x0a, 0x06, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x06, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, - 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x62, 0x6c, 0x61, 0x63, 0x6b, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x49, 0x0a, 0x17, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x69, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, + 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x22, 0xe0, 0x01, 0x0a, 0x18, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x6c, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x75, 0x6c, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x73, 0x64, 0x6b, 0x77, + 0x73, 0x2e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x69, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x73, 0x64, 0x6b, + 0x77, 0x73, 0x2e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x22, 0x59, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, + 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0x5f, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, + 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x06, 0x62, 0x6c, 0x61, + 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x69, 0x6d, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x06, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x22, 0x49, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x69, + 0x64, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, 0x64, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x82, 0x01, 0x0a, 0x18, 0x67, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x48, 0x61, 0x73, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x82, 0x01, 0x0a, 0x18, 0x67, 0x65, 0x74, 0x46, - 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, - 0x0a, 0x09, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x71, 0x75, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x65, 0x71, 0x75, - 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, 0x22, 0xab, 0x01, 0x0a, - 0x1d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, - 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x38, 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x38, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x73, - 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6e, - 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x20, 0x0a, 0x1e, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x32, 0xcd, 0x13, 0x0a, - 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x5f, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x6f, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x24, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, - 0x71, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x80, 0x01, 0x0a, 0x1b, 0x67, 0x65, 0x74, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, - 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x86, 0x01, 0x0a, 0x1d, - 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x31, 0x2e, + 0x72, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x05, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, + 0x22, 0xab, 0x01, 0x0a, 0x1d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x38, 0x0a, 0x0b, 0x6f, 0x6c, + 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x69, 0x6d, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x20, + 0x0a, 0x1e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x32, 0xb4, 0x14, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x5f, 0x0a, 0x10, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, + 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x41, + 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x80, 0x01, 0x0a, + 0x1b, 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x12, 0x2f, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, + 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x71, - 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x6f, 0x6d, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x7a, 0x0a, 0x19, 0x67, 0x65, 0x74, 0x44, 0x65, 0x73, 0x69, 0x67, + 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x86, 0x01, 0x0a, 0x1d, 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x6f, + 0x6d, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x6f, + 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x7a, 0x0a, 0x19, 0x67, 0x65, 0x74, 0x44, + 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, - 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, - 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, 0x64, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x83, 0x01, 0x0a, 0x1c, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, - 0x6f, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, - 0x52, 0x65, 0x71, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x89, 0x01, 0x0a, 0x1e, 0x67, 0x65, 0x74, 0x49, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x49, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x33, 0x2e, + 0x79, 0x52, 0x65, 0x71, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x83, 0x01, 0x0a, 0x1c, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x54, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, + 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x89, 0x01, 0x0a, 0x1e, 0x67, + 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x47, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x1c, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x61, 0x64, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, - 0x64, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x50, 0x0a, 0x0b, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x1f, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x72, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, - 0x08, 0x69, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x69, 0x73, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, - 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x69, 0x73, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x07, 0x69, 0x73, 0x42, 0x6c, 0x61, 0x63, - 0x6b, 0x12, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x69, 0x73, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x71, 0x1a, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x61, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, + 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x42, 0x6c, 0x61, + 0x63, 0x6b, 0x12, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x61, 0x64, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, + 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x61, 0x64, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x50, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x69, 0x73, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x68, 0x0a, 0x13, - 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x61, - 0x63, 0x6b, 0x73, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, - 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x61, 0x63, - 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x53, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, - 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x65, 0x0a, 0x12, 0x72, + 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, + 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x47, 0x0a, 0x08, 0x69, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x1c, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x69, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x69, 0x73, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x07, 0x69, 0x73, + 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x69, 0x73, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x69, 0x73, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x68, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, + 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x65, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, + 0x12, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, + 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, + 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x53, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x65, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x26, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x12, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x56, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x73, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x0f, 0x73, 0x65, - 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x23, 0x2e, + 0x79, 0x52, 0x65, 0x71, 0x1a, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, + 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x21, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, + 0x71, 0x1a, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x0f, 0x73, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, + 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x73, 0x65, 0x74, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x73, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x52, - 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x73, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, - 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x0d, 0x69, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x69, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x69, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, - 0x0a, 0x14, 0x67, 0x65, 0x74, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x44, 0x65, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, - 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, 0x64, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x14, 0x67, - 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x29, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x53, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x73, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, - 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x74, 0x0a, - 0x17, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, - 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x53, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x6e, 0x0a, 0x15, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x29, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, - 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, + 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x0d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x73, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x14, 0x67, 0x65, 0x74, + 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x73, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, + 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x29, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, + 0x74, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x14, 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x28, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, + 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x53, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x49, 0x44, 0x73, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, + 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x74, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x1a, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6e, + 0x0a, 0x15, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x14, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x28, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, - 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x42, 0x6c, 0x61, 0x63, - 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x6b, 0x0a, 0x14, 0x67, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, - 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x46, 0x75, - 0x6c, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, 0x52, - 0x65, 0x71, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x7d, 0x0a, - 0x1a, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x28, 0x5a, 0x26, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x69, - 0x6d, 0x73, 0x64, 0x6b, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x61, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, + 0x0a, 0x14, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, + 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x6c, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x14, 0x67, + 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x73, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x29, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x67, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x7d, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x28, 0x5a, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x73, 0x64, 0x6b, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3559,7 +3567,7 @@ func file_relation_relation_proto_rawDescGZIP() []byte { return file_relation_relation_proto_rawDescData } -var file_relation_relation_proto_msgTypes = make([]protoimpl.MessageInfo, 51) +var file_relation_relation_proto_msgTypes = make([]protoimpl.MessageInfo, 52) var file_relation_relation_proto_goTypes = []interface{}{ (*GetPaginationFriendsReq)(nil), // 0: openim.relation.getPaginationFriendsReq (*GetPaginationFriendsResp)(nil), // 1: openim.relation.getPaginationFriendsResp @@ -3605,100 +3613,104 @@ var file_relation_relation_proto_goTypes = []interface{}{ (*GetSpecifiedFriendsInfoResp)(nil), // 41: openim.relation.getSpecifiedFriendsInfoResp (*GetIncrementalFriendsReq)(nil), // 42: openim.relation.getIncrementalFriendsReq (*GetIncrementalFriendsResp)(nil), // 43: openim.relation.getIncrementalFriendsResp - (*BlackInfo)(nil), // 44: openim.relation.blackInfo - (*GetIncrementalBlacksReq)(nil), // 45: openim.relation.getIncrementalBlacksReq - (*GetIncrementalBlacksResp)(nil), // 46: openim.relation.getIncrementalBlacksResp - (*GetFullFriendUserIDsReq)(nil), // 47: openim.relation.getFullFriendUserIDsReq - (*GetFullFriendUserIDsResp)(nil), // 48: openim.relation.getFullFriendUserIDsResp - (*NotificationUserInfoUpdateReq)(nil), // 49: openim.relation.notificationUserInfoUpdateReq - (*NotificationUserInfoUpdateResp)(nil), // 50: openim.relation.notificationUserInfoUpdateResp - (*sdkws.RequestPagination)(nil), // 51: openim.sdkws.RequestPagination - (*sdkws.FriendInfo)(nil), // 52: openim.sdkws.FriendInfo - (*sdkws.FriendRequest)(nil), // 53: openim.sdkws.FriendRequest - (*sdkws.BlackInfo)(nil), // 54: openim.sdkws.BlackInfo - (*wrapperspb.BoolValue)(nil), // 55: openim.protobuf.BoolValue - (*wrapperspb.StringValue)(nil), // 56: openim.protobuf.StringValue - (*sdkws.UserInfo)(nil), // 57: openim.sdkws.UserInfo + (*GetIncrementalBlacksReq)(nil), // 44: openim.relation.getIncrementalBlacksReq + (*GetIncrementalBlacksResp)(nil), // 45: openim.relation.getIncrementalBlacksResp + (*GetSpecifiedBlacksReq)(nil), // 46: openim.relation.GetSpecifiedBlacksReq + (*GetSpecifiedBlacksResp)(nil), // 47: openim.relation.GetSpecifiedBlacksResp + (*GetFullFriendUserIDsReq)(nil), // 48: openim.relation.getFullFriendUserIDsReq + (*GetFullFriendUserIDsResp)(nil), // 49: openim.relation.getFullFriendUserIDsResp + (*NotificationUserInfoUpdateReq)(nil), // 50: openim.relation.notificationUserInfoUpdateReq + (*NotificationUserInfoUpdateResp)(nil), // 51: openim.relation.notificationUserInfoUpdateResp + (*sdkws.RequestPagination)(nil), // 52: openim.sdkws.RequestPagination + (*sdkws.FriendInfo)(nil), // 53: openim.sdkws.FriendInfo + (*sdkws.FriendRequest)(nil), // 54: openim.sdkws.FriendRequest + (*sdkws.BlackInfo)(nil), // 55: openim.sdkws.BlackInfo + (*wrapperspb.BoolValue)(nil), // 56: openim.protobuf.BoolValue + (*wrapperspb.StringValue)(nil), // 57: openim.protobuf.StringValue + (*sdkws.UserInfo)(nil), // 58: openim.sdkws.UserInfo } var file_relation_relation_proto_depIdxs = []int32{ - 51, // 0: openim.relation.getPaginationFriendsReq.pagination:type_name -> openim.sdkws.RequestPagination - 52, // 1: openim.relation.getPaginationFriendsResp.friendsInfo:type_name -> openim.sdkws.FriendInfo - 51, // 2: openim.relation.getPaginationFriendsApplyToReq.pagination:type_name -> openim.sdkws.RequestPagination - 53, // 3: openim.relation.getPaginationFriendsApplyToResp.FriendRequests:type_name -> openim.sdkws.FriendRequest - 53, // 4: openim.relation.getDesignatedFriendsApplyResp.friendRequests:type_name -> openim.sdkws.FriendRequest - 53, // 5: openim.relation.getIncrementalFriendsApplyToResp.changes:type_name -> openim.sdkws.FriendRequest - 53, // 6: openim.relation.getIncrementalFriendsApplyFromResp.changes:type_name -> openim.sdkws.FriendRequest - 52, // 7: openim.relation.getDesignatedFriendsResp.friendsInfo:type_name -> openim.sdkws.FriendInfo - 51, // 8: openim.relation.getPaginationBlacksReq.pagination:type_name -> openim.sdkws.RequestPagination - 54, // 9: openim.relation.getPaginationBlacksResp.blacks:type_name -> openim.sdkws.BlackInfo - 55, // 10: openim.relation.updateFriendsReq.isPinned:type_name -> openim.protobuf.BoolValue - 56, // 11: openim.relation.updateFriendsReq.remark:type_name -> openim.protobuf.StringValue - 56, // 12: openim.relation.updateFriendsReq.ex:type_name -> openim.protobuf.StringValue - 51, // 13: openim.relation.getPaginationFriendsApplyFromReq.pagination:type_name -> openim.sdkws.RequestPagination - 53, // 14: openim.relation.getPaginationFriendsApplyFromResp.friendRequests:type_name -> openim.sdkws.FriendRequest - 57, // 15: openim.relation.getSpecifiedFriendsInfoInfo.userInfo:type_name -> openim.sdkws.UserInfo - 52, // 16: openim.relation.getSpecifiedFriendsInfoInfo.friendInfo:type_name -> openim.sdkws.FriendInfo - 54, // 17: openim.relation.getSpecifiedFriendsInfoInfo.blackInfo:type_name -> openim.sdkws.BlackInfo + 52, // 0: openim.relation.getPaginationFriendsReq.pagination:type_name -> openim.sdkws.RequestPagination + 53, // 1: openim.relation.getPaginationFriendsResp.friendsInfo:type_name -> openim.sdkws.FriendInfo + 52, // 2: openim.relation.getPaginationFriendsApplyToReq.pagination:type_name -> openim.sdkws.RequestPagination + 54, // 3: openim.relation.getPaginationFriendsApplyToResp.FriendRequests:type_name -> openim.sdkws.FriendRequest + 54, // 4: openim.relation.getDesignatedFriendsApplyResp.friendRequests:type_name -> openim.sdkws.FriendRequest + 54, // 5: openim.relation.getIncrementalFriendsApplyToResp.changes:type_name -> openim.sdkws.FriendRequest + 54, // 6: openim.relation.getIncrementalFriendsApplyFromResp.changes:type_name -> openim.sdkws.FriendRequest + 53, // 7: openim.relation.getDesignatedFriendsResp.friendsInfo:type_name -> openim.sdkws.FriendInfo + 52, // 8: openim.relation.getPaginationBlacksReq.pagination:type_name -> openim.sdkws.RequestPagination + 55, // 9: openim.relation.getPaginationBlacksResp.blacks:type_name -> openim.sdkws.BlackInfo + 56, // 10: openim.relation.updateFriendsReq.isPinned:type_name -> openim.protobuf.BoolValue + 57, // 11: openim.relation.updateFriendsReq.remark:type_name -> openim.protobuf.StringValue + 57, // 12: openim.relation.updateFriendsReq.ex:type_name -> openim.protobuf.StringValue + 52, // 13: openim.relation.getPaginationFriendsApplyFromReq.pagination:type_name -> openim.sdkws.RequestPagination + 54, // 14: openim.relation.getPaginationFriendsApplyFromResp.friendRequests:type_name -> openim.sdkws.FriendRequest + 58, // 15: openim.relation.getSpecifiedFriendsInfoInfo.userInfo:type_name -> openim.sdkws.UserInfo + 53, // 16: openim.relation.getSpecifiedFriendsInfoInfo.friendInfo:type_name -> openim.sdkws.FriendInfo + 55, // 17: openim.relation.getSpecifiedFriendsInfoInfo.blackInfo:type_name -> openim.sdkws.BlackInfo 40, // 18: openim.relation.getSpecifiedFriendsInfoResp.infos:type_name -> openim.relation.getSpecifiedFriendsInfoInfo - 52, // 19: openim.relation.getIncrementalFriendsResp.insert:type_name -> openim.sdkws.FriendInfo - 52, // 20: openim.relation.getIncrementalFriendsResp.update:type_name -> openim.sdkws.FriendInfo - 44, // 21: openim.relation.getIncrementalBlacksResp.insert:type_name -> openim.relation.blackInfo - 44, // 22: openim.relation.getIncrementalBlacksResp.update:type_name -> openim.relation.blackInfo - 57, // 23: openim.relation.notificationUserInfoUpdateReq.oldUserInfo:type_name -> openim.sdkws.UserInfo - 57, // 24: openim.relation.notificationUserInfoUpdateReq.newUserInfo:type_name -> openim.sdkws.UserInfo - 2, // 25: openim.relation.friend.applyToAddFriend:input_type -> openim.relation.applyToAddFriendReq - 7, // 26: openim.relation.friend.getPaginationFriendsApplyTo:input_type -> openim.relation.getPaginationFriendsApplyToReq - 35, // 27: openim.relation.friend.getPaginationFriendsApplyFrom:input_type -> openim.relation.getPaginationFriendsApplyFromReq - 9, // 28: openim.relation.friend.getDesignatedFriendsApply:input_type -> openim.relation.getDesignatedFriendsApplyReq - 11, // 29: openim.relation.friend.getIncrementalFriendsApplyTo:input_type -> openim.relation.getIncrementalFriendsApplyToReq - 13, // 30: openim.relation.friend.getIncrementalFriendsApplyFrom:input_type -> openim.relation.getIncrementalFriendsApplyFromReq - 17, // 31: openim.relation.friend.addBlack:input_type -> openim.relation.addBlackReq - 19, // 32: openim.relation.friend.removeBlack:input_type -> openim.relation.removeBlackReq - 23, // 33: openim.relation.friend.isFriend:input_type -> openim.relation.isFriendReq - 25, // 34: openim.relation.friend.isBlack:input_type -> openim.relation.isBlackReq - 21, // 35: openim.relation.friend.getPaginationBlacks:input_type -> openim.relation.getPaginationBlacksReq - 27, // 36: openim.relation.friend.deleteFriend:input_type -> openim.relation.deleteFriendReq - 29, // 37: openim.relation.friend.respondFriendApply:input_type -> openim.relation.respondFriendApplyReq - 31, // 38: openim.relation.friend.updateFriends:input_type -> openim.relation.updateFriendsReq - 33, // 39: openim.relation.friend.setFriendRemark:input_type -> openim.relation.setFriendRemarkReq - 5, // 40: openim.relation.friend.importFriends:input_type -> openim.relation.importFriendReq - 15, // 41: openim.relation.friend.getDesignatedFriends:input_type -> openim.relation.getDesignatedFriendsReq - 0, // 42: openim.relation.friend.getPaginationFriends:input_type -> openim.relation.getPaginationFriendsReq - 37, // 43: openim.relation.friend.getFriendIDs:input_type -> openim.relation.getFriendIDsReq - 39, // 44: openim.relation.friend.GetSpecifiedFriendsInfo:input_type -> openim.relation.getSpecifiedFriendsInfoReq - 42, // 45: openim.relation.friend.getIncrementalFriends:input_type -> openim.relation.getIncrementalFriendsReq - 45, // 46: openim.relation.friend.getIncrementalBlacks:input_type -> openim.relation.getIncrementalBlacksReq - 47, // 47: openim.relation.friend.getFullFriendUserIDs:input_type -> openim.relation.getFullFriendUserIDsReq - 49, // 48: openim.relation.friend.NotificationUserInfoUpdate:input_type -> openim.relation.notificationUserInfoUpdateReq - 3, // 49: openim.relation.friend.applyToAddFriend:output_type -> openim.relation.applyToAddFriendResp - 8, // 50: openim.relation.friend.getPaginationFriendsApplyTo:output_type -> openim.relation.getPaginationFriendsApplyToResp - 36, // 51: openim.relation.friend.getPaginationFriendsApplyFrom:output_type -> openim.relation.getPaginationFriendsApplyFromResp - 10, // 52: openim.relation.friend.getDesignatedFriendsApply:output_type -> openim.relation.getDesignatedFriendsApplyResp - 12, // 53: openim.relation.friend.getIncrementalFriendsApplyTo:output_type -> openim.relation.getIncrementalFriendsApplyToResp - 14, // 54: openim.relation.friend.getIncrementalFriendsApplyFrom:output_type -> openim.relation.getIncrementalFriendsApplyFromResp - 18, // 55: openim.relation.friend.addBlack:output_type -> openim.relation.addBlackResp - 20, // 56: openim.relation.friend.removeBlack:output_type -> openim.relation.removeBlackResp - 24, // 57: openim.relation.friend.isFriend:output_type -> openim.relation.isFriendResp - 26, // 58: openim.relation.friend.isBlack:output_type -> openim.relation.isBlackResp - 22, // 59: openim.relation.friend.getPaginationBlacks:output_type -> openim.relation.getPaginationBlacksResp - 28, // 60: openim.relation.friend.deleteFriend:output_type -> openim.relation.deleteFriendResp - 30, // 61: openim.relation.friend.respondFriendApply:output_type -> openim.relation.respondFriendApplyResp - 32, // 62: openim.relation.friend.updateFriends:output_type -> openim.relation.updateFriendsResp - 34, // 63: openim.relation.friend.setFriendRemark:output_type -> openim.relation.setFriendRemarkResp - 6, // 64: openim.relation.friend.importFriends:output_type -> openim.relation.importFriendResp - 16, // 65: openim.relation.friend.getDesignatedFriends:output_type -> openim.relation.getDesignatedFriendsResp - 1, // 66: openim.relation.friend.getPaginationFriends:output_type -> openim.relation.getPaginationFriendsResp - 38, // 67: openim.relation.friend.getFriendIDs:output_type -> openim.relation.getFriendIDsResp - 41, // 68: openim.relation.friend.GetSpecifiedFriendsInfo:output_type -> openim.relation.getSpecifiedFriendsInfoResp - 43, // 69: openim.relation.friend.getIncrementalFriends:output_type -> openim.relation.getIncrementalFriendsResp - 46, // 70: openim.relation.friend.getIncrementalBlacks:output_type -> openim.relation.getIncrementalBlacksResp - 48, // 71: openim.relation.friend.getFullFriendUserIDs:output_type -> openim.relation.getFullFriendUserIDsResp - 50, // 72: openim.relation.friend.NotificationUserInfoUpdate:output_type -> openim.relation.notificationUserInfoUpdateResp - 49, // [49:73] is the sub-list for method output_type - 25, // [25:49] is the sub-list for method input_type - 25, // [25:25] is the sub-list for extension type_name - 25, // [25:25] is the sub-list for extension extendee - 0, // [0:25] is the sub-list for field type_name + 53, // 19: openim.relation.getIncrementalFriendsResp.insert:type_name -> openim.sdkws.FriendInfo + 53, // 20: openim.relation.getIncrementalFriendsResp.update:type_name -> openim.sdkws.FriendInfo + 55, // 21: openim.relation.getIncrementalBlacksResp.insert:type_name -> openim.sdkws.BlackInfo + 55, // 22: openim.relation.getIncrementalBlacksResp.update:type_name -> openim.sdkws.BlackInfo + 55, // 23: openim.relation.GetSpecifiedBlacksResp.blacks:type_name -> openim.sdkws.BlackInfo + 58, // 24: openim.relation.notificationUserInfoUpdateReq.oldUserInfo:type_name -> openim.sdkws.UserInfo + 58, // 25: openim.relation.notificationUserInfoUpdateReq.newUserInfo:type_name -> openim.sdkws.UserInfo + 2, // 26: openim.relation.friend.applyToAddFriend:input_type -> openim.relation.applyToAddFriendReq + 7, // 27: openim.relation.friend.getPaginationFriendsApplyTo:input_type -> openim.relation.getPaginationFriendsApplyToReq + 35, // 28: openim.relation.friend.getPaginationFriendsApplyFrom:input_type -> openim.relation.getPaginationFriendsApplyFromReq + 9, // 29: openim.relation.friend.getDesignatedFriendsApply:input_type -> openim.relation.getDesignatedFriendsApplyReq + 11, // 30: openim.relation.friend.getIncrementalFriendsApplyTo:input_type -> openim.relation.getIncrementalFriendsApplyToReq + 13, // 31: openim.relation.friend.getIncrementalFriendsApplyFrom:input_type -> openim.relation.getIncrementalFriendsApplyFromReq + 17, // 32: openim.relation.friend.addBlack:input_type -> openim.relation.addBlackReq + 19, // 33: openim.relation.friend.removeBlack:input_type -> openim.relation.removeBlackReq + 23, // 34: openim.relation.friend.isFriend:input_type -> openim.relation.isFriendReq + 25, // 35: openim.relation.friend.isBlack:input_type -> openim.relation.isBlackReq + 21, // 36: openim.relation.friend.getPaginationBlacks:input_type -> openim.relation.getPaginationBlacksReq + 46, // 37: openim.relation.friend.GetSpecifiedBlacks:input_type -> openim.relation.GetSpecifiedBlacksReq + 27, // 38: openim.relation.friend.deleteFriend:input_type -> openim.relation.deleteFriendReq + 29, // 39: openim.relation.friend.respondFriendApply:input_type -> openim.relation.respondFriendApplyReq + 31, // 40: openim.relation.friend.updateFriends:input_type -> openim.relation.updateFriendsReq + 33, // 41: openim.relation.friend.setFriendRemark:input_type -> openim.relation.setFriendRemarkReq + 5, // 42: openim.relation.friend.importFriends:input_type -> openim.relation.importFriendReq + 15, // 43: openim.relation.friend.getDesignatedFriends:input_type -> openim.relation.getDesignatedFriendsReq + 0, // 44: openim.relation.friend.getPaginationFriends:input_type -> openim.relation.getPaginationFriendsReq + 37, // 45: openim.relation.friend.getFriendIDs:input_type -> openim.relation.getFriendIDsReq + 39, // 46: openim.relation.friend.GetSpecifiedFriendsInfo:input_type -> openim.relation.getSpecifiedFriendsInfoReq + 42, // 47: openim.relation.friend.getIncrementalFriends:input_type -> openim.relation.getIncrementalFriendsReq + 44, // 48: openim.relation.friend.getIncrementalBlacks:input_type -> openim.relation.getIncrementalBlacksReq + 48, // 49: openim.relation.friend.getFullFriendUserIDs:input_type -> openim.relation.getFullFriendUserIDsReq + 50, // 50: openim.relation.friend.NotificationUserInfoUpdate:input_type -> openim.relation.notificationUserInfoUpdateReq + 3, // 51: openim.relation.friend.applyToAddFriend:output_type -> openim.relation.applyToAddFriendResp + 8, // 52: openim.relation.friend.getPaginationFriendsApplyTo:output_type -> openim.relation.getPaginationFriendsApplyToResp + 36, // 53: openim.relation.friend.getPaginationFriendsApplyFrom:output_type -> openim.relation.getPaginationFriendsApplyFromResp + 10, // 54: openim.relation.friend.getDesignatedFriendsApply:output_type -> openim.relation.getDesignatedFriendsApplyResp + 12, // 55: openim.relation.friend.getIncrementalFriendsApplyTo:output_type -> openim.relation.getIncrementalFriendsApplyToResp + 14, // 56: openim.relation.friend.getIncrementalFriendsApplyFrom:output_type -> openim.relation.getIncrementalFriendsApplyFromResp + 18, // 57: openim.relation.friend.addBlack:output_type -> openim.relation.addBlackResp + 20, // 58: openim.relation.friend.removeBlack:output_type -> openim.relation.removeBlackResp + 24, // 59: openim.relation.friend.isFriend:output_type -> openim.relation.isFriendResp + 26, // 60: openim.relation.friend.isBlack:output_type -> openim.relation.isBlackResp + 22, // 61: openim.relation.friend.getPaginationBlacks:output_type -> openim.relation.getPaginationBlacksResp + 47, // 62: openim.relation.friend.GetSpecifiedBlacks:output_type -> openim.relation.GetSpecifiedBlacksResp + 28, // 63: openim.relation.friend.deleteFriend:output_type -> openim.relation.deleteFriendResp + 30, // 64: openim.relation.friend.respondFriendApply:output_type -> openim.relation.respondFriendApplyResp + 32, // 65: openim.relation.friend.updateFriends:output_type -> openim.relation.updateFriendsResp + 34, // 66: openim.relation.friend.setFriendRemark:output_type -> openim.relation.setFriendRemarkResp + 6, // 67: openim.relation.friend.importFriends:output_type -> openim.relation.importFriendResp + 16, // 68: openim.relation.friend.getDesignatedFriends:output_type -> openim.relation.getDesignatedFriendsResp + 1, // 69: openim.relation.friend.getPaginationFriends:output_type -> openim.relation.getPaginationFriendsResp + 38, // 70: openim.relation.friend.getFriendIDs:output_type -> openim.relation.getFriendIDsResp + 41, // 71: openim.relation.friend.GetSpecifiedFriendsInfo:output_type -> openim.relation.getSpecifiedFriendsInfoResp + 43, // 72: openim.relation.friend.getIncrementalFriends:output_type -> openim.relation.getIncrementalFriendsResp + 45, // 73: openim.relation.friend.getIncrementalBlacks:output_type -> openim.relation.getIncrementalBlacksResp + 49, // 74: openim.relation.friend.getFullFriendUserIDs:output_type -> openim.relation.getFullFriendUserIDsResp + 51, // 75: openim.relation.friend.NotificationUserInfoUpdate:output_type -> openim.relation.notificationUserInfoUpdateResp + 51, // [51:76] is the sub-list for method output_type + 26, // [26:51] is the sub-list for method input_type + 26, // [26:26] is the sub-list for extension type_name + 26, // [26:26] is the sub-list for extension extendee + 0, // [0:26] is the sub-list for field type_name } func init() { file_relation_relation_proto_init() } @@ -4236,7 +4248,7 @@ func file_relation_relation_proto_init() { } } file_relation_relation_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlackInfo); i { + switch v := v.(*GetIncrementalBlacksReq); i { case 0: return &v.state case 1: @@ -4248,7 +4260,7 @@ func file_relation_relation_proto_init() { } } file_relation_relation_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetIncrementalBlacksReq); i { + switch v := v.(*GetIncrementalBlacksResp); i { case 0: return &v.state case 1: @@ -4260,7 +4272,7 @@ func file_relation_relation_proto_init() { } } file_relation_relation_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetIncrementalBlacksResp); i { + switch v := v.(*GetSpecifiedBlacksReq); i { case 0: return &v.state case 1: @@ -4272,7 +4284,7 @@ func file_relation_relation_proto_init() { } } file_relation_relation_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFullFriendUserIDsReq); i { + switch v := v.(*GetSpecifiedBlacksResp); i { case 0: return &v.state case 1: @@ -4284,7 +4296,7 @@ func file_relation_relation_proto_init() { } } file_relation_relation_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFullFriendUserIDsResp); i { + switch v := v.(*GetFullFriendUserIDsReq); i { case 0: return &v.state case 1: @@ -4296,7 +4308,7 @@ func file_relation_relation_proto_init() { } } file_relation_relation_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotificationUserInfoUpdateReq); i { + switch v := v.(*GetFullFriendUserIDsResp); i { case 0: return &v.state case 1: @@ -4308,6 +4320,18 @@ func file_relation_relation_proto_init() { } } file_relation_relation_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NotificationUserInfoUpdateReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_relation_relation_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotificationUserInfoUpdateResp); i { case 0: return &v.state @@ -4326,7 +4350,7 @@ func file_relation_relation_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_relation_relation_proto_rawDesc, NumEnums: 0, - NumMessages: 51, + NumMessages: 52, NumExtensions: 0, NumServices: 1, }, @@ -4374,6 +4398,8 @@ type FriendClient interface { IsBlack(ctx context.Context, in *IsBlackReq, opts ...grpc.CallOption) (*IsBlackResp, error) // Get blacklist GetPaginationBlacks(ctx context.Context, in *GetPaginationBlacksReq, opts ...grpc.CallOption) (*GetPaginationBlacksResp, error) + // Get specified blacklist + GetSpecifiedBlacks(ctx context.Context, in *GetSpecifiedBlacksReq, opts ...grpc.CallOption) (*GetSpecifiedBlacksResp, error) // Delete friend DeleteFriend(ctx context.Context, in *DeleteFriendReq, opts ...grpc.CallOption) (*DeleteFriendResp, error) // Respond to friend request (Accept or Decline) @@ -4507,6 +4533,15 @@ func (c *friendClient) GetPaginationBlacks(ctx context.Context, in *GetPaginatio return out, nil } +func (c *friendClient) GetSpecifiedBlacks(ctx context.Context, in *GetSpecifiedBlacksReq, opts ...grpc.CallOption) (*GetSpecifiedBlacksResp, error) { + out := new(GetSpecifiedBlacksResp) + err := c.cc.Invoke(ctx, "/openim.relation.friend/GetSpecifiedBlacks", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *friendClient) DeleteFriend(ctx context.Context, in *DeleteFriendReq, opts ...grpc.CallOption) (*DeleteFriendResp, error) { out := new(DeleteFriendResp) err := c.cc.Invoke(ctx, "/openim.relation.friend/deleteFriend", in, out, opts...) @@ -4648,6 +4683,8 @@ type FriendServer interface { IsBlack(context.Context, *IsBlackReq) (*IsBlackResp, error) // Get blacklist GetPaginationBlacks(context.Context, *GetPaginationBlacksReq) (*GetPaginationBlacksResp, error) + // Get specified blacklist + GetSpecifiedBlacks(context.Context, *GetSpecifiedBlacksReq) (*GetSpecifiedBlacksResp, error) // Delete friend DeleteFriend(context.Context, *DeleteFriendReq) (*DeleteFriendResp, error) // Respond to friend request (Accept or Decline) @@ -4711,6 +4748,9 @@ func (*UnimplementedFriendServer) IsBlack(context.Context, *IsBlackReq) (*IsBlac func (*UnimplementedFriendServer) GetPaginationBlacks(context.Context, *GetPaginationBlacksReq) (*GetPaginationBlacksResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetPaginationBlacks not implemented") } +func (*UnimplementedFriendServer) GetSpecifiedBlacks(context.Context, *GetSpecifiedBlacksReq) (*GetSpecifiedBlacksResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSpecifiedBlacks not implemented") +} func (*UnimplementedFriendServer) DeleteFriend(context.Context, *DeleteFriendReq) (*DeleteFriendResp, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteFriend not implemented") } @@ -4953,6 +4993,24 @@ func _Friend_GetPaginationBlacks_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } +func _Friend_GetSpecifiedBlacks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSpecifiedBlacksReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FriendServer).GetSpecifiedBlacks(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openim.relation.friend/GetSpecifiedBlacks", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FriendServer).GetSpecifiedBlacks(ctx, req.(*GetSpecifiedBlacksReq)) + } + return interceptor(ctx, in, info, handler) +} + func _Friend_DeleteFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeleteFriendReq) if err := dec(in); err != nil { @@ -5235,6 +5293,10 @@ var _Friend_serviceDesc = grpc.ServiceDesc{ MethodName: "getPaginationBlacks", Handler: _Friend_GetPaginationBlacks_Handler, }, + { + MethodName: "GetSpecifiedBlacks", + Handler: _Friend_GetSpecifiedBlacks_Handler, + }, { MethodName: "deleteFriend", Handler: _Friend_DeleteFriend_Handler, diff --git a/relation/relation.proto b/relation/relation.proto index 454d2e5c..041d0081 100644 --- a/relation/relation.proto +++ b/relation/relation.proto @@ -229,17 +229,6 @@ message getIncrementalFriendsResp { uint64 sortVersion = 7; } -message blackInfo { - string ownerUserID = 1; - string blackUserID = 2; - string blackNickname = 3; - string blackFaceURL = 4; - int64 createTime = 5; - int32 addSource = 6; - string operatorUserID = 7; - string ex = 8; -} - message getIncrementalBlacksReq { string userID = 1; string versionID = 2; @@ -250,8 +239,18 @@ message getIncrementalBlacksResp { string versionID = 2; bool full = 3; repeated string delete = 4; - repeated blackInfo insert = 5; - repeated blackInfo update = 6; + repeated openim.sdkws.BlackInfo insert = 5; + repeated openim.sdkws.BlackInfo update = 6; +} + +message GetSpecifiedBlacksReq { + string ownerUserID = 1; + repeated string userIDList = 2; +} + +message GetSpecifiedBlacksResp { + repeated openim.sdkws.BlackInfo blacks = 1; + int32 total = 2; } message getFullFriendUserIDsReq { @@ -272,8 +271,7 @@ message notificationUserInfoUpdateReq { openim.sdkws.UserInfo newUserInfo = 3; } -message notificationUserInfoUpdateResp { -} +message notificationUserInfoUpdateResp {} service friend { // Friend request @@ -285,9 +283,9 @@ service friend { // Get specified friend request rpc getDesignatedFriendsApply(getDesignatedFriendsApplyReq) returns (getDesignatedFriendsApplyResp); // Get Incremental friends apply to list - rpc getIncrementalFriendsApplyTo(getIncrementalFriendsApplyToReq) returns(getIncrementalFriendsApplyToResp); + rpc getIncrementalFriendsApplyTo(getIncrementalFriendsApplyToReq) returns (getIncrementalFriendsApplyToResp); // Get Incremental friends apply from list - rpc getIncrementalFriendsApplyFrom(getIncrementalFriendsApplyFromReq) returns(getIncrementalFriendsApplyFromResp); + rpc getIncrementalFriendsApplyFrom(getIncrementalFriendsApplyFromReq) returns (getIncrementalFriendsApplyFromResp); // Add black user rpc addBlack(addBlackReq) returns (addBlackResp); // Remove black user @@ -298,6 +296,8 @@ service friend { rpc isBlack(isBlackReq) returns (isBlackResp); // Get blacklist rpc getPaginationBlacks(getPaginationBlacksReq) returns (getPaginationBlacksResp); + // Get specified blacklist + rpc GetSpecifiedBlacks(GetSpecifiedBlacksReq) returns (GetSpecifiedBlacksResp); // Delete friend rpc deleteFriend(deleteFriendReq) returns (deleteFriendResp); // Respond to friend request (Accept or Decline) @@ -323,5 +323,5 @@ service friend { // Get full friend userIDs rpc getFullFriendUserIDs(getFullFriendUserIDsReq) returns (getFullFriendUserIDsResp); - rpc NotificationUserInfoUpdate(notificationUserInfoUpdateReq)returns(notificationUserInfoUpdateResp); + rpc NotificationUserInfoUpdate(notificationUserInfoUpdateReq) returns (notificationUserInfoUpdateResp); }