From aee8a427bc0dfa5fd4709f63edd56bf0b6ae1e5d Mon Sep 17 00:00:00 2001 From: daiyb <570956418@qq.com> Date: Thu, 18 Dec 2025 10:29:41 +0800 Subject: [PATCH 1/2] Update work.go --- pkg/logic/cast/work.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/logic/cast/work.go b/pkg/logic/cast/work.go index f030767..20431c7 100644 --- a/pkg/logic/cast/work.go +++ b/pkg/logic/cast/work.go @@ -24,7 +24,7 @@ func (w *Work) ExportExcelWorkList(data []*cast.WorkListResp_Info) (*excelize.Fi // 表头 headers := []interface{}{ - "艺人", "艺人手机号", "作品标题", "作品类型", "类型", "发布平台", "提交时间", "作品状态", "发布账号", "管理人", + "艺人", "手机号", "作品标题", "作品类型", "类型", "发布平台", "提交时间", "作品状态", "发布账号", "管理人", } if err := sw.SetRow("A1", headers); err != nil { return nil, err From 73464a6b6dac02520b723a109a22ade6f5964b25 Mon Sep 17 00:00:00 2001 From: daiyb <570956418@qq.com> Date: Thu, 18 Dec 2025 15:59:52 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=92=E5=8A=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/aryshare/ayrshare.pb.go | 11067 +++++++++++++++++++++++- api/aryshare/ayrshare.validator.pb.go | 722 +- api/aryshare/ayrshare_triple.pb.go | 742 +- api/cast/cast.pb.go | 1819 ++-- api/cast/cast.pb.validate.go | 374 + api/cast/cast_triple.pb.go | 45 + pkg/model/cast/ayrshare.go | 27 + pkg/router/media.go | 9 + pkg/service/cast/ayrshare.go | 212 + 9 files changed, 13776 insertions(+), 1241 deletions(-) diff --git a/api/aryshare/ayrshare.pb.go b/api/aryshare/ayrshare.pb.go index fd015ab..ec0d771 100644 --- a/api/aryshare/ayrshare.pb.go +++ b/api/aryshare/ayrshare.pb.go @@ -2433,6 +2433,7749 @@ func (x *GenerateJWTResponse) GetExpiresIn() string { return "" } +// 历史记录中的帖子 ID +type HistoryPostId struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` + Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform"` + PostUrl string `protobuf:"bytes,4,opt,name=postUrl,proto3" json:"postUrl"` + IsVideo bool `protobuf:"varint,5,opt,name=isVideo,proto3" json:"isVideo"` +} + +func (x *HistoryPostId) Reset() { + *x = HistoryPostId{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HistoryPostId) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistoryPostId) ProtoMessage() {} + +func (x *HistoryPostId) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HistoryPostId.ProtoReflect.Descriptor instead. +func (*HistoryPostId) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{23} +} + +func (x *HistoryPostId) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *HistoryPostId) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *HistoryPostId) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *HistoryPostId) GetPostUrl() string { + if x != nil { + return x.PostUrl + } + return "" +} + +func (x *HistoryPostId) GetIsVideo() bool { + if x != nil { + return x.IsVideo + } + return false +} + +// 历史记录项 +type HistoryItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Post string `protobuf:"bytes,2,opt,name=post,proto3" json:"post"` + Platforms []string `protobuf:"bytes,3,rep,name=platforms,proto3" json:"platforms"` + PostIds []*HistoryPostId `protobuf:"bytes,4,rep,name=postIds,proto3" json:"postIds"` + Errors []string `protobuf:"bytes,5,rep,name=errors,proto3" json:"errors"` + Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type"` + Notes string `protobuf:"bytes,7,opt,name=notes,proto3" json:"notes"` + Created string `protobuf:"bytes,8,opt,name=created,proto3" json:"created"` + Status string `protobuf:"bytes,9,opt,name=status,proto3" json:"status"` + ScheduleDate *Timestamp `protobuf:"bytes,10,opt,name=scheduleDate,proto3" json:"scheduleDate"` + Approved bool `protobuf:"varint,11,opt,name=approved,proto3" json:"approved"` + ApprovedBy string `protobuf:"bytes,12,opt,name=approvedBy,proto3" json:"approvedBy"` + ApprovedDate string `protobuf:"bytes,13,opt,name=approvedDate,proto3" json:"approvedDate"` + RejectedBy string `protobuf:"bytes,14,opt,name=rejectedBy,proto3" json:"rejectedBy"` + RejectedDate string `protobuf:"bytes,15,opt,name=rejectedDate,proto3" json:"rejectedDate"` + RequiresApproval bool `protobuf:"varint,16,opt,name=requiresApproval,proto3" json:"requiresApproval"` + ProfileTitle string `protobuf:"bytes,17,opt,name=profileTitle,proto3" json:"profileTitle"` + RefId string `protobuf:"bytes,18,opt,name=refId,proto3" json:"refId"` + MediaUrls []string `protobuf:"bytes,19,rep,name=mediaUrls,proto3" json:"mediaUrls"` + ShortenLinks bool `protobuf:"varint,20,opt,name=shortenLinks,proto3" json:"shortenLinks"` +} + +func (x *HistoryItem) Reset() { + *x = HistoryItem{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HistoryItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistoryItem) ProtoMessage() {} + +func (x *HistoryItem) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HistoryItem.ProtoReflect.Descriptor instead. +func (*HistoryItem) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{24} +} + +func (x *HistoryItem) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *HistoryItem) GetPost() string { + if x != nil { + return x.Post + } + return "" +} + +func (x *HistoryItem) GetPlatforms() []string { + if x != nil { + return x.Platforms + } + return nil +} + +func (x *HistoryItem) GetPostIds() []*HistoryPostId { + if x != nil { + return x.PostIds + } + return nil +} + +func (x *HistoryItem) GetErrors() []string { + if x != nil { + return x.Errors + } + return nil +} + +func (x *HistoryItem) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *HistoryItem) GetNotes() string { + if x != nil { + return x.Notes + } + return "" +} + +func (x *HistoryItem) GetCreated() string { + if x != nil { + return x.Created + } + return "" +} + +func (x *HistoryItem) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *HistoryItem) GetScheduleDate() *Timestamp { + if x != nil { + return x.ScheduleDate + } + return nil +} + +func (x *HistoryItem) GetApproved() bool { + if x != nil { + return x.Approved + } + return false +} + +func (x *HistoryItem) GetApprovedBy() string { + if x != nil { + return x.ApprovedBy + } + return "" +} + +func (x *HistoryItem) GetApprovedDate() string { + if x != nil { + return x.ApprovedDate + } + return "" +} + +func (x *HistoryItem) GetRejectedBy() string { + if x != nil { + return x.RejectedBy + } + return "" +} + +func (x *HistoryItem) GetRejectedDate() string { + if x != nil { + return x.RejectedDate + } + return "" +} + +func (x *HistoryItem) GetRequiresApproval() bool { + if x != nil { + return x.RequiresApproval + } + return false +} + +func (x *HistoryItem) GetProfileTitle() string { + if x != nil { + return x.ProfileTitle + } + return "" +} + +func (x *HistoryItem) GetRefId() string { + if x != nil { + return x.RefId + } + return "" +} + +func (x *HistoryItem) GetMediaUrls() []string { + if x != nil { + return x.MediaUrls + } + return nil +} + +func (x *HistoryItem) GetShortenLinks() bool { + if x != nil { + return x.ShortenLinks + } + return false +} + +// 获取帖子历史记录请求 +type GetHistoryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StartDate string `protobuf:"bytes,1,opt,name=startDate,proto3" json:"startDate"` + EndDate string `protobuf:"bytes,2,opt,name=endDate,proto3" json:"endDate"` + Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit"` + Platforms []string `protobuf:"bytes,4,rep,name=platforms,proto3" json:"platforms"` + LastDays int32 `protobuf:"varint,5,opt,name=lastDays,proto3" json:"lastDays"` + Status string `protobuf:"bytes,6,opt,name=status,proto3" json:"status"` + Type string `protobuf:"bytes,7,opt,name=type,proto3" json:"type"` + AutoRepostId string `protobuf:"bytes,8,opt,name=autoRepostId,proto3" json:"autoRepostId"` + ProfileKey string `protobuf:"bytes,9,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *GetHistoryRequest) Reset() { + *x = GetHistoryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHistoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHistoryRequest) ProtoMessage() {} + +func (x *GetHistoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetHistoryRequest.ProtoReflect.Descriptor instead. +func (*GetHistoryRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{25} +} + +func (x *GetHistoryRequest) GetStartDate() string { + if x != nil { + return x.StartDate + } + return "" +} + +func (x *GetHistoryRequest) GetEndDate() string { + if x != nil { + return x.EndDate + } + return "" +} + +func (x *GetHistoryRequest) GetLimit() int32 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *GetHistoryRequest) GetPlatforms() []string { + if x != nil { + return x.Platforms + } + return nil +} + +func (x *GetHistoryRequest) GetLastDays() int32 { + if x != nil { + return x.LastDays + } + return 0 +} + +func (x *GetHistoryRequest) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *GetHistoryRequest) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *GetHistoryRequest) GetAutoRepostId() string { + if x != nil { + return x.AutoRepostId + } + return "" +} + +func (x *GetHistoryRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// 获取帖子历史记录响应 +type GetHistoryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + History []*HistoryItem `protobuf:"bytes,1,rep,name=history,proto3" json:"history"` + RefId string `protobuf:"bytes,2,opt,name=refId,proto3" json:"refId"` + Count int32 `protobuf:"varint,3,opt,name=count,proto3" json:"count"` + LastUpdated string `protobuf:"bytes,4,opt,name=lastUpdated,proto3" json:"lastUpdated"` + NextUpdate string `protobuf:"bytes,5,opt,name=nextUpdate,proto3" json:"nextUpdate"` +} + +func (x *GetHistoryResponse) Reset() { + *x = GetHistoryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHistoryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHistoryResponse) ProtoMessage() {} + +func (x *GetHistoryResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetHistoryResponse.ProtoReflect.Descriptor instead. +func (*GetHistoryResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{26} +} + +func (x *GetHistoryResponse) GetHistory() []*HistoryItem { + if x != nil { + return x.History + } + return nil +} + +func (x *GetHistoryResponse) GetRefId() string { + if x != nil { + return x.RefId + } + return "" +} + +func (x *GetHistoryResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *GetHistoryResponse) GetLastUpdated() string { + if x != nil { + return x.LastUpdated + } + return "" +} + +func (x *GetHistoryResponse) GetNextUpdate() string { + if x != nil { + return x.NextUpdate + } + return "" +} + +// 根据ID获取帖子历史记录请求 +type GetHistoryByIdRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + SearchAllPosts bool `protobuf:"varint,2,opt,name=searchAllPosts,proto3" json:"searchAllPosts"` + ProfileKey string `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *GetHistoryByIdRequest) Reset() { + *x = GetHistoryByIdRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHistoryByIdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHistoryByIdRequest) ProtoMessage() {} + +func (x *GetHistoryByIdRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetHistoryByIdRequest.ProtoReflect.Descriptor instead. +func (*GetHistoryByIdRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{27} +} + +func (x *GetHistoryByIdRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *GetHistoryByIdRequest) GetSearchAllPosts() bool { + if x != nil { + return x.SearchAllPosts + } + return false +} + +func (x *GetHistoryByIdRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// 根据ID获取帖子历史记录响应 +type GetHistoryByIdResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tier string `protobuf:"bytes,1,opt,name=tier,proto3" json:"tier"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"` + MediaUrls []string `protobuf:"bytes,3,rep,name=mediaUrls,proto3" json:"mediaUrls"` + PostIds []*HistoryPostId `protobuf:"bytes,4,rep,name=postIds,proto3" json:"postIds"` + Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id"` + Errors []string `protobuf:"bytes,6,rep,name=errors,proto3" json:"errors"` + Platforms []string `protobuf:"bytes,7,rep,name=platforms,proto3" json:"platforms"` + ScheduleDate *Timestamp `protobuf:"bytes,8,opt,name=scheduleDate,proto3" json:"scheduleDate"` + Created string `protobuf:"bytes,9,opt,name=created,proto3" json:"created"` + ShortenLinks bool `protobuf:"varint,10,opt,name=shortenLinks,proto3" json:"shortenLinks"` + Post string `protobuf:"bytes,11,opt,name=post,proto3" json:"post"` + Notes string `protobuf:"bytes,12,opt,name=notes,proto3" json:"notes"` + Type string `protobuf:"bytes,13,opt,name=type,proto3" json:"type"` +} + +func (x *GetHistoryByIdResponse) Reset() { + *x = GetHistoryByIdResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHistoryByIdResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHistoryByIdResponse) ProtoMessage() {} + +func (x *GetHistoryByIdResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetHistoryByIdResponse.ProtoReflect.Descriptor instead. +func (*GetHistoryByIdResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{28} +} + +func (x *GetHistoryByIdResponse) GetTier() string { + if x != nil { + return x.Tier + } + return "" +} + +func (x *GetHistoryByIdResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *GetHistoryByIdResponse) GetMediaUrls() []string { + if x != nil { + return x.MediaUrls + } + return nil +} + +func (x *GetHistoryByIdResponse) GetPostIds() []*HistoryPostId { + if x != nil { + return x.PostIds + } + return nil +} + +func (x *GetHistoryByIdResponse) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *GetHistoryByIdResponse) GetErrors() []string { + if x != nil { + return x.Errors + } + return nil +} + +func (x *GetHistoryByIdResponse) GetPlatforms() []string { + if x != nil { + return x.Platforms + } + return nil +} + +func (x *GetHistoryByIdResponse) GetScheduleDate() *Timestamp { + if x != nil { + return x.ScheduleDate + } + return nil +} + +func (x *GetHistoryByIdResponse) GetCreated() string { + if x != nil { + return x.Created + } + return "" +} + +func (x *GetHistoryByIdResponse) GetShortenLinks() bool { + if x != nil { + return x.ShortenLinks + } + return false +} + +func (x *GetHistoryByIdResponse) GetPost() string { + if x != nil { + return x.Post + } + return "" +} + +func (x *GetHistoryByIdResponse) GetNotes() string { + if x != nil { + return x.Notes + } + return "" +} + +func (x *GetHistoryByIdResponse) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +// 平台帖子 +type PlatformPost struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Post string `protobuf:"bytes,2,opt,name=post,proto3" json:"post"` + PostUrl string `protobuf:"bytes,3,opt,name=postUrl,proto3" json:"postUrl"` + Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + CreatedAt string `protobuf:"bytes,5,opt,name=createdAt,proto3" json:"createdAt"` +} + +func (x *PlatformPost) Reset() { + *x = PlatformPost{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlatformPost) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlatformPost) ProtoMessage() {} + +func (x *PlatformPost) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlatformPost.ProtoReflect.Descriptor instead. +func (*PlatformPost) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{29} +} + +func (x *PlatformPost) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *PlatformPost) GetPost() string { + if x != nil { + return x.Post + } + return "" +} + +func (x *PlatformPost) GetPostUrl() string { + if x != nil { + return x.PostUrl + } + return "" +} + +func (x *PlatformPost) GetCreated() string { + if x != nil { + return x.Created + } + return "" +} + +func (x *PlatformPost) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +// 根据平台获取帖子历史记录请求 +type GetHistoryByPlatformRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *GetHistoryByPlatformRequest) Reset() { + *x = GetHistoryByPlatformRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHistoryByPlatformRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHistoryByPlatformRequest) ProtoMessage() {} + +func (x *GetHistoryByPlatformRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetHistoryByPlatformRequest.ProtoReflect.Descriptor instead. +func (*GetHistoryByPlatformRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{30} +} + +func (x *GetHistoryByPlatformRequest) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *GetHistoryByPlatformRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// 根据平台获取帖子历史记录响应 +type GetHistoryByPlatformResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Posts []*PlatformPost `protobuf:"bytes,2,rep,name=posts,proto3" json:"posts"` + LastUpdated string `protobuf:"bytes,3,opt,name=lastUpdated,proto3" json:"lastUpdated"` + NextUpdate string `protobuf:"bytes,4,opt,name=nextUpdate,proto3" json:"nextUpdate"` +} + +func (x *GetHistoryByPlatformResponse) Reset() { + *x = GetHistoryByPlatformResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHistoryByPlatformResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHistoryByPlatformResponse) ProtoMessage() {} + +func (x *GetHistoryByPlatformResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetHistoryByPlatformResponse.ProtoReflect.Descriptor instead. +func (*GetHistoryByPlatformResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{31} +} + +func (x *GetHistoryByPlatformResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *GetHistoryByPlatformResponse) GetPosts() []*PlatformPost { + if x != nil { + return x.Posts + } + return nil +} + +func (x *GetHistoryByPlatformResponse) GetLastUpdated() string { + if x != nil { + return x.LastUpdated + } + return "" +} + +func (x *GetHistoryByPlatformResponse) GetNextUpdate() string { + if x != nil { + return x.NextUpdate + } + return "" +} + +// 发送消息请求 +type SendMessageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform"` + RecipientId string `protobuf:"bytes,2,opt,name=recipientId,proto3" json:"recipientId"` + Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message"` + MediaUrls []string `protobuf:"bytes,4,rep,name=mediaUrls,proto3" json:"mediaUrls"` + ProfileKey string `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *SendMessageRequest) Reset() { + *x = SendMessageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendMessageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendMessageRequest) ProtoMessage() {} + +func (x *SendMessageRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendMessageRequest.ProtoReflect.Descriptor instead. +func (*SendMessageRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{32} +} + +func (x *SendMessageRequest) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *SendMessageRequest) GetRecipientId() string { + if x != nil { + return x.RecipientId + } + return "" +} + +func (x *SendMessageRequest) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *SendMessageRequest) GetMediaUrls() []string { + if x != nil { + return x.MediaUrls + } + return nil +} + +func (x *SendMessageRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// 消息项(用于批量消息响应中的单个消息) +type MessageItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + RecipientId string `protobuf:"bytes,2,opt,name=recipientId,proto3" json:"recipientId"` + MessageId string `protobuf:"bytes,3,opt,name=messageId,proto3" json:"messageId"` + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message"` + Type string `protobuf:"bytes,5,opt,name=type,proto3" json:"type"` + MediaUrl string `protobuf:"bytes,6,opt,name=mediaUrl,proto3" json:"mediaUrl"` + Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code"` +} + +func (x *MessageItem) Reset() { + *x = MessageItem{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageItem) ProtoMessage() {} + +func (x *MessageItem) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageItem.ProtoReflect.Descriptor instead. +func (*MessageItem) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{33} +} + +func (x *MessageItem) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *MessageItem) GetRecipientId() string { + if x != nil { + return x.RecipientId + } + return "" +} + +func (x *MessageItem) GetMessageId() string { + if x != nil { + return x.MessageId + } + return "" +} + +func (x *MessageItem) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *MessageItem) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *MessageItem) GetMediaUrl() string { + if x != nil { + return x.MediaUrl + } + return "" +} + +func (x *MessageItem) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *MessageItem) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +// 发送消息响应 +type SendMessageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + RecipientId string `protobuf:"bytes,2,opt,name=recipientId,proto3" json:"recipientId"` + MessageId string `protobuf:"bytes,3,opt,name=messageId,proto3" json:"messageId"` + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message"` // 成功消息的内容或错误消息的内容(根据 status 判断) + Type string `protobuf:"bytes,5,opt,name=type,proto3" json:"type"` + MediaUrl string `protobuf:"bytes,6,opt,name=mediaUrl,proto3" json:"mediaUrl"` + Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code"` + Messages []*MessageItem `protobuf:"bytes,9,rep,name=messages,proto3" json:"messages"` +} + +func (x *SendMessageResponse) Reset() { + *x = SendMessageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendMessageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendMessageResponse) ProtoMessage() {} + +func (x *SendMessageResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendMessageResponse.ProtoReflect.Descriptor instead. +func (*SendMessageResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{34} +} + +func (x *SendMessageResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *SendMessageResponse) GetRecipientId() string { + if x != nil { + return x.RecipientId + } + return "" +} + +func (x *SendMessageResponse) GetMessageId() string { + if x != nil { + return x.MessageId + } + return "" +} + +func (x *SendMessageResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *SendMessageResponse) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *SendMessageResponse) GetMediaUrl() string { + if x != nil { + return x.MediaUrl + } + return "" +} + +func (x *SendMessageResponse) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *SendMessageResponse) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *SendMessageResponse) GetMessages() []*MessageItem { + if x != nil { + return x.Messages + } + return nil +} + +// 获取消息请求 +type GetMessagesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"` + ConversationId string `protobuf:"bytes,3,opt,name=conversationId,proto3" json:"conversationId"` + ConversationsOnly bool `protobuf:"varint,4,opt,name=conversationsOnly,proto3" json:"conversationsOnly"` + ProfileKey string `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *GetMessagesRequest) Reset() { + *x = GetMessagesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMessagesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMessagesRequest) ProtoMessage() {} + +func (x *GetMessagesRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMessagesRequest.ProtoReflect.Descriptor instead. +func (*GetMessagesRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{35} +} + +func (x *GetMessagesRequest) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *GetMessagesRequest) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *GetMessagesRequest) GetConversationId() string { + if x != nil { + return x.ConversationId + } + return "" +} + +func (x *GetMessagesRequest) GetConversationsOnly() bool { + if x != nil { + return x.ConversationsOnly + } + return false +} + +func (x *GetMessagesRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// 消息附件 +type MessageAttachment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url"` +} + +func (x *MessageAttachment) Reset() { + *x = MessageAttachment{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageAttachment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageAttachment) ProtoMessage() {} + +func (x *MessageAttachment) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageAttachment.ProtoReflect.Descriptor instead. +func (*MessageAttachment) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{36} +} + +func (x *MessageAttachment) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *MessageAttachment) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +// 消息发送者详情 +type MessageSenderDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` + Picture string `protobuf:"bytes,3,opt,name=picture,proto3" json:"picture"` + ProfileImage string `protobuf:"bytes,4,opt,name=profileImage,proto3" json:"profileImage"` +} + +func (x *MessageSenderDetails) Reset() { + *x = MessageSenderDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageSenderDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageSenderDetails) ProtoMessage() {} + +func (x *MessageSenderDetails) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageSenderDetails.ProtoReflect.Descriptor instead. +func (*MessageSenderDetails) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{37} +} + +func (x *MessageSenderDetails) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *MessageSenderDetails) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *MessageSenderDetails) GetPicture() string { + if x != nil { + return x.Picture + } + return "" +} + +func (x *MessageSenderDetails) GetProfileImage() string { + if x != nil { + return x.ProfileImage + } + return "" +} + +// 消息接收者详情 +type MessageRecipientDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` + Picture string `protobuf:"bytes,3,opt,name=picture,proto3" json:"picture"` +} + +func (x *MessageRecipientDetails) Reset() { + *x = MessageRecipientDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageRecipientDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageRecipientDetails) ProtoMessage() {} + +func (x *MessageRecipientDetails) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageRecipientDetails.ProtoReflect.Descriptor instead. +func (*MessageRecipientDetails) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{38} +} + +func (x *MessageRecipientDetails) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *MessageRecipientDetails) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *MessageRecipientDetails) GetPicture() string { + if x != nil { + return x.Picture + } + return "" +} + +// 消息反应(map类型,在proto中用repeated MessageReaction表示) +type MessageReaction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId"` + Emoji string `protobuf:"bytes,2,opt,name=emoji,proto3" json:"emoji"` +} + +func (x *MessageReaction) Reset() { + *x = MessageReaction{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageReaction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageReaction) ProtoMessage() {} + +func (x *MessageReaction) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageReaction.ProtoReflect.Descriptor instead. +func (*MessageReaction) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{39} +} + +func (x *MessageReaction) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *MessageReaction) GetEmoji() string { + if x != nil { + return x.Emoji + } + return "" +} + +// 获取消息响应中的单个消息项 +type GetMessagesItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + SenderId string `protobuf:"bytes,2,opt,name=senderId,proto3" json:"senderId"` + SenderDetails *MessageSenderDetails `protobuf:"bytes,3,opt,name=senderDetails,proto3" json:"senderDetails"` + RecipientId string `protobuf:"bytes,4,opt,name=recipientId,proto3" json:"recipientId"` + RecipientDetails *MessageRecipientDetails `protobuf:"bytes,5,opt,name=recipientDetails,proto3" json:"recipientDetails"` + ConversationId string `protobuf:"bytes,6,opt,name=conversationId,proto3" json:"conversationId"` + Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message"` + Platform string `protobuf:"bytes,8,opt,name=platform,proto3" json:"platform"` + Action string `protobuf:"bytes,9,opt,name=action,proto3" json:"action"` + Created string `protobuf:"bytes,10,opt,name=created,proto3" json:"created"` + Updated string `protobuf:"bytes,11,opt,name=updated,proto3" json:"updated"` + Attachments []*MessageAttachment `protobuf:"bytes,12,rep,name=attachments,proto3" json:"attachments"` + Reactions []*MessageReaction `protobuf:"bytes,13,rep,name=reactions,proto3" json:"reactions"` +} + +func (x *GetMessagesItem) Reset() { + *x = GetMessagesItem{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMessagesItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMessagesItem) ProtoMessage() {} + +func (x *GetMessagesItem) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMessagesItem.ProtoReflect.Descriptor instead. +func (*GetMessagesItem) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{40} +} + +func (x *GetMessagesItem) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *GetMessagesItem) GetSenderId() string { + if x != nil { + return x.SenderId + } + return "" +} + +func (x *GetMessagesItem) GetSenderDetails() *MessageSenderDetails { + if x != nil { + return x.SenderDetails + } + return nil +} + +func (x *GetMessagesItem) GetRecipientId() string { + if x != nil { + return x.RecipientId + } + return "" +} + +func (x *GetMessagesItem) GetRecipientDetails() *MessageRecipientDetails { + if x != nil { + return x.RecipientDetails + } + return nil +} + +func (x *GetMessagesItem) GetConversationId() string { + if x != nil { + return x.ConversationId + } + return "" +} + +func (x *GetMessagesItem) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *GetMessagesItem) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *GetMessagesItem) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *GetMessagesItem) GetCreated() string { + if x != nil { + return x.Created + } + return "" +} + +func (x *GetMessagesItem) GetUpdated() string { + if x != nil { + return x.Updated + } + return "" +} + +func (x *GetMessagesItem) GetAttachments() []*MessageAttachment { + if x != nil { + return x.Attachments + } + return nil +} + +func (x *GetMessagesItem) GetReactions() []*MessageReaction { + if x != nil { + return x.Reactions + } + return nil +} + +// 对话参与者 +type ConversationParticipant struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` + Picture string `protobuf:"bytes,3,opt,name=picture,proto3" json:"picture"` +} + +func (x *ConversationParticipant) Reset() { + *x = ConversationParticipant{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConversationParticipant) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConversationParticipant) ProtoMessage() {} + +func (x *ConversationParticipant) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConversationParticipant.ProtoReflect.Descriptor instead. +func (*ConversationParticipant) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{41} +} + +func (x *ConversationParticipant) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ConversationParticipant) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ConversationParticipant) GetPicture() string { + if x != nil { + return x.Picture + } + return "" +} + +// 对话详情 +type ConversationDetail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Participant *ConversationParticipant `protobuf:"bytes,2,opt,name=participant,proto3" json:"participant"` + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status"` + Watermark int64 `protobuf:"varint,4,opt,name=watermark,proto3" json:"watermark"` +} + +func (x *ConversationDetail) Reset() { + *x = ConversationDetail{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConversationDetail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConversationDetail) ProtoMessage() {} + +func (x *ConversationDetail) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConversationDetail.ProtoReflect.Descriptor instead. +func (*ConversationDetail) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{42} +} + +func (x *ConversationDetail) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ConversationDetail) GetParticipant() *ConversationParticipant { + if x != nil { + return x.Participant + } + return nil +} + +func (x *ConversationDetail) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *ConversationDetail) GetWatermark() int64 { + if x != nil { + return x.Watermark + } + return 0 +} + +// 获取消息响应 +type GetMessagesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Messages []*GetMessagesItem `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages"` + LastUpdated string `protobuf:"bytes,3,opt,name=lastUpdated,proto3" json:"lastUpdated"` + NextUpdate string `protobuf:"bytes,4,opt,name=nextUpdate,proto3" json:"nextUpdate"` + ConversationIds []string `protobuf:"bytes,5,rep,name=conversationIds,proto3" json:"conversationIds"` + ConversationsDetails []*ConversationDetail `protobuf:"bytes,6,rep,name=conversationsDetails,proto3" json:"conversationsDetails"` + Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code"` + ErrMsg string `protobuf:"bytes,9,opt,name=errMsg,json=message,proto3" json:"errMsg"` // 错误消息(JSON 字段名为 "message",但 proto 字段名为 errMsg 以区分) +} + +func (x *GetMessagesResponse) Reset() { + *x = GetMessagesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMessagesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMessagesResponse) ProtoMessage() {} + +func (x *GetMessagesResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMessagesResponse.ProtoReflect.Descriptor instead. +func (*GetMessagesResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{43} +} + +func (x *GetMessagesResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *GetMessagesResponse) GetMessages() []*GetMessagesItem { + if x != nil { + return x.Messages + } + return nil +} + +func (x *GetMessagesResponse) GetLastUpdated() string { + if x != nil { + return x.LastUpdated + } + return "" +} + +func (x *GetMessagesResponse) GetNextUpdate() string { + if x != nil { + return x.NextUpdate + } + return "" +} + +func (x *GetMessagesResponse) GetConversationIds() []string { + if x != nil { + return x.ConversationIds + } + return nil +} + +func (x *GetMessagesResponse) GetConversationsDetails() []*ConversationDetail { + if x != nil { + return x.ConversationsDetails + } + return nil +} + +func (x *GetMessagesResponse) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *GetMessagesResponse) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *GetMessagesResponse) GetErrMsg() string { + if x != nil { + return x.ErrMsg + } + return "" +} + +// 发布评论请求 +type PostCommentRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment"` + Platforms []string `protobuf:"bytes,3,rep,name=platforms,proto3" json:"platforms"` + SearchPlatformId bool `protobuf:"varint,4,opt,name=searchPlatformId,proto3" json:"searchPlatformId"` + MediaUrls []string `protobuf:"bytes,5,rep,name=mediaUrls,proto3" json:"mediaUrls"` + ProfileKey string `protobuf:"bytes,6,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *PostCommentRequest) Reset() { + *x = PostCommentRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostCommentRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostCommentRequest) ProtoMessage() {} + +func (x *PostCommentRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostCommentRequest.ProtoReflect.Descriptor instead. +func (*PostCommentRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{44} +} + +func (x *PostCommentRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *PostCommentRequest) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *PostCommentRequest) GetPlatforms() []string { + if x != nil { + return x.Platforms + } + return nil +} + +func (x *PostCommentRequest) GetSearchPlatformId() bool { + if x != nil { + return x.SearchPlatformId + } + return false +} + +func (x *PostCommentRequest) GetMediaUrls() []string { + if x != nil { + return x.MediaUrls + } + return nil +} + +func (x *PostCommentRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// Instagram 平台评论响应 +type InstagramCommentResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"` +} + +func (x *InstagramCommentResponse) Reset() { + *x = InstagramCommentResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InstagramCommentResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InstagramCommentResponse) ProtoMessage() {} + +func (x *InstagramCommentResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InstagramCommentResponse.ProtoReflect.Descriptor instead. +func (*InstagramCommentResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{45} +} + +func (x *InstagramCommentResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *InstagramCommentResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *InstagramCommentResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *InstagramCommentResponse) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +// TikTok 平台评论响应 +type TikTokCommentResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"` + VideoId string `protobuf:"bytes,5,opt,name=videoId,proto3" json:"videoId"` +} + +func (x *TikTokCommentResponse) Reset() { + *x = TikTokCommentResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TikTokCommentResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TikTokCommentResponse) ProtoMessage() {} + +func (x *TikTokCommentResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TikTokCommentResponse.ProtoReflect.Descriptor instead. +func (*TikTokCommentResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{46} +} + +func (x *TikTokCommentResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *TikTokCommentResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *TikTokCommentResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *TikTokCommentResponse) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *TikTokCommentResponse) GetVideoId() string { + if x != nil { + return x.VideoId + } + return "" +} + +// Bluesky 平台评论响应 +type BlueskyCommentResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Cid string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` + PostUrl string `protobuf:"bytes,6,opt,name=postUrl,proto3" json:"postUrl"` +} + +func (x *BlueskyCommentResponse) Reset() { + *x = BlueskyCommentResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlueskyCommentResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlueskyCommentResponse) ProtoMessage() {} + +func (x *BlueskyCommentResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BlueskyCommentResponse.ProtoReflect.Descriptor instead. +func (*BlueskyCommentResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{47} +} + +func (x *BlueskyCommentResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *BlueskyCommentResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *BlueskyCommentResponse) GetCid() string { + if x != nil { + return x.Cid + } + return "" +} + +func (x *BlueskyCommentResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *BlueskyCommentResponse) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *BlueskyCommentResponse) GetPostUrl() string { + if x != nil { + return x.PostUrl + } + return "" +} + +// Facebook 平台评论响应 +type FacebookCommentResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"` +} + +func (x *FacebookCommentResponse) Reset() { + *x = FacebookCommentResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FacebookCommentResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FacebookCommentResponse) ProtoMessage() {} + +func (x *FacebookCommentResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FacebookCommentResponse.ProtoReflect.Descriptor instead. +func (*FacebookCommentResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{48} +} + +func (x *FacebookCommentResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *FacebookCommentResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *FacebookCommentResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *FacebookCommentResponse) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +// LinkedIn 平台评论响应 +type LinkedInCommentResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"` + CommentUrn string `protobuf:"bytes,4,opt,name=commentUrn,proto3" json:"commentUrn"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` +} + +func (x *LinkedInCommentResponse) Reset() { + *x = LinkedInCommentResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LinkedInCommentResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LinkedInCommentResponse) ProtoMessage() {} + +func (x *LinkedInCommentResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LinkedInCommentResponse.ProtoReflect.Descriptor instead. +func (*LinkedInCommentResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{49} +} + +func (x *LinkedInCommentResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *LinkedInCommentResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *LinkedInCommentResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *LinkedInCommentResponse) GetCommentUrn() string { + if x != nil { + return x.CommentUrn + } + return "" +} + +func (x *LinkedInCommentResponse) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +// Twitter/X 平台评论响应 +type TwitterCommentResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"` + PostUrl string `protobuf:"bytes,4,opt,name=postUrl,proto3" json:"postUrl"` +} + +func (x *TwitterCommentResponse) Reset() { + *x = TwitterCommentResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TwitterCommentResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TwitterCommentResponse) ProtoMessage() {} + +func (x *TwitterCommentResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TwitterCommentResponse.ProtoReflect.Descriptor instead. +func (*TwitterCommentResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{50} +} + +func (x *TwitterCommentResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *TwitterCommentResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *TwitterCommentResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *TwitterCommentResponse) GetPostUrl() string { + if x != nil { + return x.PostUrl + } + return "" +} + +// YouTube 平台评论响应 +type YouTubeCommentResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"` +} + +func (x *YouTubeCommentResponse) Reset() { + *x = YouTubeCommentResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *YouTubeCommentResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*YouTubeCommentResponse) ProtoMessage() {} + +func (x *YouTubeCommentResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use YouTubeCommentResponse.ProtoReflect.Descriptor instead. +func (*YouTubeCommentResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{51} +} + +func (x *YouTubeCommentResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *YouTubeCommentResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *YouTubeCommentResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *YouTubeCommentResponse) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +// 平台错误信息 +type PlatformError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Action string `protobuf:"bytes,1,opt,name=action,proto3" json:"action"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"` + Code int32 `protobuf:"varint,3,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` +} + +func (x *PlatformError) Reset() { + *x = PlatformError{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlatformError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlatformError) ProtoMessage() {} + +func (x *PlatformError) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlatformError.ProtoReflect.Descriptor instead. +func (*PlatformError) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{52} +} + +func (x *PlatformError) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *PlatformError) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *PlatformError) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *PlatformError) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *PlatformError) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +// 发布评论响应 +type PostCommentResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentID string `protobuf:"bytes,2,opt,name=commentID,proto3" json:"commentID"` + CommentIdAlt string `protobuf:"bytes,3,opt,name=commentIdAlt,json=commentId,proto3" json:"commentIdAlt"` // 备用字段,用于错误响应 + Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"` + Instagram *InstagramCommentResponse `protobuf:"bytes,5,opt,name=instagram,proto3" json:"instagram"` + Tiktok *TikTokCommentResponse `protobuf:"bytes,6,opt,name=tiktok,proto3" json:"tiktok"` + Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,9,opt,name=message,proto3" json:"message"` + Platform string `protobuf:"bytes,10,opt,name=platform,proto3" json:"platform"` + Errors []*PlatformError `protobuf:"bytes,11,rep,name=errors,proto3" json:"errors"` + // 其它平台的发布评论结果 + Bluesky *BlueskyCommentResponse `protobuf:"bytes,12,opt,name=bluesky,proto3" json:"bluesky"` + Facebook *FacebookCommentResponse `protobuf:"bytes,13,opt,name=facebook,proto3" json:"facebook"` + Linkedin *LinkedInCommentResponse `protobuf:"bytes,14,opt,name=linkedin,proto3" json:"linkedin"` + Twitter *TwitterCommentResponse `protobuf:"bytes,15,opt,name=twitter,proto3" json:"twitter"` + Youtube *YouTubeCommentResponse `protobuf:"bytes,16,opt,name=youtube,proto3" json:"youtube"` +} + +func (x *PostCommentResponse) Reset() { + *x = PostCommentResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostCommentResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostCommentResponse) ProtoMessage() {} + +func (x *PostCommentResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostCommentResponse.ProtoReflect.Descriptor instead. +func (*PostCommentResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{53} +} + +func (x *PostCommentResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *PostCommentResponse) GetCommentID() string { + if x != nil { + return x.CommentID + } + return "" +} + +func (x *PostCommentResponse) GetCommentIdAlt() string { + if x != nil { + return x.CommentIdAlt + } + return "" +} + +func (x *PostCommentResponse) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *PostCommentResponse) GetInstagram() *InstagramCommentResponse { + if x != nil { + return x.Instagram + } + return nil +} + +func (x *PostCommentResponse) GetTiktok() *TikTokCommentResponse { + if x != nil { + return x.Tiktok + } + return nil +} + +func (x *PostCommentResponse) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *PostCommentResponse) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *PostCommentResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *PostCommentResponse) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *PostCommentResponse) GetErrors() []*PlatformError { + if x != nil { + return x.Errors + } + return nil +} + +func (x *PostCommentResponse) GetBluesky() *BlueskyCommentResponse { + if x != nil { + return x.Bluesky + } + return nil +} + +func (x *PostCommentResponse) GetFacebook() *FacebookCommentResponse { + if x != nil { + return x.Facebook + } + return nil +} + +func (x *PostCommentResponse) GetLinkedin() *LinkedInCommentResponse { + if x != nil { + return x.Linkedin + } + return nil +} + +func (x *PostCommentResponse) GetTwitter() *TwitterCommentResponse { + if x != nil { + return x.Twitter + } + return nil +} + +func (x *PostCommentResponse) GetYoutube() *YouTubeCommentResponse { + if x != nil { + return x.Youtube + } + return nil +} + +// 获取评论请求 +type GetCommentRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *GetCommentRequest) Reset() { + *x = GetCommentRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCommentRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCommentRequest) ProtoMessage() {} + +func (x *GetCommentRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCommentRequest.ProtoReflect.Descriptor instead. +func (*GetCommentRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{54} +} + +func (x *GetCommentRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *GetCommentRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// Instagram 用户信息 +type InstagramUser struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` + Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username"` +} + +func (x *InstagramUser) Reset() { + *x = InstagramUser{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InstagramUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InstagramUser) ProtoMessage() {} + +func (x *InstagramUser) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InstagramUser.ProtoReflect.Descriptor instead. +func (*InstagramUser) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{55} +} + +func (x *InstagramUser) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *InstagramUser) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *InstagramUser) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +// Instagram 用户ID信息 +type InstagramUserInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` +} + +func (x *InstagramUserInfo) Reset() { + *x = InstagramUserInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InstagramUserInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InstagramUserInfo) ProtoMessage() {} + +func (x *InstagramUserInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InstagramUserInfo.ProtoReflect.Descriptor instead. +func (*InstagramUserInfo) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{56} +} + +func (x *InstagramUserInfo) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +// Instagram 评论详情 +type InstagramComment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` + Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + From *InstagramUser `protobuf:"bytes,5,opt,name=from,proto3" json:"from"` + Hidden bool `protobuf:"varint,6,opt,name=hidden,proto3" json:"hidden"` + LikeCount int32 `protobuf:"varint,7,opt,name=likeCount,proto3" json:"likeCount"` + ParentId string `protobuf:"bytes,8,opt,name=parentId,proto3" json:"parentId"` + Platform string `protobuf:"bytes,9,opt,name=platform,proto3" json:"platform"` + PostId string `protobuf:"bytes,10,opt,name=postId,proto3" json:"postId"` + Replies []*InstagramComment `protobuf:"bytes,11,rep,name=replies,proto3" json:"replies"` + User *InstagramUserInfo `protobuf:"bytes,12,opt,name=user,proto3" json:"user"` + UserName string `protobuf:"bytes,13,opt,name=userName,proto3" json:"userName"` + UsernameAlt string `protobuf:"bytes,14,opt,name=usernameAlt,json=username,proto3" json:"usernameAlt"` // 备用字段,用于回复评论 +} + +func (x *InstagramComment) Reset() { + *x = InstagramComment{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InstagramComment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InstagramComment) ProtoMessage() {} + +func (x *InstagramComment) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InstagramComment.ProtoReflect.Descriptor instead. +func (*InstagramComment) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{57} +} + +func (x *InstagramComment) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *InstagramComment) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *InstagramComment) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *InstagramComment) GetCreated() string { + if x != nil { + return x.Created + } + return "" +} + +func (x *InstagramComment) GetFrom() *InstagramUser { + if x != nil { + return x.From + } + return nil +} + +func (x *InstagramComment) GetHidden() bool { + if x != nil { + return x.Hidden + } + return false +} + +func (x *InstagramComment) GetLikeCount() int32 { + if x != nil { + return x.LikeCount + } + return 0 +} + +func (x *InstagramComment) GetParentId() string { + if x != nil { + return x.ParentId + } + return "" +} + +func (x *InstagramComment) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *InstagramComment) GetPostId() string { + if x != nil { + return x.PostId + } + return "" +} + +func (x *InstagramComment) GetReplies() []*InstagramComment { + if x != nil { + return x.Replies + } + return nil +} + +func (x *InstagramComment) GetUser() *InstagramUserInfo { + if x != nil { + return x.User + } + return nil +} + +func (x *InstagramComment) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *InstagramComment) GetUsernameAlt() string { + if x != nil { + return x.UsernameAlt + } + return "" +} + +// TikTok 评论详情 +type TikTokComment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Created string `protobuf:"bytes,3,opt,name=created,proto3" json:"created"` + CreateTime string `protobuf:"bytes,4,opt,name=createTime,proto3" json:"createTime"` + DisplayName string `protobuf:"bytes,5,opt,name=displayName,proto3" json:"displayName"` + Liked bool `protobuf:"varint,6,opt,name=liked,proto3" json:"liked"` + Likes int32 `protobuf:"varint,7,opt,name=likes,proto3" json:"likes"` + LikeCount int32 `protobuf:"varint,8,opt,name=likeCount,proto3" json:"likeCount"` + Owner bool `protobuf:"varint,9,opt,name=owner,proto3" json:"owner"` + ParentCommentId string `protobuf:"bytes,10,opt,name=parentCommentId,proto3" json:"parentCommentId"` + Pinned bool `protobuf:"varint,11,opt,name=pinned,proto3" json:"pinned"` + Platform string `protobuf:"bytes,12,opt,name=platform,proto3" json:"platform"` + ProfileImageUrl string `protobuf:"bytes,13,opt,name=profileImageUrl,proto3" json:"profileImageUrl"` + Replies []*TikTokComment `protobuf:"bytes,14,rep,name=replies,proto3" json:"replies"` + Status string `protobuf:"bytes,15,opt,name=status,proto3" json:"status"` + UserId string `protobuf:"bytes,16,opt,name=userId,proto3" json:"userId"` + Username string `protobuf:"bytes,17,opt,name=username,proto3" json:"username"` + VideoId string `protobuf:"bytes,18,opt,name=videoId,proto3" json:"videoId"` + Visibility string `protobuf:"bytes,19,opt,name=visibility,proto3" json:"visibility"` +} + +func (x *TikTokComment) Reset() { + *x = TikTokComment{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TikTokComment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TikTokComment) ProtoMessage() {} + +func (x *TikTokComment) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TikTokComment.ProtoReflect.Descriptor instead. +func (*TikTokComment) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{58} +} + +func (x *TikTokComment) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *TikTokComment) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *TikTokComment) GetCreated() string { + if x != nil { + return x.Created + } + return "" +} + +func (x *TikTokComment) GetCreateTime() string { + if x != nil { + return x.CreateTime + } + return "" +} + +func (x *TikTokComment) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *TikTokComment) GetLiked() bool { + if x != nil { + return x.Liked + } + return false +} + +func (x *TikTokComment) GetLikes() int32 { + if x != nil { + return x.Likes + } + return 0 +} + +func (x *TikTokComment) GetLikeCount() int32 { + if x != nil { + return x.LikeCount + } + return 0 +} + +func (x *TikTokComment) GetOwner() bool { + if x != nil { + return x.Owner + } + return false +} + +func (x *TikTokComment) GetParentCommentId() string { + if x != nil { + return x.ParentCommentId + } + return "" +} + +func (x *TikTokComment) GetPinned() bool { + if x != nil { + return x.Pinned + } + return false +} + +func (x *TikTokComment) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *TikTokComment) GetProfileImageUrl() string { + if x != nil { + return x.ProfileImageUrl + } + return "" +} + +func (x *TikTokComment) GetReplies() []*TikTokComment { + if x != nil { + return x.Replies + } + return nil +} + +func (x *TikTokComment) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *TikTokComment) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *TikTokComment) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +func (x *TikTokComment) GetVideoId() string { + if x != nil { + return x.VideoId + } + return "" +} + +func (x *TikTokComment) GetVisibility() string { + if x != nil { + return x.Visibility + } + return "" +} + +// Bluesky 评论详情 +type BlueskyComment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Created string `protobuf:"bytes,3,opt,name=created,proto3" json:"created"` + DisplayName string `protobuf:"bytes,4,opt,name=displayName,proto3" json:"displayName"` + LikeCount int32 `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount"` + Platform string `protobuf:"bytes,6,opt,name=platform,proto3" json:"platform"` + ProfileImageUrl string `protobuf:"bytes,7,opt,name=profileImageUrl,proto3" json:"profileImageUrl"` + QuoteCount int32 `protobuf:"varint,8,opt,name=quoteCount,proto3" json:"quoteCount"` + Replies []*BlueskyComment `protobuf:"bytes,9,rep,name=replies,proto3" json:"replies"` + ReplyCount int32 `protobuf:"varint,10,opt,name=replyCount,proto3" json:"replyCount"` + ReplyTo string `protobuf:"bytes,11,opt,name=replyTo,proto3" json:"replyTo"` + RepostCount int32 `protobuf:"varint,12,opt,name=repostCount,proto3" json:"repostCount"` + UserName string `protobuf:"bytes,13,opt,name=userName,proto3" json:"userName"` +} + +func (x *BlueskyComment) Reset() { + *x = BlueskyComment{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlueskyComment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlueskyComment) ProtoMessage() {} + +func (x *BlueskyComment) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BlueskyComment.ProtoReflect.Descriptor instead. +func (*BlueskyComment) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{59} +} + +func (x *BlueskyComment) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *BlueskyComment) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *BlueskyComment) GetCreated() string { + if x != nil { + return x.Created + } + return "" +} + +func (x *BlueskyComment) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *BlueskyComment) GetLikeCount() int32 { + if x != nil { + return x.LikeCount + } + return 0 +} + +func (x *BlueskyComment) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *BlueskyComment) GetProfileImageUrl() string { + if x != nil { + return x.ProfileImageUrl + } + return "" +} + +func (x *BlueskyComment) GetQuoteCount() int32 { + if x != nil { + return x.QuoteCount + } + return 0 +} + +func (x *BlueskyComment) GetReplies() []*BlueskyComment { + if x != nil { + return x.Replies + } + return nil +} + +func (x *BlueskyComment) GetReplyCount() int32 { + if x != nil { + return x.ReplyCount + } + return 0 +} + +func (x *BlueskyComment) GetReplyTo() string { + if x != nil { + return x.ReplyTo + } + return "" +} + +func (x *BlueskyComment) GetRepostCount() int32 { + if x != nil { + return x.RepostCount + } + return 0 +} + +func (x *BlueskyComment) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +// Facebook 用户信息 +type FacebookUser struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` +} + +func (x *FacebookUser) Reset() { + *x = FacebookUser{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FacebookUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FacebookUser) ProtoMessage() {} + +func (x *FacebookUser) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FacebookUser.ProtoReflect.Descriptor instead. +func (*FacebookUser) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{60} +} + +func (x *FacebookUser) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FacebookUser) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +// Facebook 父级评论/帖子信息 +type FacebookParent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreatedTime string `protobuf:"bytes,1,opt,name=createdTime,proto3" json:"createdTime"` + From *FacebookUser `protobuf:"bytes,2,opt,name=from,proto3" json:"from"` + Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message"` + Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"` +} + +func (x *FacebookParent) Reset() { + *x = FacebookParent{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FacebookParent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FacebookParent) ProtoMessage() {} + +func (x *FacebookParent) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FacebookParent.ProtoReflect.Descriptor instead. +func (*FacebookParent) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{61} +} + +func (x *FacebookParent) GetCreatedTime() string { + if x != nil { + return x.CreatedTime + } + return "" +} + +func (x *FacebookParent) GetFrom() *FacebookUser { + if x != nil { + return x.From + } + return nil +} + +func (x *FacebookParent) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *FacebookParent) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +// Facebook 评论详情(用于主评论和回复) +type FacebookComment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + CommentCount int32 `protobuf:"varint,3,opt,name=commentCount,proto3" json:"commentCount"` + CommentUrl string `protobuf:"bytes,4,opt,name=commentUrl,proto3" json:"commentUrl"` + Company bool `protobuf:"varint,5,opt,name=company,proto3" json:"company"` + Created string `protobuf:"bytes,6,opt,name=created,proto3" json:"created"` + From *FacebookUser `protobuf:"bytes,7,opt,name=from,proto3" json:"from"` + LikeCount int32 `protobuf:"varint,8,opt,name=likeCount,proto3" json:"likeCount"` + Parent *FacebookParent `protobuf:"bytes,9,opt,name=parent,proto3" json:"parent"` + Platform string `protobuf:"bytes,10,opt,name=platform,proto3" json:"platform"` + UserLikes bool `protobuf:"varint,11,opt,name=userLikes,proto3" json:"userLikes"` + Replies []*FacebookComment `protobuf:"bytes,12,rep,name=replies,proto3" json:"replies"` +} + +func (x *FacebookComment) Reset() { + *x = FacebookComment{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FacebookComment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FacebookComment) ProtoMessage() {} + +func (x *FacebookComment) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FacebookComment.ProtoReflect.Descriptor instead. +func (*FacebookComment) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{62} +} + +func (x *FacebookComment) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *FacebookComment) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *FacebookComment) GetCommentCount() int32 { + if x != nil { + return x.CommentCount + } + return 0 +} + +func (x *FacebookComment) GetCommentUrl() string { + if x != nil { + return x.CommentUrl + } + return "" +} + +func (x *FacebookComment) GetCompany() bool { + if x != nil { + return x.Company + } + return false +} + +func (x *FacebookComment) GetCreated() string { + if x != nil { + return x.Created + } + return "" +} + +func (x *FacebookComment) GetFrom() *FacebookUser { + if x != nil { + return x.From + } + return nil +} + +func (x *FacebookComment) GetLikeCount() int32 { + if x != nil { + return x.LikeCount + } + return 0 +} + +func (x *FacebookComment) GetParent() *FacebookParent { + if x != nil { + return x.Parent + } + return nil +} + +func (x *FacebookComment) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *FacebookComment) GetUserLikes() bool { + if x != nil { + return x.UserLikes + } + return false +} + +func (x *FacebookComment) GetReplies() []*FacebookComment { + if x != nil { + return x.Replies + } + return nil +} + +// LinkedIn 评论中的媒体信息 +type LinkedInMedia struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url"` +} + +func (x *LinkedInMedia) Reset() { + *x = LinkedInMedia{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LinkedInMedia) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LinkedInMedia) ProtoMessage() {} + +func (x *LinkedInMedia) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LinkedInMedia.ProtoReflect.Descriptor instead. +func (*LinkedInMedia) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{63} +} + +func (x *LinkedInMedia) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *LinkedInMedia) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +// LinkedIn 评论发布者信息 +type LinkedInFrom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` + Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description"` +} + +func (x *LinkedInFrom) Reset() { + *x = LinkedInFrom{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LinkedInFrom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LinkedInFrom) ProtoMessage() {} + +func (x *LinkedInFrom) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LinkedInFrom.ProtoReflect.Descriptor instead. +func (*LinkedInFrom) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{64} +} + +func (x *LinkedInFrom) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *LinkedInFrom) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *LinkedInFrom) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *LinkedInFrom) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +// LinkedIn 评论详情 +type LinkedInComment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + CommentUrn string `protobuf:"bytes,3,opt,name=commentUrn,proto3" json:"commentUrn"` + Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + From *LinkedInFrom `protobuf:"bytes,5,opt,name=from,proto3" json:"from"` + LikeCount int32 `protobuf:"varint,6,opt,name=likeCount,proto3" json:"likeCount"` + Media []*LinkedInMedia `protobuf:"bytes,7,rep,name=media,proto3" json:"media"` + Platform string `protobuf:"bytes,8,opt,name=platform,proto3" json:"platform"` + ProfileImageUrl string `protobuf:"bytes,9,opt,name=profileImageUrl,proto3" json:"profileImageUrl"` + UserName string `protobuf:"bytes,10,opt,name=userName,proto3" json:"userName"` + Founded int32 `protobuf:"varint,11,opt,name=founded,proto3" json:"founded"` + OrganizationType string `protobuf:"bytes,12,opt,name=organizationType,proto3" json:"organizationType"` + Website string `protobuf:"bytes,13,opt,name=website,proto3" json:"website"` +} + +func (x *LinkedInComment) Reset() { + *x = LinkedInComment{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LinkedInComment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LinkedInComment) ProtoMessage() {} + +func (x *LinkedInComment) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LinkedInComment.ProtoReflect.Descriptor instead. +func (*LinkedInComment) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{65} +} + +func (x *LinkedInComment) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *LinkedInComment) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *LinkedInComment) GetCommentUrn() string { + if x != nil { + return x.CommentUrn + } + return "" +} + +func (x *LinkedInComment) GetCreated() string { + if x != nil { + return x.Created + } + return "" +} + +func (x *LinkedInComment) GetFrom() *LinkedInFrom { + if x != nil { + return x.From + } + return nil +} + +func (x *LinkedInComment) GetLikeCount() int32 { + if x != nil { + return x.LikeCount + } + return 0 +} + +func (x *LinkedInComment) GetMedia() []*LinkedInMedia { + if x != nil { + return x.Media + } + return nil +} + +func (x *LinkedInComment) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *LinkedInComment) GetProfileImageUrl() string { + if x != nil { + return x.ProfileImageUrl + } + return "" +} + +func (x *LinkedInComment) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *LinkedInComment) GetFounded() int32 { + if x != nil { + return x.Founded + } + return 0 +} + +func (x *LinkedInComment) GetOrganizationType() string { + if x != nil { + return x.OrganizationType + } + return "" +} + +func (x *LinkedInComment) GetWebsite() string { + if x != nil { + return x.Website + } + return "" +} + +// Reddit 用户信息 +type RedditUser struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` +} + +func (x *RedditUser) Reset() { + *x = RedditUser{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RedditUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RedditUser) ProtoMessage() {} + +func (x *RedditUser) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RedditUser.ProtoReflect.Descriptor instead. +func (*RedditUser) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{66} +} + +func (x *RedditUser) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RedditUser) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +// Reddit 评论详情 +type RedditComment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Created string `protobuf:"bytes,3,opt,name=created,proto3" json:"created"` + From *RedditUser `protobuf:"bytes,4,opt,name=from,proto3" json:"from"` + CommentUrl string `protobuf:"bytes,5,opt,name=commentUrl,proto3" json:"commentUrl"` + Subreddit string `protobuf:"bytes,6,opt,name=subreddit,proto3" json:"subreddit"` + Ups int32 `protobuf:"varint,7,opt,name=ups,proto3" json:"ups"` + IsSubmitter bool `protobuf:"varint,8,opt,name=isSubmitter,proto3" json:"isSubmitter"` +} + +func (x *RedditComment) Reset() { + *x = RedditComment{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RedditComment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RedditComment) ProtoMessage() {} + +func (x *RedditComment) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RedditComment.ProtoReflect.Descriptor instead. +func (*RedditComment) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{67} +} + +func (x *RedditComment) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *RedditComment) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *RedditComment) GetCreated() string { + if x != nil { + return x.Created + } + return "" +} + +func (x *RedditComment) GetFrom() *RedditUser { + if x != nil { + return x.From + } + return nil +} + +func (x *RedditComment) GetCommentUrl() string { + if x != nil { + return x.CommentUrl + } + return "" +} + +func (x *RedditComment) GetSubreddit() string { + if x != nil { + return x.Subreddit + } + return "" +} + +func (x *RedditComment) GetUps() int32 { + if x != nil { + return x.Ups + } + return 0 +} + +func (x *RedditComment) GetIsSubmitter() bool { + if x != nil { + return x.IsSubmitter + } + return false +} + +// Threads 评论详情(用于主评论和回复) +type ThreadsComment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + CommentUrl string `protobuf:"bytes,3,opt,name=commentUrl,proto3" json:"commentUrl"` + Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + HasReplies bool `protobuf:"varint,5,opt,name=hasReplies,proto3" json:"hasReplies"` + IsQuotePost bool `protobuf:"varint,6,opt,name=isQuotePost,proto3" json:"isQuotePost"` + IsReply bool `protobuf:"varint,7,opt,name=isReply,proto3" json:"isReply"` + IsReplyOwnedByMe bool `protobuf:"varint,8,opt,name=isReplyOwnedByMe,proto3" json:"isReplyOwnedByMe"` + MediaType string `protobuf:"bytes,9,opt,name=mediaType,proto3" json:"mediaType"` + ParentId string `protobuf:"bytes,10,opt,name=parentId,proto3" json:"parentId"` + Platform string `protobuf:"bytes,11,opt,name=platform,proto3" json:"platform"` + PostId string `protobuf:"bytes,12,opt,name=postId,proto3" json:"postId"` + Replies []*ThreadsComment `protobuf:"bytes,13,rep,name=replies,proto3" json:"replies"` + ReplyAudience string `protobuf:"bytes,14,opt,name=replyAudience,proto3" json:"replyAudience"` + Shortcode string `protobuf:"bytes,15,opt,name=shortcode,proto3" json:"shortcode"` + UserName string `protobuf:"bytes,16,opt,name=userName,proto3" json:"userName"` +} + +func (x *ThreadsComment) Reset() { + *x = ThreadsComment{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ThreadsComment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ThreadsComment) ProtoMessage() {} + +func (x *ThreadsComment) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[68] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ThreadsComment.ProtoReflect.Descriptor instead. +func (*ThreadsComment) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{68} +} + +func (x *ThreadsComment) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *ThreadsComment) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *ThreadsComment) GetCommentUrl() string { + if x != nil { + return x.CommentUrl + } + return "" +} + +func (x *ThreadsComment) GetCreated() string { + if x != nil { + return x.Created + } + return "" +} + +func (x *ThreadsComment) GetHasReplies() bool { + if x != nil { + return x.HasReplies + } + return false +} + +func (x *ThreadsComment) GetIsQuotePost() bool { + if x != nil { + return x.IsQuotePost + } + return false +} + +func (x *ThreadsComment) GetIsReply() bool { + if x != nil { + return x.IsReply + } + return false +} + +func (x *ThreadsComment) GetIsReplyOwnedByMe() bool { + if x != nil { + return x.IsReplyOwnedByMe + } + return false +} + +func (x *ThreadsComment) GetMediaType() string { + if x != nil { + return x.MediaType + } + return "" +} + +func (x *ThreadsComment) GetParentId() string { + if x != nil { + return x.ParentId + } + return "" +} + +func (x *ThreadsComment) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *ThreadsComment) GetPostId() string { + if x != nil { + return x.PostId + } + return "" +} + +func (x *ThreadsComment) GetReplies() []*ThreadsComment { + if x != nil { + return x.Replies + } + return nil +} + +func (x *ThreadsComment) GetReplyAudience() string { + if x != nil { + return x.ReplyAudience + } + return "" +} + +func (x *ThreadsComment) GetShortcode() string { + if x != nil { + return x.Shortcode + } + return "" +} + +func (x *ThreadsComment) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +// Twitter/X 用户公共指标(用户维度,用于 Get Comments 返回) +type TwitterPublicMetrics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FollowersCount int32 `protobuf:"varint,1,opt,name=followersCount,proto3" json:"followersCount"` + FollowingCount int32 `protobuf:"varint,2,opt,name=followingCount,proto3" json:"followingCount"` + TweetCount int32 `protobuf:"varint,3,opt,name=tweetCount,proto3" json:"tweetCount"` + ListedCount int32 `protobuf:"varint,4,opt,name=listedCount,proto3" json:"listedCount"` + LikeCount int32 `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount"` + MediaCount int32 `protobuf:"varint,6,opt,name=mediaCount,proto3" json:"mediaCount"` +} + +func (x *TwitterPublicMetrics) Reset() { + *x = TwitterPublicMetrics{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TwitterPublicMetrics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TwitterPublicMetrics) ProtoMessage() {} + +func (x *TwitterPublicMetrics) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[69] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TwitterPublicMetrics.ProtoReflect.Descriptor instead. +func (*TwitterPublicMetrics) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{69} +} + +func (x *TwitterPublicMetrics) GetFollowersCount() int32 { + if x != nil { + return x.FollowersCount + } + return 0 +} + +func (x *TwitterPublicMetrics) GetFollowingCount() int32 { + if x != nil { + return x.FollowingCount + } + return 0 +} + +func (x *TwitterPublicMetrics) GetTweetCount() int32 { + if x != nil { + return x.TweetCount + } + return 0 +} + +func (x *TwitterPublicMetrics) GetListedCount() int32 { + if x != nil { + return x.ListedCount + } + return 0 +} + +func (x *TwitterPublicMetrics) GetLikeCount() int32 { + if x != nil { + return x.LikeCount + } + return 0 +} + +func (x *TwitterPublicMetrics) GetMediaCount() int32 { + if x != nil { + return x.MediaCount + } + return 0 +} + +// Twitter/X 被引用或回复的 Tweet 信息 +type TwitterReferencedTweet struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` +} + +func (x *TwitterReferencedTweet) Reset() { + *x = TwitterReferencedTweet{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TwitterReferencedTweet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TwitterReferencedTweet) ProtoMessage() {} + +func (x *TwitterReferencedTweet) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TwitterReferencedTweet.ProtoReflect.Descriptor instead. +func (*TwitterReferencedTweet) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{70} +} + +func (x *TwitterReferencedTweet) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *TwitterReferencedTweet) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +// Twitter/X 被回复的用户信息 +type TwitterReplyTo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreatedAt string `protobuf:"bytes,1,opt,name=createdAt,proto3" json:"createdAt"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description"` + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` + Location string `protobuf:"bytes,4,opt,name=location,proto3" json:"location"` + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name"` + ProfileImageUrl string `protobuf:"bytes,6,opt,name=profileImageUrl,proto3" json:"profileImageUrl"` + PublicMetrics *TwitterPublicMetrics `protobuf:"bytes,7,opt,name=publicMetrics,proto3" json:"publicMetrics"` + Url string `protobuf:"bytes,8,opt,name=url,proto3" json:"url"` + Username string `protobuf:"bytes,9,opt,name=username,proto3" json:"username"` +} + +func (x *TwitterReplyTo) Reset() { + *x = TwitterReplyTo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TwitterReplyTo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TwitterReplyTo) ProtoMessage() {} + +func (x *TwitterReplyTo) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[71] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TwitterReplyTo.ProtoReflect.Descriptor instead. +func (*TwitterReplyTo) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{71} +} + +func (x *TwitterReplyTo) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *TwitterReplyTo) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *TwitterReplyTo) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *TwitterReplyTo) GetLocation() string { + if x != nil { + return x.Location + } + return "" +} + +func (x *TwitterReplyTo) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *TwitterReplyTo) GetProfileImageUrl() string { + if x != nil { + return x.ProfileImageUrl + } + return "" +} + +func (x *TwitterReplyTo) GetPublicMetrics() *TwitterPublicMetrics { + if x != nil { + return x.PublicMetrics + } + return nil +} + +func (x *TwitterReplyTo) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *TwitterReplyTo) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +// Twitter/X 评论详情 +type TwitterComment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BookmarkCount int32 `protobuf:"varint,1,opt,name=bookmarkCount,proto3" json:"bookmarkCount"` + Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId"` + Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description"` + Id string `protobuf:"bytes,6,opt,name=id,proto3" json:"id"` + ImpressionCount int32 `protobuf:"varint,7,opt,name=impressionCount,proto3" json:"impressionCount"` + LikeCount int32 `protobuf:"varint,8,opt,name=likeCount,proto3" json:"likeCount"` + Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name"` + Platform string `protobuf:"bytes,10,opt,name=platform,proto3" json:"platform"` + ProfileImageUrl string `protobuf:"bytes,11,opt,name=profileImageUrl,proto3" json:"profileImageUrl"` + PublicMetrics *TwitterPublicMetrics `protobuf:"bytes,12,opt,name=publicMetrics,proto3" json:"publicMetrics"` + QuoteCount int32 `protobuf:"varint,13,opt,name=quoteCount,proto3" json:"quoteCount"` + ReferencedTweets []*TwitterReferencedTweet `protobuf:"bytes,14,rep,name=referencedTweets,proto3" json:"referencedTweets"` + ReplyCount int32 `protobuf:"varint,15,opt,name=replyCount,proto3" json:"replyCount"` + ReplyTo *TwitterReplyTo `protobuf:"bytes,16,opt,name=replyTo,proto3" json:"replyTo"` + ThreadNumber int32 `protobuf:"varint,17,opt,name=threadNumber,proto3" json:"threadNumber"` + UserName string `protobuf:"bytes,18,opt,name=userName,proto3" json:"userName"` +} + +func (x *TwitterComment) Reset() { + *x = TwitterComment{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TwitterComment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TwitterComment) ProtoMessage() {} + +func (x *TwitterComment) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[72] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TwitterComment.ProtoReflect.Descriptor instead. +func (*TwitterComment) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{72} +} + +func (x *TwitterComment) GetBookmarkCount() int32 { + if x != nil { + return x.BookmarkCount + } + return 0 +} + +func (x *TwitterComment) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *TwitterComment) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *TwitterComment) GetCreated() string { + if x != nil { + return x.Created + } + return "" +} + +func (x *TwitterComment) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *TwitterComment) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *TwitterComment) GetImpressionCount() int32 { + if x != nil { + return x.ImpressionCount + } + return 0 +} + +func (x *TwitterComment) GetLikeCount() int32 { + if x != nil { + return x.LikeCount + } + return 0 +} + +func (x *TwitterComment) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *TwitterComment) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *TwitterComment) GetProfileImageUrl() string { + if x != nil { + return x.ProfileImageUrl + } + return "" +} + +func (x *TwitterComment) GetPublicMetrics() *TwitterPublicMetrics { + if x != nil { + return x.PublicMetrics + } + return nil +} + +func (x *TwitterComment) GetQuoteCount() int32 { + if x != nil { + return x.QuoteCount + } + return 0 +} + +func (x *TwitterComment) GetReferencedTweets() []*TwitterReferencedTweet { + if x != nil { + return x.ReferencedTweets + } + return nil +} + +func (x *TwitterComment) GetReplyCount() int32 { + if x != nil { + return x.ReplyCount + } + return 0 +} + +func (x *TwitterComment) GetReplyTo() *TwitterReplyTo { + if x != nil { + return x.ReplyTo + } + return nil +} + +func (x *TwitterComment) GetThreadNumber() int32 { + if x != nil { + return x.ThreadNumber + } + return 0 +} + +func (x *TwitterComment) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +// YouTube 回复评论详情 +type YouTubeReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelUrl string `protobuf:"bytes,1,opt,name=channelUrl,proto3" json:"channelUrl"` + Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId"` + Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + LikeCount int32 `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount"` + Platform string `protobuf:"bytes,6,opt,name=platform,proto3" json:"platform"` + ProfileImageUrl string `protobuf:"bytes,7,opt,name=profileImageUrl,proto3" json:"profileImageUrl"` + UserName string `protobuf:"bytes,8,opt,name=userName,proto3" json:"userName"` + ParentId string `protobuf:"bytes,9,opt,name=parentId,proto3" json:"parentId"` +} + +func (x *YouTubeReply) Reset() { + *x = YouTubeReply{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *YouTubeReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*YouTubeReply) ProtoMessage() {} + +func (x *YouTubeReply) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[73] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use YouTubeReply.ProtoReflect.Descriptor instead. +func (*YouTubeReply) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{73} +} + +func (x *YouTubeReply) GetChannelUrl() string { + if x != nil { + return x.ChannelUrl + } + return "" +} + +func (x *YouTubeReply) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *YouTubeReply) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *YouTubeReply) GetCreated() string { + if x != nil { + return x.Created + } + return "" +} + +func (x *YouTubeReply) GetLikeCount() int32 { + if x != nil { + return x.LikeCount + } + return 0 +} + +func (x *YouTubeReply) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *YouTubeReply) GetProfileImageUrl() string { + if x != nil { + return x.ProfileImageUrl + } + return "" +} + +func (x *YouTubeReply) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *YouTubeReply) GetParentId() string { + if x != nil { + return x.ParentId + } + return "" +} + +// YouTube 评论详情 +type YouTubeComment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelUrl string `protobuf:"bytes,1,opt,name=channelUrl,proto3" json:"channelUrl"` + Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId"` + Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + IsPublic bool `protobuf:"varint,5,opt,name=isPublic,proto3" json:"isPublic"` + LikeCount int32 `protobuf:"varint,6,opt,name=likeCount,proto3" json:"likeCount"` + Platform string `protobuf:"bytes,7,opt,name=platform,proto3" json:"platform"` + ProfileImageUrl string `protobuf:"bytes,8,opt,name=profileImageUrl,proto3" json:"profileImageUrl"` + Replies []*YouTubeReply `protobuf:"bytes,9,rep,name=replies,proto3" json:"replies"` + UserName string `protobuf:"bytes,10,opt,name=userName,proto3" json:"userName"` +} + +func (x *YouTubeComment) Reset() { + *x = YouTubeComment{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *YouTubeComment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*YouTubeComment) ProtoMessage() {} + +func (x *YouTubeComment) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[74] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use YouTubeComment.ProtoReflect.Descriptor instead. +func (*YouTubeComment) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{74} +} + +func (x *YouTubeComment) GetChannelUrl() string { + if x != nil { + return x.ChannelUrl + } + return "" +} + +func (x *YouTubeComment) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *YouTubeComment) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *YouTubeComment) GetCreated() string { + if x != nil { + return x.Created + } + return "" +} + +func (x *YouTubeComment) GetIsPublic() bool { + if x != nil { + return x.IsPublic + } + return false +} + +func (x *YouTubeComment) GetLikeCount() int32 { + if x != nil { + return x.LikeCount + } + return 0 +} + +func (x *YouTubeComment) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *YouTubeComment) GetProfileImageUrl() string { + if x != nil { + return x.ProfileImageUrl + } + return "" +} + +func (x *YouTubeComment) GetReplies() []*YouTubeReply { + if x != nil { + return x.Replies + } + return nil +} + +func (x *YouTubeComment) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +// 获取评论响应 +type GetCommentResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Instagram []*InstagramComment `protobuf:"bytes,1,rep,name=instagram,proto3" json:"instagram"` + Tiktok []*TikTokComment `protobuf:"bytes,2,rep,name=tiktok,proto3" json:"tiktok"` + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status"` + Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"` + LastUpdated string `protobuf:"bytes,5,opt,name=lastUpdated,proto3" json:"lastUpdated"` + NextUpdate string `protobuf:"bytes,6,opt,name=nextUpdate,proto3" json:"nextUpdate"` + Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,9,opt,name=message,proto3" json:"message"` + // 其它平台的评论列表 + Bluesky []*BlueskyComment `protobuf:"bytes,10,rep,name=bluesky,proto3" json:"bluesky"` + Facebook []*FacebookComment `protobuf:"bytes,11,rep,name=facebook,proto3" json:"facebook"` + Linkedin []*LinkedInComment `protobuf:"bytes,12,rep,name=linkedin,proto3" json:"linkedin"` + Reddit []*RedditComment `protobuf:"bytes,13,rep,name=reddit,proto3" json:"reddit"` + Threads []*ThreadsComment `protobuf:"bytes,14,rep,name=threads,proto3" json:"threads"` + Twitter []*TwitterComment `protobuf:"bytes,15,rep,name=twitter,proto3" json:"twitter"` + Youtube []*YouTubeComment `protobuf:"bytes,16,rep,name=youtube,proto3" json:"youtube"` +} + +func (x *GetCommentResponse) Reset() { + *x = GetCommentResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCommentResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCommentResponse) ProtoMessage() {} + +func (x *GetCommentResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[75] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCommentResponse.ProtoReflect.Descriptor instead. +func (*GetCommentResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{75} +} + +func (x *GetCommentResponse) GetInstagram() []*InstagramComment { + if x != nil { + return x.Instagram + } + return nil +} + +func (x *GetCommentResponse) GetTiktok() []*TikTokComment { + if x != nil { + return x.Tiktok + } + return nil +} + +func (x *GetCommentResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *GetCommentResponse) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *GetCommentResponse) GetLastUpdated() string { + if x != nil { + return x.LastUpdated + } + return "" +} + +func (x *GetCommentResponse) GetNextUpdate() string { + if x != nil { + return x.NextUpdate + } + return "" +} + +func (x *GetCommentResponse) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *GetCommentResponse) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *GetCommentResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *GetCommentResponse) GetBluesky() []*BlueskyComment { + if x != nil { + return x.Bluesky + } + return nil +} + +func (x *GetCommentResponse) GetFacebook() []*FacebookComment { + if x != nil { + return x.Facebook + } + return nil +} + +func (x *GetCommentResponse) GetLinkedin() []*LinkedInComment { + if x != nil { + return x.Linkedin + } + return nil +} + +func (x *GetCommentResponse) GetReddit() []*RedditComment { + if x != nil { + return x.Reddit + } + return nil +} + +func (x *GetCommentResponse) GetThreads() []*ThreadsComment { + if x != nil { + return x.Threads + } + return nil +} + +func (x *GetCommentResponse) GetTwitter() []*TwitterComment { + if x != nil { + return x.Twitter + } + return nil +} + +func (x *GetCommentResponse) GetYoutube() []*YouTubeComment { + if x != nil { + return x.Youtube + } + return nil +} + +// 删除评论请求 +type DeleteCommentRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Platforms []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms"` + Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform"` + SearchPlatformId bool `protobuf:"varint,4,opt,name=searchPlatformId,proto3" json:"searchPlatformId"` + ProfileKey string `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *DeleteCommentRequest) Reset() { + *x = DeleteCommentRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteCommentRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteCommentRequest) ProtoMessage() {} + +func (x *DeleteCommentRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[76] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteCommentRequest.ProtoReflect.Descriptor instead. +func (*DeleteCommentRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{76} +} + +func (x *DeleteCommentRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *DeleteCommentRequest) GetPlatforms() []string { + if x != nil { + return x.Platforms + } + return nil +} + +func (x *DeleteCommentRequest) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *DeleteCommentRequest) GetSearchPlatformId() bool { + if x != nil { + return x.SearchPlatformId + } + return false +} + +func (x *DeleteCommentRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// Instagram 删除评论响应(单条) +type InstagramDeleteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Action string `protobuf:"bytes,1,opt,name=action,proto3" json:"action"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"` + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` +} + +func (x *InstagramDeleteResponse) Reset() { + *x = InstagramDeleteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InstagramDeleteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InstagramDeleteResponse) ProtoMessage() {} + +func (x *InstagramDeleteResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[77] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InstagramDeleteResponse.ProtoReflect.Descriptor instead. +func (*InstagramDeleteResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{77} +} + +func (x *InstagramDeleteResponse) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *InstagramDeleteResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *InstagramDeleteResponse) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *InstagramDeleteResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +// TikTok 删除评论响应(单条) +type TikTokDeleteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Action string `protobuf:"bytes,1,opt,name=action,proto3" json:"action"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId"` + Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"` + Comment string `protobuf:"bytes,5,opt,name=comment,proto3" json:"comment"` +} + +func (x *TikTokDeleteResponse) Reset() { + *x = TikTokDeleteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TikTokDeleteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TikTokDeleteResponse) ProtoMessage() {} + +func (x *TikTokDeleteResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[78] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TikTokDeleteResponse.ProtoReflect.Descriptor instead. +func (*TikTokDeleteResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{78} +} + +func (x *TikTokDeleteResponse) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *TikTokDeleteResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *TikTokDeleteResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *TikTokDeleteResponse) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *TikTokDeleteResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +// 删除评论响应 +type DeleteCommentResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + // Instagram 和 TikTok 可能是单个对象或数组,使用 JSON 字符串存储 + Instagram string `protobuf:"bytes,2,opt,name=instagram,proto3" json:"instagram"` + Tiktok string `protobuf:"bytes,3,opt,name=tiktok,proto3" json:"tiktok"` + Action string `protobuf:"bytes,4,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,5,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message"` + // 其它平台删除结果,同样使用 JSON 字符串存储,兼容单条或多条返回 + Bluesky string `protobuf:"bytes,7,opt,name=bluesky,proto3" json:"bluesky"` + Facebook string `protobuf:"bytes,8,opt,name=facebook,proto3" json:"facebook"` + Linkedin string `protobuf:"bytes,9,opt,name=linkedin,proto3" json:"linkedin"` + Threads string `protobuf:"bytes,10,opt,name=threads,proto3" json:"threads"` + Twitter string `protobuf:"bytes,11,opt,name=twitter,proto3" json:"twitter"` + Youtube string `protobuf:"bytes,12,opt,name=youtube,proto3" json:"youtube"` +} + +func (x *DeleteCommentResponse) Reset() { + *x = DeleteCommentResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteCommentResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteCommentResponse) ProtoMessage() {} + +func (x *DeleteCommentResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[79] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteCommentResponse.ProtoReflect.Descriptor instead. +func (*DeleteCommentResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{79} +} + +func (x *DeleteCommentResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *DeleteCommentResponse) GetInstagram() string { + if x != nil { + return x.Instagram + } + return "" +} + +func (x *DeleteCommentResponse) GetTiktok() string { + if x != nil { + return x.Tiktok + } + return "" +} + +func (x *DeleteCommentResponse) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *DeleteCommentResponse) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *DeleteCommentResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *DeleteCommentResponse) GetBluesky() string { + if x != nil { + return x.Bluesky + } + return "" +} + +func (x *DeleteCommentResponse) GetFacebook() string { + if x != nil { + return x.Facebook + } + return "" +} + +func (x *DeleteCommentResponse) GetLinkedin() string { + if x != nil { + return x.Linkedin + } + return "" +} + +func (x *DeleteCommentResponse) GetThreads() string { + if x != nil { + return x.Threads + } + return "" +} + +func (x *DeleteCommentResponse) GetTwitter() string { + if x != nil { + return x.Twitter + } + return "" +} + +func (x *DeleteCommentResponse) GetYoutube() string { + if x != nil { + return x.Youtube + } + return "" +} + +// 回复评论请求 +type ReplyCommentRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment"` + Platforms []string `protobuf:"bytes,3,rep,name=platforms,proto3" json:"platforms"` + ProfileKey string `protobuf:"bytes,4,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *ReplyCommentRequest) Reset() { + *x = ReplyCommentRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReplyCommentRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReplyCommentRequest) ProtoMessage() {} + +func (x *ReplyCommentRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[80] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReplyCommentRequest.ProtoReflect.Descriptor instead. +func (*ReplyCommentRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{80} +} + +func (x *ReplyCommentRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ReplyCommentRequest) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *ReplyCommentRequest) GetPlatforms() []string { + if x != nil { + return x.Platforms + } + return nil +} + +func (x *ReplyCommentRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// Instagram 回复评论响应 +type InstagramReplyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` +} + +func (x *InstagramReplyResponse) Reset() { + *x = InstagramReplyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InstagramReplyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InstagramReplyResponse) ProtoMessage() {} + +func (x *InstagramReplyResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[81] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InstagramReplyResponse.ProtoReflect.Descriptor instead. +func (*InstagramReplyResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{81} +} + +func (x *InstagramReplyResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *InstagramReplyResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *InstagramReplyResponse) GetSourceCommentId() string { + if x != nil { + return x.SourceCommentId + } + return "" +} + +func (x *InstagramReplyResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *InstagramReplyResponse) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +// TikTok 回复评论响应 +type TikTokReplyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` + VideoId string `protobuf:"bytes,6,opt,name=videoId,proto3" json:"videoId"` +} + +func (x *TikTokReplyResponse) Reset() { + *x = TikTokReplyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TikTokReplyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TikTokReplyResponse) ProtoMessage() {} + +func (x *TikTokReplyResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[82] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TikTokReplyResponse.ProtoReflect.Descriptor instead. +func (*TikTokReplyResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{82} +} + +func (x *TikTokReplyResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *TikTokReplyResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *TikTokReplyResponse) GetSourceCommentId() string { + if x != nil { + return x.SourceCommentId + } + return "" +} + +func (x *TikTokReplyResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *TikTokReplyResponse) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *TikTokReplyResponse) GetVideoId() string { + if x != nil { + return x.VideoId + } + return "" +} + +// Bluesky 回复评论响应 +type BlueskyReplyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` + Cid string `protobuf:"bytes,6,opt,name=cid,proto3" json:"cid"` + PostUrl string `protobuf:"bytes,7,opt,name=postUrl,proto3" json:"postUrl"` +} + +func (x *BlueskyReplyResponse) Reset() { + *x = BlueskyReplyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlueskyReplyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlueskyReplyResponse) ProtoMessage() {} + +func (x *BlueskyReplyResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[83] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BlueskyReplyResponse.ProtoReflect.Descriptor instead. +func (*BlueskyReplyResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{83} +} + +func (x *BlueskyReplyResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *BlueskyReplyResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *BlueskyReplyResponse) GetSourceCommentId() string { + if x != nil { + return x.SourceCommentId + } + return "" +} + +func (x *BlueskyReplyResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *BlueskyReplyResponse) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *BlueskyReplyResponse) GetCid() string { + if x != nil { + return x.Cid + } + return "" +} + +func (x *BlueskyReplyResponse) GetPostUrl() string { + if x != nil { + return x.PostUrl + } + return "" +} + +// Facebook 回复评论响应 +type FacebookReplyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` +} + +func (x *FacebookReplyResponse) Reset() { + *x = FacebookReplyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FacebookReplyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FacebookReplyResponse) ProtoMessage() {} + +func (x *FacebookReplyResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[84] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FacebookReplyResponse.ProtoReflect.Descriptor instead. +func (*FacebookReplyResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{84} +} + +func (x *FacebookReplyResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *FacebookReplyResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *FacebookReplyResponse) GetSourceCommentId() string { + if x != nil { + return x.SourceCommentId + } + return "" +} + +func (x *FacebookReplyResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *FacebookReplyResponse) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +// LinkedIn 回复评论响应 +type LinkedInReplyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` +} + +func (x *LinkedInReplyResponse) Reset() { + *x = LinkedInReplyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LinkedInReplyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LinkedInReplyResponse) ProtoMessage() {} + +func (x *LinkedInReplyResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[85] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LinkedInReplyResponse.ProtoReflect.Descriptor instead. +func (*LinkedInReplyResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{85} +} + +func (x *LinkedInReplyResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *LinkedInReplyResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *LinkedInReplyResponse) GetSourceCommentId() string { + if x != nil { + return x.SourceCommentId + } + return "" +} + +func (x *LinkedInReplyResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *LinkedInReplyResponse) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +// Twitter/X 回复评论响应 +type TwitterReplyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` + PostUrl string `protobuf:"bytes,6,opt,name=postUrl,proto3" json:"postUrl"` +} + +func (x *TwitterReplyResponse) Reset() { + *x = TwitterReplyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TwitterReplyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TwitterReplyResponse) ProtoMessage() {} + +func (x *TwitterReplyResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[86] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TwitterReplyResponse.ProtoReflect.Descriptor instead. +func (*TwitterReplyResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{86} +} + +func (x *TwitterReplyResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *TwitterReplyResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *TwitterReplyResponse) GetSourceCommentId() string { + if x != nil { + return x.SourceCommentId + } + return "" +} + +func (x *TwitterReplyResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *TwitterReplyResponse) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *TwitterReplyResponse) GetPostUrl() string { + if x != nil { + return x.PostUrl + } + return "" +} + +// YouTube 回复评论响应 +type YouTubeReplyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` +} + +func (x *YouTubeReplyResponse) Reset() { + *x = YouTubeReplyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *YouTubeReplyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*YouTubeReplyResponse) ProtoMessage() {} + +func (x *YouTubeReplyResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[87] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use YouTubeReplyResponse.ProtoReflect.Descriptor instead. +func (*YouTubeReplyResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{87} +} + +func (x *YouTubeReplyResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *YouTubeReplyResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *YouTubeReplyResponse) GetSourceCommentId() string { + if x != nil { + return x.SourceCommentId + } + return "" +} + +func (x *YouTubeReplyResponse) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *YouTubeReplyResponse) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +// 回复评论响应 +type ReplyCommentResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` + Instagram *InstagramReplyResponse `protobuf:"bytes,4,opt,name=instagram,proto3" json:"instagram"` + Tiktok *TikTokReplyResponse `protobuf:"bytes,5,opt,name=tiktok,proto3" json:"tiktok"` + Action string `protobuf:"bytes,6,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,7,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,8,opt,name=message,proto3" json:"message"` + // 其它平台的回复结果 + Bluesky *BlueskyReplyResponse `protobuf:"bytes,9,opt,name=bluesky,proto3" json:"bluesky"` + Facebook *FacebookReplyResponse `protobuf:"bytes,10,opt,name=facebook,proto3" json:"facebook"` + Linkedin *LinkedInReplyResponse `protobuf:"bytes,11,opt,name=linkedin,proto3" json:"linkedin"` + Twitter *TwitterReplyResponse `protobuf:"bytes,12,opt,name=twitter,proto3" json:"twitter"` + Youtube *YouTubeReplyResponse `protobuf:"bytes,13,opt,name=youtube,proto3" json:"youtube"` +} + +func (x *ReplyCommentResponse) Reset() { + *x = ReplyCommentResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReplyCommentResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReplyCommentResponse) ProtoMessage() {} + +func (x *ReplyCommentResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[88] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReplyCommentResponse.ProtoReflect.Descriptor instead. +func (*ReplyCommentResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{88} +} + +func (x *ReplyCommentResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *ReplyCommentResponse) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + +func (x *ReplyCommentResponse) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ReplyCommentResponse) GetInstagram() *InstagramReplyResponse { + if x != nil { + return x.Instagram + } + return nil +} + +func (x *ReplyCommentResponse) GetTiktok() *TikTokReplyResponse { + if x != nil { + return x.Tiktok + } + return nil +} + +func (x *ReplyCommentResponse) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *ReplyCommentResponse) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *ReplyCommentResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *ReplyCommentResponse) GetBluesky() *BlueskyReplyResponse { + if x != nil { + return x.Bluesky + } + return nil +} + +func (x *ReplyCommentResponse) GetFacebook() *FacebookReplyResponse { + if x != nil { + return x.Facebook + } + return nil +} + +func (x *ReplyCommentResponse) GetLinkedin() *LinkedInReplyResponse { + if x != nil { + return x.Linkedin + } + return nil +} + +func (x *ReplyCommentResponse) GetTwitter() *TwitterReplyResponse { + if x != nil { + return x.Twitter + } + return nil +} + +func (x *ReplyCommentResponse) GetYoutube() *YouTubeReplyResponse { + if x != nil { + return x.Youtube + } + return nil +} + +// 获取帖子分析数据请求 +type GetPostAnalyticsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Platforms []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms"` + ProfileKey string `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *GetPostAnalyticsRequest) Reset() { + *x = GetPostAnalyticsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[89] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPostAnalyticsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPostAnalyticsRequest) ProtoMessage() {} + +func (x *GetPostAnalyticsRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[89] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPostAnalyticsRequest.ProtoReflect.Descriptor instead. +func (*GetPostAnalyticsRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{89} +} + +func (x *GetPostAnalyticsRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *GetPostAnalyticsRequest) GetPlatforms() []string { + if x != nil { + return x.Platforms + } + return nil +} + +func (x *GetPostAnalyticsRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// 通过 Social Post ID 获取帖子分析数据请求 +type GetPostAnalyticsBySocialIDRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Platforms []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms"` + SearchPlatformId bool `protobuf:"varint,3,opt,name=searchPlatformId,proto3" json:"searchPlatformId"` + ProfileKey string `protobuf:"bytes,4,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *GetPostAnalyticsBySocialIDRequest) Reset() { + *x = GetPostAnalyticsBySocialIDRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPostAnalyticsBySocialIDRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPostAnalyticsBySocialIDRequest) ProtoMessage() {} + +func (x *GetPostAnalyticsBySocialIDRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[90] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPostAnalyticsBySocialIDRequest.ProtoReflect.Descriptor instead. +func (*GetPostAnalyticsBySocialIDRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{90} +} + +func (x *GetPostAnalyticsBySocialIDRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *GetPostAnalyticsBySocialIDRequest) GetPlatforms() []string { + if x != nil { + return x.Platforms + } + return nil +} + +func (x *GetPostAnalyticsBySocialIDRequest) GetSearchPlatformId() bool { + if x != nil { + return x.SearchPlatformId + } + return false +} + +func (x *GetPostAnalyticsBySocialIDRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// 获取帖子分析数据响应(使用 JSON 字符串存储复杂的平台数据) +type GetPostAnalyticsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code"` + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` + // 各平台的分析数据以 JSON 字符串形式存储 + Bluesky string `protobuf:"bytes,4,opt,name=bluesky,proto3" json:"bluesky"` + Facebook string `protobuf:"bytes,5,opt,name=facebook,proto3" json:"facebook"` + Instagram string `protobuf:"bytes,6,opt,name=instagram,proto3" json:"instagram"` + Linkedin string `protobuf:"bytes,7,opt,name=linkedin,proto3" json:"linkedin"` + Pinterest string `protobuf:"bytes,8,opt,name=pinterest,proto3" json:"pinterest"` + Snapchat string `protobuf:"bytes,9,opt,name=snapchat,proto3" json:"snapchat"` + Threads string `protobuf:"bytes,10,opt,name=threads,proto3" json:"threads"` + Tiktok string `protobuf:"bytes,11,opt,name=tiktok,proto3" json:"tiktok"` + Twitter string `protobuf:"bytes,12,opt,name=twitter,proto3" json:"twitter"` + Youtube string `protobuf:"bytes,13,opt,name=youtube,proto3" json:"youtube"` +} + +func (x *GetPostAnalyticsResponse) Reset() { + *x = GetPostAnalyticsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPostAnalyticsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPostAnalyticsResponse) ProtoMessage() {} + +func (x *GetPostAnalyticsResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[91] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPostAnalyticsResponse.ProtoReflect.Descriptor instead. +func (*GetPostAnalyticsResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{91} +} + +func (x *GetPostAnalyticsResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *GetPostAnalyticsResponse) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *GetPostAnalyticsResponse) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *GetPostAnalyticsResponse) GetBluesky() string { + if x != nil { + return x.Bluesky + } + return "" +} + +func (x *GetPostAnalyticsResponse) GetFacebook() string { + if x != nil { + return x.Facebook + } + return "" +} + +func (x *GetPostAnalyticsResponse) GetInstagram() string { + if x != nil { + return x.Instagram + } + return "" +} + +func (x *GetPostAnalyticsResponse) GetLinkedin() string { + if x != nil { + return x.Linkedin + } + return "" +} + +func (x *GetPostAnalyticsResponse) GetPinterest() string { + if x != nil { + return x.Pinterest + } + return "" +} + +func (x *GetPostAnalyticsResponse) GetSnapchat() string { + if x != nil { + return x.Snapchat + } + return "" +} + +func (x *GetPostAnalyticsResponse) GetThreads() string { + if x != nil { + return x.Threads + } + return "" +} + +func (x *GetPostAnalyticsResponse) GetTiktok() string { + if x != nil { + return x.Tiktok + } + return "" +} + +func (x *GetPostAnalyticsResponse) GetTwitter() string { + if x != nil { + return x.Twitter + } + return "" +} + +func (x *GetPostAnalyticsResponse) GetYoutube() string { + if x != nil { + return x.Youtube + } + return "" +} + +// 获取社交网络分析数据请求 +type GetSocialAnalyticsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platforms []string `protobuf:"bytes,1,rep,name=platforms,proto3" json:"platforms"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *GetSocialAnalyticsRequest) Reset() { + *x = GetSocialAnalyticsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[92] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSocialAnalyticsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSocialAnalyticsRequest) ProtoMessage() {} + +func (x *GetSocialAnalyticsRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[92] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSocialAnalyticsRequest.ProtoReflect.Descriptor instead. +func (*GetSocialAnalyticsRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{92} +} + +func (x *GetSocialAnalyticsRequest) GetPlatforms() []string { + if x != nil { + return x.Platforms + } + return nil +} + +func (x *GetSocialAnalyticsRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// 获取社交网络分析数据响应(使用 JSON 字符串存储复杂的平台数据) +type GetSocialAnalyticsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + // 各平台的分析数据以 JSON 字符串形式存储 + Bluesky string `protobuf:"bytes,2,opt,name=bluesky,proto3" json:"bluesky"` + Facebook string `protobuf:"bytes,3,opt,name=facebook,proto3" json:"facebook"` + Gmb string `protobuf:"bytes,4,opt,name=gmb,proto3" json:"gmb"` + Instagram string `protobuf:"bytes,5,opt,name=instagram,proto3" json:"instagram"` + Linkedin string `protobuf:"bytes,6,opt,name=linkedin,proto3" json:"linkedin"` + Pinterest string `protobuf:"bytes,7,opt,name=pinterest,proto3" json:"pinterest"` + Reddit string `protobuf:"bytes,8,opt,name=reddit,proto3" json:"reddit"` + Snapchat string `protobuf:"bytes,9,opt,name=snapchat,proto3" json:"snapchat"` + Threads string `protobuf:"bytes,10,opt,name=threads,proto3" json:"threads"` + Tiktok string `protobuf:"bytes,11,opt,name=tiktok,proto3" json:"tiktok"` + Twitter string `protobuf:"bytes,12,opt,name=twitter,proto3" json:"twitter"` + Youtube string `protobuf:"bytes,13,opt,name=youtube,proto3" json:"youtube"` +} + +func (x *GetSocialAnalyticsResponse) Reset() { + *x = GetSocialAnalyticsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[93] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSocialAnalyticsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSocialAnalyticsResponse) ProtoMessage() {} + +func (x *GetSocialAnalyticsResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[93] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSocialAnalyticsResponse.ProtoReflect.Descriptor instead. +func (*GetSocialAnalyticsResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{93} +} + +func (x *GetSocialAnalyticsResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *GetSocialAnalyticsResponse) GetBluesky() string { + if x != nil { + return x.Bluesky + } + return "" +} + +func (x *GetSocialAnalyticsResponse) GetFacebook() string { + if x != nil { + return x.Facebook + } + return "" +} + +func (x *GetSocialAnalyticsResponse) GetGmb() string { + if x != nil { + return x.Gmb + } + return "" +} + +func (x *GetSocialAnalyticsResponse) GetInstagram() string { + if x != nil { + return x.Instagram + } + return "" +} + +func (x *GetSocialAnalyticsResponse) GetLinkedin() string { + if x != nil { + return x.Linkedin + } + return "" +} + +func (x *GetSocialAnalyticsResponse) GetPinterest() string { + if x != nil { + return x.Pinterest + } + return "" +} + +func (x *GetSocialAnalyticsResponse) GetReddit() string { + if x != nil { + return x.Reddit + } + return "" +} + +func (x *GetSocialAnalyticsResponse) GetSnapchat() string { + if x != nil { + return x.Snapchat + } + return "" +} + +func (x *GetSocialAnalyticsResponse) GetThreads() string { + if x != nil { + return x.Threads + } + return "" +} + +func (x *GetSocialAnalyticsResponse) GetTiktok() string { + if x != nil { + return x.Tiktok + } + return "" +} + +func (x *GetSocialAnalyticsResponse) GetTwitter() string { + if x != nil { + return x.Twitter + } + return "" +} + +func (x *GetSocialAnalyticsResponse) GetYoutube() string { + if x != nil { + return x.Youtube + } + return "" +} + +// AutoHashtagsRequest 自动生成标签请求参数 +type AutoHashtagsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Post string `protobuf:"bytes,1,opt,name=post,proto3" json:"post"` + Max int32 `protobuf:"varint,2,opt,name=max,proto3" json:"max"` + Position string `protobuf:"bytes,3,opt,name=position,proto3" json:"position"` + Language string `protobuf:"bytes,4,opt,name=language,proto3" json:"language"` + ProfileKey string `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *AutoHashtagsRequest) Reset() { + *x = AutoHashtagsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[94] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AutoHashtagsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AutoHashtagsRequest) ProtoMessage() {} + +func (x *AutoHashtagsRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[94] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AutoHashtagsRequest.ProtoReflect.Descriptor instead. +func (*AutoHashtagsRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{94} +} + +func (x *AutoHashtagsRequest) GetPost() string { + if x != nil { + return x.Post + } + return "" +} + +func (x *AutoHashtagsRequest) GetMax() int32 { + if x != nil { + return x.Max + } + return 0 +} + +func (x *AutoHashtagsRequest) GetPosition() string { + if x != nil { + return x.Position + } + return "" +} + +func (x *AutoHashtagsRequest) GetLanguage() string { + if x != nil { + return x.Language + } + return "" +} + +func (x *AutoHashtagsRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// AutoHashtagsResponse 自动生成标签返回结果 +type AutoHashtagsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Post string `protobuf:"bytes,1,opt,name=post,proto3" json:"post"` + Action string `protobuf:"bytes,2,opt,name=action,proto3" json:"action"` + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status"` + Code int32 `protobuf:"varint,4,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message"` +} + +func (x *AutoHashtagsResponse) Reset() { + *x = AutoHashtagsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AutoHashtagsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AutoHashtagsResponse) ProtoMessage() {} + +func (x *AutoHashtagsResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[95] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AutoHashtagsResponse.ProtoReflect.Descriptor instead. +func (*AutoHashtagsResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{95} +} + +func (x *AutoHashtagsResponse) GetPost() string { + if x != nil { + return x.Post + } + return "" +} + +func (x *AutoHashtagsResponse) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *AutoHashtagsResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *AutoHashtagsResponse) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *AutoHashtagsResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +// CheckBannedHashtagRequest 查看被禁用标签请求 +type CheckBannedHashtagRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hashtag string `protobuf:"bytes,1,opt,name=hashtag,proto3" json:"hashtag"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *CheckBannedHashtagRequest) Reset() { + *x = CheckBannedHashtagRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckBannedHashtagRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckBannedHashtagRequest) ProtoMessage() {} + +func (x *CheckBannedHashtagRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[96] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CheckBannedHashtagRequest.ProtoReflect.Descriptor instead. +func (*CheckBannedHashtagRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{96} +} + +func (x *CheckBannedHashtagRequest) GetHashtag() string { + if x != nil { + return x.Hashtag + } + return "" +} + +func (x *CheckBannedHashtagRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// CheckBannedHashtagResponse 查看被禁用标签返回结果 +type CheckBannedHashtagResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hashtag string `protobuf:"bytes,1,opt,name=hashtag,proto3" json:"hashtag"` + Banned bool `protobuf:"varint,2,opt,name=banned,proto3" json:"banned"` + Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action"` + Status string `protobuf:"bytes,4,opt,name=status,proto3" json:"status"` + Code int32 `protobuf:"varint,5,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message"` +} + +func (x *CheckBannedHashtagResponse) Reset() { + *x = CheckBannedHashtagResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckBannedHashtagResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckBannedHashtagResponse) ProtoMessage() {} + +func (x *CheckBannedHashtagResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[97] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CheckBannedHashtagResponse.ProtoReflect.Descriptor instead. +func (*CheckBannedHashtagResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{97} +} + +func (x *CheckBannedHashtagResponse) GetHashtag() string { + if x != nil { + return x.Hashtag + } + return "" +} + +func (x *CheckBannedHashtagResponse) GetBanned() bool { + if x != nil { + return x.Banned + } + return false +} + +func (x *CheckBannedHashtagResponse) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *CheckBannedHashtagResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *CheckBannedHashtagResponse) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *CheckBannedHashtagResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +// HashtagRecommendation 单条推荐标签信息 +type HashtagRecommendation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ViewCount int64 `protobuf:"varint,1,opt,name=viewCount,proto3" json:"viewCount"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` +} + +func (x *HashtagRecommendation) Reset() { + *x = HashtagRecommendation{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[98] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HashtagRecommendation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HashtagRecommendation) ProtoMessage() {} + +func (x *HashtagRecommendation) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[98] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HashtagRecommendation.ProtoReflect.Descriptor instead. +func (*HashtagRecommendation) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{98} +} + +func (x *HashtagRecommendation) GetViewCount() int64 { + if x != nil { + return x.ViewCount + } + return 0 +} + +func (x *HashtagRecommendation) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// RecommendHashtagsRequest 推荐话题标签请求 +type RecommendHashtagsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *RecommendHashtagsRequest) Reset() { + *x = RecommendHashtagsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[99] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecommendHashtagsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecommendHashtagsRequest) ProtoMessage() {} + +func (x *RecommendHashtagsRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[99] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RecommendHashtagsRequest.ProtoReflect.Descriptor instead. +func (*RecommendHashtagsRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{99} +} + +func (x *RecommendHashtagsRequest) GetKeyword() string { + if x != nil { + return x.Keyword + } + return "" +} + +func (x *RecommendHashtagsRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// RecommendHashtagsResponse 推荐话题标签返回结果 +type RecommendHashtagsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword"` + Recommendations []*HashtagRecommendation `protobuf:"bytes,2,rep,name=recommendations,proto3" json:"recommendations"` + Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action"` + Status string `protobuf:"bytes,4,opt,name=status,proto3" json:"status"` + Code int32 `protobuf:"varint,5,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message"` +} + +func (x *RecommendHashtagsResponse) Reset() { + *x = RecommendHashtagsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[100] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecommendHashtagsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecommendHashtagsResponse) ProtoMessage() {} + +func (x *RecommendHashtagsResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[100] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RecommendHashtagsResponse.ProtoReflect.Descriptor instead. +func (*RecommendHashtagsResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{100} +} + +func (x *RecommendHashtagsResponse) GetKeyword() string { + if x != nil { + return x.Keyword + } + return "" +} + +func (x *RecommendHashtagsResponse) GetRecommendations() []*HashtagRecommendation { + if x != nil { + return x.Recommendations + } + return nil +} + +func (x *RecommendHashtagsResponse) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *RecommendHashtagsResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *RecommendHashtagsResponse) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *RecommendHashtagsResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +// SearchHashtagsRequest 搜索话题标签请求 +type SearchHashtagsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword"` + SearchType string `protobuf:"bytes,2,opt,name=searchType,proto3" json:"searchType"` + ProfileKey string `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey"` +} + +func (x *SearchHashtagsRequest) Reset() { + *x = SearchHashtagsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchHashtagsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchHashtagsRequest) ProtoMessage() {} + +func (x *SearchHashtagsRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[101] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SearchHashtagsRequest.ProtoReflect.Descriptor instead. +func (*SearchHashtagsRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{101} +} + +func (x *SearchHashtagsRequest) GetKeyword() string { + if x != nil { + return x.Keyword + } + return "" +} + +func (x *SearchHashtagsRequest) GetSearchType() string { + if x != nil { + return x.SearchType + } + return "" +} + +func (x *SearchHashtagsRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// SearchHashtagInfo 单个话题标签的基本信息 +type SearchHashtagInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` +} + +func (x *SearchHashtagInfo) Reset() { + *x = SearchHashtagInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[102] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchHashtagInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchHashtagInfo) ProtoMessage() {} + +func (x *SearchHashtagInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[102] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SearchHashtagInfo.ProtoReflect.Descriptor instead. +func (*SearchHashtagInfo) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{102} +} + +func (x *SearchHashtagInfo) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *SearchHashtagInfo) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// SearchHashtagChild 搜索结果中 children.data 的元素 +type SearchHashtagChild struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` +} + +func (x *SearchHashtagChild) Reset() { + *x = SearchHashtagChild{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchHashtagChild) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchHashtagChild) ProtoMessage() {} + +func (x *SearchHashtagChild) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_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 SearchHashtagChild.ProtoReflect.Descriptor instead. +func (*SearchHashtagChild) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{103} +} + +func (x *SearchHashtagChild) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +// SearchHashtagChildren 搜索结果中的 children 对象 +type SearchHashtagChildren struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*SearchHashtagChild `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` +} + +func (x *SearchHashtagChildren) Reset() { + *x = SearchHashtagChildren{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[104] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchHashtagChildren) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchHashtagChildren) ProtoMessage() {} + +func (x *SearchHashtagChildren) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_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 SearchHashtagChildren.ProtoReflect.Descriptor instead. +func (*SearchHashtagChildren) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{104} +} + +func (x *SearchHashtagChildren) GetData() []*SearchHashtagChild { + if x != nil { + return x.Data + } + return nil +} + +// SearchHashtagMedia 搜索结果中的单条 Instagram 媒体信息 +type SearchHashtagMedia struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Caption string `protobuf:"bytes,1,opt,name=caption,proto3" json:"caption"` + Children *SearchHashtagChildren `protobuf:"bytes,2,opt,name=children,proto3" json:"children"` + CommentsCount int32 `protobuf:"varint,3,opt,name=commentsCount,proto3" json:"commentsCount"` + Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"` + LikeCount int32 `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount"` + MediaType string `protobuf:"bytes,6,opt,name=mediaType,proto3" json:"mediaType"` + MediaUrl string `protobuf:"bytes,7,opt,name=mediaUrl,proto3" json:"mediaUrl"` + Permalink string `protobuf:"bytes,8,opt,name=permalink,proto3" json:"permalink"` + Timestamp string `protobuf:"bytes,9,opt,name=timestamp,proto3" json:"timestamp"` +} + +func (x *SearchHashtagMedia) Reset() { + *x = SearchHashtagMedia{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[105] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchHashtagMedia) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchHashtagMedia) ProtoMessage() {} + +func (x *SearchHashtagMedia) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_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 SearchHashtagMedia.ProtoReflect.Descriptor instead. +func (*SearchHashtagMedia) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{105} +} + +func (x *SearchHashtagMedia) GetCaption() string { + if x != nil { + return x.Caption + } + return "" +} + +func (x *SearchHashtagMedia) GetChildren() *SearchHashtagChildren { + if x != nil { + return x.Children + } + return nil +} + +func (x *SearchHashtagMedia) GetCommentsCount() int32 { + if x != nil { + return x.CommentsCount + } + return 0 +} + +func (x *SearchHashtagMedia) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *SearchHashtagMedia) GetLikeCount() int32 { + if x != nil { + return x.LikeCount + } + return 0 +} + +func (x *SearchHashtagMedia) GetMediaType() string { + if x != nil { + return x.MediaType + } + return "" +} + +func (x *SearchHashtagMedia) GetMediaUrl() string { + if x != nil { + return x.MediaUrl + } + return "" +} + +func (x *SearchHashtagMedia) GetPermalink() string { + if x != nil { + return x.Permalink + } + return "" +} + +func (x *SearchHashtagMedia) GetTimestamp() string { + if x != nil { + return x.Timestamp + } + return "" +} + +// SearchHashtagsResponse 搜索话题标签响应 +type SearchHashtagsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Hashtag *SearchHashtagInfo `protobuf:"bytes,2,opt,name=hashtag,proto3" json:"hashtag"` + SearchResults []*SearchHashtagMedia `protobuf:"bytes,3,rep,name=searchResults,proto3" json:"searchResults"` + Count int32 `protobuf:"varint,4,opt,name=count,proto3" json:"count"` + LastUpdated string `protobuf:"bytes,5,opt,name=lastUpdated,proto3" json:"lastUpdated"` + NextUpdate string `protobuf:"bytes,6,opt,name=nextUpdate,proto3" json:"nextUpdate"` + Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,9,opt,name=message,proto3" json:"message"` +} + +func (x *SearchHashtagsResponse) Reset() { + *x = SearchHashtagsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_ayrshare_proto_msgTypes[106] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchHashtagsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchHashtagsResponse) ProtoMessage() {} + +func (x *SearchHashtagsResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_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 SearchHashtagsResponse.ProtoReflect.Descriptor instead. +func (*SearchHashtagsResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{106} +} + +func (x *SearchHashtagsResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *SearchHashtagsResponse) GetHashtag() *SearchHashtagInfo { + if x != nil { + return x.Hashtag + } + return nil +} + +func (x *SearchHashtagsResponse) GetSearchResults() []*SearchHashtagMedia { + if x != nil { + return x.SearchResults + } + return nil +} + +func (x *SearchHashtagsResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *SearchHashtagsResponse) GetLastUpdated() string { + if x != nil { + return x.LastUpdated + } + return "" +} + +func (x *SearchHashtagsResponse) GetNextUpdate() string { + if x != nil { + return x.NextUpdate + } + return "" +} + +func (x *SearchHashtagsResponse) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *SearchHashtagsResponse) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *SearchHashtagsResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + var File_pb_ayrshare_proto protoreflect.FileDescriptor var file_pb_ayrshare_proto_rawDesc = []byte{ @@ -2500,382 +10243,1675 @@ var file_pb_ayrshare_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22, - 0x89, 0x04, 0x0a, 0x0b, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x8b, 0x04, 0x0a, 0x0b, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xdf, 0x1f, 0x1a, 0x2a, 0x16, 0x70, 0x6f, 0x73, 0x74, 0xe5, 0x86, 0x85, 0xe5, 0xae, 0xb9, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x04, 0x70, - 0x6f, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x29, 0xe2, 0xdf, 0x1f, 0x25, 0x2a, 0x21, 0x70, 0x6c, + 0x6f, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, - 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x60, - 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, - 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x68, - 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, - 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, - 0x72, 0x61, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x0a, 0x0d, - 0x74, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, - 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x74, 0x69, - 0x6b, 0x54, 0x6f, 0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xa4, 0x02, 0x0a, 0x06, - 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, - 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x69, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x69, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, - 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, - 0x74, 0x61, 0x22, 0xe0, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, - 0x2a, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, - 0x49, 0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, - 0x65, 0x66, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, - 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6b, - 0x54, 0x6f, 0x6b, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6b, - 0x54, 0x6f, 0x6b, 0x49, 0x64, 0x22, 0xc3, 0x01, 0x0a, 0x0c, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, - 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, - 0x6d, 0x52, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x12, 0x2a, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, - 0x74, 0x49, 0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0b, - 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x22, 0x5e, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0xe2, 0xdf, 0x1f, 0x18, 0x2a, - 0x14, 0xe5, 0xb8, 0x96, 0xe5, 0xad, 0x90, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, - 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xfd, 0x02, 0x0a, 0x0f, - 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, + 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, + 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x69, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, + 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, + 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x28, 0x0a, 0x0f, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, + 0x72, 0x61, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x10, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, + 0x0a, 0x0d, 0x74, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x2e, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, + 0x74, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xa4, 0x02, + 0x0a, 0x06, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, + 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x69, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, + 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x51, 0x75, + 0x6f, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x51, + 0x75, 0x6f, 0x74, 0x61, 0x22, 0xe0, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, + 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, - 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, - 0x74, 0x12, 0x2a, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, - 0x73, 0x74, 0x49, 0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x22, 0x0a, - 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, - 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x2a, 0x0a, - 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, - 0x61, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x5b, 0x0a, 0x09, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x12, 0x21, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x74, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x75, 0x74, 0x63, 0x22, 0x7a, 0x0a, 0x0c, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, - 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, - 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x6f, - 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x6f, - 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x22, - 0x0a, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x52, 0x65, 0x73, - 0x65, 0x74, 0x22, 0xb5, 0x06, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x73, 0x55, 0x72, 0x6c, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x73, 0x55, 0x72, 0x6c, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, - 0x65, 0x77, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x76, - 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x67, 0x49, 0x64, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x67, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x14, - 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, - 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x1c, 0x69, 0x73, - 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x47, 0x65, 0x6f, 0x52, 0x65, - 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x1c, 0x69, 0x73, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x47, - 0x65, 0x6f, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, - 0x0a, 0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x2a, - 0x0a, 0x10, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x0c, 0x74, 0x77, - 0x69, 0x74, 0x74, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, - 0x74, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, - 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x65, - 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, 0x05, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, - 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x73, 0x74, 0x49, 0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, + 0x66, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, + 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, + 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, + 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x49, 0x64, 0x22, 0xc3, 0x01, 0x0a, 0x0c, 0x50, 0x6f, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x28, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, + 0x6f, 0x73, 0x74, 0x49, 0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, + 0x0a, 0x0b, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x22, 0x5e, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0xe2, 0xdf, 0x1f, + 0x18, 0x2a, 0x14, 0xe5, 0xb8, 0x96, 0xe5, 0xad, 0x90, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, + 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xfd, 0x02, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, + 0x6f, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, + 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, + 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, + 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x67, 0x72, 0x61, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x5b, 0x0a, 0x09, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x5f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x74, 0x63, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x74, 0x63, 0x22, 0x7a, 0x0a, 0x0c, 0x54, 0x77, 0x69, 0x74, + 0x74, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, + 0x68, 0x6c, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x52, + 0x65, 0x73, 0x65, 0x74, 0x22, 0xb5, 0x06, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x73, 0x55, 0x72, + 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x73, 0x55, 0x72, 0x6c, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, + 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, + 0x65, 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x67, 0x49, 0x64, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x67, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x32, + 0x0a, 0x14, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, + 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x72, 0x65, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, + 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x1c, + 0x69, 0x73, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x47, 0x65, 0x6f, + 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x1c, 0x69, 0x73, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6f, + 0x72, 0x47, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x0c, + 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, + 0x69, 0x74, 0x74, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x74, 0x77, 0x69, 0x74, + 0x74, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, 0x05, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x32, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x70, 0x69, 0x43, + 0x61, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x41, + 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x4c, 0x0a, 0x21, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x21, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, + 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, 0x43, 0x61, + 0x6c, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, + 0x6c, 0x79, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, 0x6f, 0x73, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, + 0x79, 0x50, 0x6f, 0x73, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x10, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x51, 0x75, 0x6f, + 0x74, 0x61, 0x12, 0x32, 0x0a, 0x14, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, + 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x14, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, + 0x73, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x22, 0xb7, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0xe2, 0xdf, + 0x1f, 0x15, 0x2a, 0x11, 0x74, 0x69, 0x74, 0x6c, 0x65, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, + 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x28, + 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, + 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x64, 0x65, + 0x54, 0x6f, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0d, 0x68, 0x69, 0x64, 0x65, 0x54, 0x6f, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, + 0x0a, 0x09, 0x74, 0x6f, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x74, 0x6f, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6f, 0x63, 0x69, + 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, + 0x73, 0x75, 0x62, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x75, 0x62, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0xa5, + 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x0f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xc7, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x17, 0x68, 0x61, 0x73, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x68, 0x61, 0x73, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x1c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1c, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4c, 0x6f, 0x67, 0x42, 0x6f, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x42, 0x6f, 0x6f, 0x6c, 0x12, + 0x24, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x6f, 0x67, 0x49, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, + 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, + 0x73, 0x6f, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, + 0x22, 0x96, 0x02, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x22, + 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x74, + 0x6c, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x12, 0x39, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0c, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, - 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x70, 0x69, - 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x4c, 0x0a, 0x21, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x6e, - 0x74, 0x68, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x21, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x28, - 0x0a, 0x0f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, - 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, - 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x74, - 0x68, 0x6c, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x10, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, - 0x6f, 0x73, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, - 0x12, 0x32, 0x0a, 0x14, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, 0x43, 0x61, - 0x6c, 0x6c, 0x73, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x51, - 0x75, 0x6f, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x22, 0xb7, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0xe2, 0xdf, 0x1f, 0x15, - 0x2a, 0x11, 0x74, 0x69, 0x74, 0x6c, 0x65, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, - 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x64, 0x65, 0x54, 0x6f, - 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, - 0x69, 0x64, 0x65, 0x54, 0x6f, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, - 0x74, 0x6f, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x74, 0x6f, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, - 0x74, 0x65, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, - 0x62, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x75, 0x62, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0xa5, 0x01, 0x0a, - 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x22, 0xc7, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x17, 0x68, 0x61, 0x73, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x68, 0x61, 0x73, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x12, 0x42, 0x0a, 0x1c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, - 0x6f, 0x67, 0x42, 0x6f, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x24, 0x0a, - 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, - 0x49, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, - 0x73, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, - 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x22, 0x96, - 0x02, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x54, 0x43, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x54, + 0x43, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, + 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x5c, 0x0a, 0x0a, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, + 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, + 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xd6, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x31, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, + 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, + 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x45, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xdb, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xdf, 0x1f, 0x1a, + 0x2a, 0x16, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0xe4, 0xb8, 0x8d, 0xe8, + 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x06, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x73, 0x65, + 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x61, 0x73, 0x65, 0x36, 0x34, + 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x12, 0x25, + 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x05, + 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0xa7, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x4a, 0x57, 0x54, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x22, + 0x87, 0x01, 0x0a, 0x0d, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x49, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x69, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x69, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x22, 0xfb, 0x04, 0x0a, 0x0b, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x70, + 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, + 0x6f, 0x73, 0x74, 0x49, 0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, + 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, + 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x65, 0x64, 0x42, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, + 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x72, + 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x73, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, + 0x6c, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, + 0x72, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, + 0x6e, 0x6b, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, + 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x22, 0x8b, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, + 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, + 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x73, + 0x74, 0x44, 0x61, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x61, 0x73, + 0x74, 0x44, 0x61, 0x79, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x74, 0x49, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x70, + 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x4b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, + 0x66, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, + 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, + 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x15, + 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x1c, 0xe2, 0xdf, 0x1f, 0x18, 0x2a, 0x14, 0xe5, 0xb8, 0x96, 0xe5, 0xad, 0x90, 0x49, + 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6c, 0x6c, + 0x50, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x90, 0x03, 0x0a, 0x16, + 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, + 0x12, 0x31, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, + 0x49, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, + 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x70, 0x6f, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x84, + 0x01, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x6f, 0x73, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, + 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x7b, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x20, 0xe2, 0xdf, 0x1f, 0x1c, 0x2a, 0x18, 0xe5, 0xb9, + 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, + 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, + 0x65, 0x79, 0x22, 0xa6, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x70, + 0x6f, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x6f, + 0x73, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, + 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, + 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0xe7, 0x01, 0x0a, 0x12, + 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xe2, 0xdf, 0x1f, 0x16, 0x2a, 0x12, 0xe5, 0xb9, 0xb3, 0xe5, + 0x8f, 0xb0, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, + 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x41, 0x0a, 0x0b, 0x72, 0x65, + 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x1f, 0xe2, 0xdf, 0x1f, 0x1b, 0x2a, 0x17, 0xe6, 0x8e, 0xa5, 0xe6, 0x94, 0xb6, 0xe8, 0x80, 0x85, + 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, + 0x52, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x55, 0x72, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xdb, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x22, 0x96, 0x02, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x74, + 0x65, 0x6d, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0xda, 0x01, 0x0a, + 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xe2, 0xdf, 0x1f, 0x16, 0x2a, 0x12, 0xe5, 0xb9, 0xb3, + 0xe5, 0x8f, 0xb0, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, + 0x01, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x63, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x6e, 0x6c, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x39, 0x0a, 0x11, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x75, 0x72, 0x6c, 0x22, 0x78, 0x0a, 0x14, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x57, + 0x0a, 0x17, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, + 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x22, 0x3f, 0x0a, 0x0f, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x22, 0x96, 0x04, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, + 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x20, + 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x4d, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x72, 0x79, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, + 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x10, 0x72, + 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, + 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0b, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0x57, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x12, 0x43, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x43, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0xe7, 0x02, 0x0a, + 0x13, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x08, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, + 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, + 0x50, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x14, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, + 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xa8, 0x02, 0x0a, 0x12, 0x50, 0x6f, 0x73, 0x74, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0xe2, 0xdf, 0x1f, 0x12, 0x2a, + 0x0e, 0x69, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, + 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x35, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0xe2, 0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, + 0xba, 0x58, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x09, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x2b, 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, + 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, + 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, + 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, + 0x79, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, - 0x12, 0x2d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x54, 0x43, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x54, 0x43, 0x12, - 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, - 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, - 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x73, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x75, - 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x5c, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, - 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xd6, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, - 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, - 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, - 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, - 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x45, - 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x97, 0x03, 0x0a, 0x12, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x4a, 0x57, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x06, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xe2, 0xdf, - 0x1f, 0x16, 0x2a, 0x12, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, - 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x12, 0x3e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xdf, 0x1f, 0x1a, 0x2a, 0x16, 0x70, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, - 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, - 0x12, 0x3e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xdf, 0x1f, 0x1a, 0x2a, 0x16, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, - 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, - 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, - 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x76, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x73, 0x65, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x62, 0x61, 0x73, 0x65, 0x36, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, - 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x12, 0x25, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, - 0xa7, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, - 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1c, 0x0a, - 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x32, 0xab, 0x03, 0x0a, 0x08, 0x41, 0x79, - 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x15, - 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, - 0x07, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, - 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, - 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1e, - 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, - 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1c, - 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, - 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x79, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, - 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, 0x61, 0x72, 0x79, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x9d, 0x01, 0x0a, 0x15, 0x54, + 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x22, 0xb0, 0x01, 0x0a, 0x16, 0x42, + 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x22, 0x85, 0x01, + 0x0a, 0x17, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xa5, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, + 0x49, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x82, 0x01, + 0x0a, 0x16, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, + 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, + 0x72, 0x6c, 0x22, 0x84, 0x01, 0x0a, 0x16, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x89, 0x01, 0x0a, 0x0d, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xbc, 0x05, 0x0a, 0x13, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x41, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, + 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x37, 0x0a, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x12, 0x2f, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x42, + 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x3d, + 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x3d, 0x0a, + 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, + 0x64, 0x49, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x3a, 0x0a, 0x07, + 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, + 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, + 0x75, 0x62, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x79, 0x6f, 0x75, + 0x74, 0x75, 0x62, 0x65, 0x22, 0x5b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0xe2, 0xdf, 0x1f, 0x12, 0x2a, 0x0e, 0x69, 0x64, 0xe4, + 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, + 0x79, 0x22, 0x4f, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x23, 0x0a, 0x11, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xc9, 0x03, 0x0a, 0x10, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2b, + 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, + 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x68, + 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x69, 0x64, + 0x64, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x73, + 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, + 0x64, 0x12, 0x34, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, + 0x41, 0x6c, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0xc4, 0x04, 0x0a, 0x0d, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x43, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6b, + 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x6c, 0x69, 0x6b, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, + 0x6c, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, + 0x6b, 0x54, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22, 0xb4, 0x03, 0x0a, 0x0e, 0x42, + 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, + 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, + 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, + 0x6c, 0x79, 0x54, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, + 0x79, 0x54, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x32, 0x0a, 0x0c, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x88, 0x01, 0x0a, 0x0e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, + 0x6f, 0x6b, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x66, 0x72, + 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x22, 0xac, 0x03, 0x0a, 0x0f, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, + 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, + 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, + 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, + 0x6f, 0x6b, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1c, 0x0a, 0x09, + 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6b, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6b, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x22, + 0x35, 0x0a, 0x0d, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x4d, 0x65, 0x64, 0x69, 0x61, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x66, 0x0a, 0x0c, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, + 0x49, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbe, + 0x03, 0x0a, 0x0f, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4c, 0x69, + 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, + 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, + 0x0a, 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, + 0x6e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x22, + 0x30, 0x0a, 0x0a, 0x52, 0x65, 0x64, 0x64, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x22, 0xfd, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x64, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, + 0x65, 0x64, 0x64, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x75, 0x62, 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x75, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x75, 0x70, 0x73, 0x12, + 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, + 0x72, 0x22, 0x8c, 0x04, 0x0a, 0x0e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x51, 0x75, 0x6f, 0x74, + 0x65, 0x50, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x51, + 0x75, 0x6f, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4f, 0x77, 0x6e, + 0x65, 0x64, 0x42, 0x79, 0x4d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x64, 0x42, 0x79, 0x4d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x07, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, + 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x41, 0x75, + 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0xe6, 0x01, 0x0a, 0x14, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x6f, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, + 0x77, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x77, 0x65, + 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, + 0x77, 0x65, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x69, 0x73, + 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6c, + 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3c, 0x0a, 0x16, 0x54, 0x77, 0x69, + 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x77, + 0x65, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xae, 0x02, 0x0a, 0x0e, 0x54, 0x77, 0x69, 0x74, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x55, 0x72, 0x6c, 0x12, 0x44, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0d, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, + 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa4, 0x05, 0x0a, 0x0e, 0x54, 0x77, 0x69, + 0x74, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x62, + 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, + 0x69, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, + 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x44, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, + 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0d, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4c, 0x0a, + 0x10, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x77, 0x65, 0x65, 0x74, + 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x64, 0x54, 0x77, 0x65, 0x65, 0x74, 0x52, 0x10, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x77, 0x65, 0x65, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, + 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x72, + 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x12, + 0x22, 0x0a, 0x0c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x9c, 0x02, 0x0a, 0x0c, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x72, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x72, 0x6c, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xd0, + 0x02, 0x0a, 0x0e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x72, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x72, + 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, + 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x55, 0x72, 0x6c, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, + 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x07, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x9e, 0x05, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, + 0x61, 0x6d, 0x12, 0x2f, 0x0a, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, + 0x6b, 0x54, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x69, 0x6b, + 0x74, 0x6f, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6c, + 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x18, 0x0a, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, + 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, + 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x35, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, + 0x6f, 0x6f, 0x6b, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x35, + 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, + 0x65, 0x64, 0x49, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x6c, 0x69, 0x6e, + 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x18, + 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x2e, 0x52, 0x65, 0x64, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, + 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x74, 0x77, + 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x32, + 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54, 0x75, + 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, + 0x62, 0x65, 0x22, 0xc4, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0xe2, 0xdf, 0x1f, 0x12, 0x2a, 0x0e, 0x69, + 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2a, 0x0a, + 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x73, 0x0a, 0x17, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, + 0x01, 0x0a, 0x14, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0xcb, 0x02, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, + 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, + 0x6f, 0x6f, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, + 0x6f, 0x6f, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, + 0x18, 0x0a, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x77, 0x69, + 0x74, 0x74, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, + 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, 0xdf, 0x01, + 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x16, 0xe2, 0xdf, 0x1f, 0x12, 0x2a, 0x0e, 0x69, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, + 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x35, 0x0a, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, + 0xe2, 0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0xe4, 0xb8, 0x8d, + 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, + 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, + 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, + 0xae, 0x01, 0x0a, 0x16, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x22, 0xc5, 0x01, 0x0a, 0x13, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, + 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, + 0x0a, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x22, 0xd8, 0x01, 0x0a, 0x14, 0x42, 0x6c, 0x75, + 0x65, 0x73, 0x6b, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, + 0x74, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, + 0x55, 0x72, 0x6c, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x22, 0xc6, 0x01, 0x0a, 0x14, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x22, 0xac, 0x01, 0x0a, + 0x14, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xc1, 0x04, 0x0a, 0x14, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, + 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, + 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x69, + 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x72, 0x79, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, + 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, + 0x6b, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, + 0x79, 0x12, 0x3b, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, + 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x3b, + 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, + 0x65, 0x64, 0x49, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x38, 0x0a, 0x07, 0x74, + 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x74, 0x77, + 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, + 0xb2, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0xe2, 0xdf, 0x1f, 0x18, 0x2a, 0x14, 0xe5, + 0xb8, 0x96, 0xe5, 0xad, 0x90, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, + 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, 0xdf, + 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, 0xb3, + 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, + 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, + 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x4b, 0x65, 0x79, 0x22, 0xee, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x42, 0x79, 0x53, 0x6f, 0x63, 0x69, 0x61, + 0x6c, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xe2, 0xdf, 0x1f, 0x1e, 0x2a, 0x1a, 0x53, 0x6f, + 0x63, 0x69, 0x61, 0x6c, 0x20, 0x50, 0x6f, 0x73, 0x74, 0x20, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, + 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x49, + 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x09, 0x42, 0x2b, 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x73, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, + 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xe6, 0x02, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, + 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, + 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, + 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x1c, + 0x0a, 0x09, 0x70, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x6e, 0x61, 0x70, 0x63, 0x68, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x6e, 0x61, 0x70, 0x63, 0x68, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x77, + 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x77, 0x69, + 0x74, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, 0x86, + 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x09, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x2b, 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, + 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, + 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xee, 0x02, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, + 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x6d, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x67, 0x6d, 0x62, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, + 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x67, 0x72, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x63, 0x68, + 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x63, 0x68, + 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, + 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x18, + 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x13, 0x41, 0x75, 0x74, + 0x6f, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x32, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, + 0xe2, 0xdf, 0x1f, 0x1a, 0x2a, 0x16, 0x70, 0x6f, 0x73, 0x74, 0xe5, 0x86, 0x85, 0xe5, 0xae, 0xb9, + 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x04, + 0x70, 0x6f, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x88, + 0x01, 0x0a, 0x14, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x72, 0x0a, 0x19, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0xe2, 0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x68, + 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, + 0xa9, 0xba, 0x58, 0x01, 0x52, 0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xac, 0x01, + 0x0a, 0x1a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, + 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, + 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x49, 0x0a, 0x15, + 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x76, 0x69, 0x65, 0x77, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x71, 0x0a, 0x18, 0x52, 0x65, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0xe2, 0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x6b, 0x65, 0x79, 0x77, + 0x6f, 0x72, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, + 0x01, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xde, 0x01, 0x0a, 0x19, 0x52, + 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, + 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, + 0x72, 0x64, 0x12, 0x49, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x65, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x15, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0xe2, 0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x6b, 0x65, + 0x79, 0x77, 0x6f, 0x72, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, + 0xba, 0x58, 0x01, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x37, 0x0a, 0x11, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x24, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, + 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x15, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x43, 0x68, 0x69, 0x6c, + 0x64, 0x72, 0x65, 0x6e, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x43, 0x68, 0x69, 0x6c, 0x64, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb5, 0x02, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x72, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, + 0x61, 0x67, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x72, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, + 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, + 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, + 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, + 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x6e, 0x6b, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x6e, 0x6b, + 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc9, + 0x02, 0x0a, 0x16, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x35, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x0d, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x8c, 0x0e, 0x0a, 0x08, 0x41, + 0x79, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x50, 0x6f, 0x73, 0x74, 0x12, + 0x15, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, + 0x0a, 0x07, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, + 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, + 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, + 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, + 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, + 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, 0x12, 0x1c, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, + 0x57, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, + 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, + 0x79, 0x49, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, + 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, + 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x25, + 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, + 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x47, 0x65, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, + 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, + 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x1b, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0c, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x10, 0x47, + 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x12, + 0x21, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, + 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, + 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x42, 0x79, 0x53, 0x6f, 0x63, 0x69, + 0x61, 0x6c, 0x49, 0x44, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, + 0x42, 0x79, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, + 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x63, 0x69, + 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, + 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x12, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x61, + 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x12, 0x23, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x6e, + 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x12, 0x22, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, + 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x23, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, + 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2890,64 +11926,241 @@ func file_pb_ayrshare_proto_rawDescGZIP() []byte { return file_pb_ayrshare_proto_rawDescData } -var file_pb_ayrshare_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_pb_ayrshare_proto_msgTypes = make([]protoimpl.MessageInfo, 107) var file_pb_ayrshare_proto_goTypes = []interface{}{ - (*UserTag)(nil), // 0: aryshare.UserTag - (*InstagramOptions)(nil), // 1: aryshare.InstagramOptions - (*TikTokOptions)(nil), // 2: aryshare.TikTokOptions - (*PostRequest)(nil), // 3: aryshare.PostRequest - (*PostId)(nil), // 4: aryshare.PostId - (*PostItem)(nil), // 5: aryshare.PostItem - (*PostResponse)(nil), // 6: aryshare.PostResponse - (*GetPostRequest)(nil), // 7: aryshare.GetPostRequest - (*GetPostResponse)(nil), // 8: aryshare.GetPostResponse - (*GetUserRequest)(nil), // 9: aryshare.GetUserRequest - (*Timestamp)(nil), // 10: aryshare.Timestamp - (*TwitterUsage)(nil), // 11: aryshare.TwitterUsage - (*DisplayName)(nil), // 12: aryshare.DisplayName - (*GetUserResponse)(nil), // 13: aryshare.GetUserResponse - (*CreateProfileRequest)(nil), // 14: aryshare.CreateProfileRequest - (*CreateProfileResponse)(nil), // 15: aryshare.CreateProfileResponse - (*GetProfilesRequest)(nil), // 16: aryshare.GetProfilesRequest - (*ProfileItem)(nil), // 17: aryshare.ProfileItem - (*Pagination)(nil), // 18: aryshare.Pagination - (*GetProfilesResponse)(nil), // 19: aryshare.GetProfilesResponse - (*Email)(nil), // 20: aryshare.Email - (*GenerateJWTRequest)(nil), // 21: aryshare.GenerateJWTRequest - (*GenerateJWTResponse)(nil), // 22: aryshare.GenerateJWTResponse + (*UserTag)(nil), // 0: aryshare.UserTag + (*InstagramOptions)(nil), // 1: aryshare.InstagramOptions + (*TikTokOptions)(nil), // 2: aryshare.TikTokOptions + (*PostRequest)(nil), // 3: aryshare.PostRequest + (*PostId)(nil), // 4: aryshare.PostId + (*PostItem)(nil), // 5: aryshare.PostItem + (*PostResponse)(nil), // 6: aryshare.PostResponse + (*GetPostRequest)(nil), // 7: aryshare.GetPostRequest + (*GetPostResponse)(nil), // 8: aryshare.GetPostResponse + (*GetUserRequest)(nil), // 9: aryshare.GetUserRequest + (*Timestamp)(nil), // 10: aryshare.Timestamp + (*TwitterUsage)(nil), // 11: aryshare.TwitterUsage + (*DisplayName)(nil), // 12: aryshare.DisplayName + (*GetUserResponse)(nil), // 13: aryshare.GetUserResponse + (*CreateProfileRequest)(nil), // 14: aryshare.CreateProfileRequest + (*CreateProfileResponse)(nil), // 15: aryshare.CreateProfileResponse + (*GetProfilesRequest)(nil), // 16: aryshare.GetProfilesRequest + (*ProfileItem)(nil), // 17: aryshare.ProfileItem + (*Pagination)(nil), // 18: aryshare.Pagination + (*GetProfilesResponse)(nil), // 19: aryshare.GetProfilesResponse + (*Email)(nil), // 20: aryshare.Email + (*GenerateJWTRequest)(nil), // 21: aryshare.GenerateJWTRequest + (*GenerateJWTResponse)(nil), // 22: aryshare.GenerateJWTResponse + (*HistoryPostId)(nil), // 23: aryshare.HistoryPostId + (*HistoryItem)(nil), // 24: aryshare.HistoryItem + (*GetHistoryRequest)(nil), // 25: aryshare.GetHistoryRequest + (*GetHistoryResponse)(nil), // 26: aryshare.GetHistoryResponse + (*GetHistoryByIdRequest)(nil), // 27: aryshare.GetHistoryByIdRequest + (*GetHistoryByIdResponse)(nil), // 28: aryshare.GetHistoryByIdResponse + (*PlatformPost)(nil), // 29: aryshare.PlatformPost + (*GetHistoryByPlatformRequest)(nil), // 30: aryshare.GetHistoryByPlatformRequest + (*GetHistoryByPlatformResponse)(nil), // 31: aryshare.GetHistoryByPlatformResponse + (*SendMessageRequest)(nil), // 32: aryshare.SendMessageRequest + (*MessageItem)(nil), // 33: aryshare.MessageItem + (*SendMessageResponse)(nil), // 34: aryshare.SendMessageResponse + (*GetMessagesRequest)(nil), // 35: aryshare.GetMessagesRequest + (*MessageAttachment)(nil), // 36: aryshare.MessageAttachment + (*MessageSenderDetails)(nil), // 37: aryshare.MessageSenderDetails + (*MessageRecipientDetails)(nil), // 38: aryshare.MessageRecipientDetails + (*MessageReaction)(nil), // 39: aryshare.MessageReaction + (*GetMessagesItem)(nil), // 40: aryshare.GetMessagesItem + (*ConversationParticipant)(nil), // 41: aryshare.ConversationParticipant + (*ConversationDetail)(nil), // 42: aryshare.ConversationDetail + (*GetMessagesResponse)(nil), // 43: aryshare.GetMessagesResponse + (*PostCommentRequest)(nil), // 44: aryshare.PostCommentRequest + (*InstagramCommentResponse)(nil), // 45: aryshare.InstagramCommentResponse + (*TikTokCommentResponse)(nil), // 46: aryshare.TikTokCommentResponse + (*BlueskyCommentResponse)(nil), // 47: aryshare.BlueskyCommentResponse + (*FacebookCommentResponse)(nil), // 48: aryshare.FacebookCommentResponse + (*LinkedInCommentResponse)(nil), // 49: aryshare.LinkedInCommentResponse + (*TwitterCommentResponse)(nil), // 50: aryshare.TwitterCommentResponse + (*YouTubeCommentResponse)(nil), // 51: aryshare.YouTubeCommentResponse + (*PlatformError)(nil), // 52: aryshare.PlatformError + (*PostCommentResponse)(nil), // 53: aryshare.PostCommentResponse + (*GetCommentRequest)(nil), // 54: aryshare.GetCommentRequest + (*InstagramUser)(nil), // 55: aryshare.InstagramUser + (*InstagramUserInfo)(nil), // 56: aryshare.InstagramUserInfo + (*InstagramComment)(nil), // 57: aryshare.InstagramComment + (*TikTokComment)(nil), // 58: aryshare.TikTokComment + (*BlueskyComment)(nil), // 59: aryshare.BlueskyComment + (*FacebookUser)(nil), // 60: aryshare.FacebookUser + (*FacebookParent)(nil), // 61: aryshare.FacebookParent + (*FacebookComment)(nil), // 62: aryshare.FacebookComment + (*LinkedInMedia)(nil), // 63: aryshare.LinkedInMedia + (*LinkedInFrom)(nil), // 64: aryshare.LinkedInFrom + (*LinkedInComment)(nil), // 65: aryshare.LinkedInComment + (*RedditUser)(nil), // 66: aryshare.RedditUser + (*RedditComment)(nil), // 67: aryshare.RedditComment + (*ThreadsComment)(nil), // 68: aryshare.ThreadsComment + (*TwitterPublicMetrics)(nil), // 69: aryshare.TwitterPublicMetrics + (*TwitterReferencedTweet)(nil), // 70: aryshare.TwitterReferencedTweet + (*TwitterReplyTo)(nil), // 71: aryshare.TwitterReplyTo + (*TwitterComment)(nil), // 72: aryshare.TwitterComment + (*YouTubeReply)(nil), // 73: aryshare.YouTubeReply + (*YouTubeComment)(nil), // 74: aryshare.YouTubeComment + (*GetCommentResponse)(nil), // 75: aryshare.GetCommentResponse + (*DeleteCommentRequest)(nil), // 76: aryshare.DeleteCommentRequest + (*InstagramDeleteResponse)(nil), // 77: aryshare.InstagramDeleteResponse + (*TikTokDeleteResponse)(nil), // 78: aryshare.TikTokDeleteResponse + (*DeleteCommentResponse)(nil), // 79: aryshare.DeleteCommentResponse + (*ReplyCommentRequest)(nil), // 80: aryshare.ReplyCommentRequest + (*InstagramReplyResponse)(nil), // 81: aryshare.InstagramReplyResponse + (*TikTokReplyResponse)(nil), // 82: aryshare.TikTokReplyResponse + (*BlueskyReplyResponse)(nil), // 83: aryshare.BlueskyReplyResponse + (*FacebookReplyResponse)(nil), // 84: aryshare.FacebookReplyResponse + (*LinkedInReplyResponse)(nil), // 85: aryshare.LinkedInReplyResponse + (*TwitterReplyResponse)(nil), // 86: aryshare.TwitterReplyResponse + (*YouTubeReplyResponse)(nil), // 87: aryshare.YouTubeReplyResponse + (*ReplyCommentResponse)(nil), // 88: aryshare.ReplyCommentResponse + (*GetPostAnalyticsRequest)(nil), // 89: aryshare.GetPostAnalyticsRequest + (*GetPostAnalyticsBySocialIDRequest)(nil), // 90: aryshare.GetPostAnalyticsBySocialIDRequest + (*GetPostAnalyticsResponse)(nil), // 91: aryshare.GetPostAnalyticsResponse + (*GetSocialAnalyticsRequest)(nil), // 92: aryshare.GetSocialAnalyticsRequest + (*GetSocialAnalyticsResponse)(nil), // 93: aryshare.GetSocialAnalyticsResponse + (*AutoHashtagsRequest)(nil), // 94: aryshare.AutoHashtagsRequest + (*AutoHashtagsResponse)(nil), // 95: aryshare.AutoHashtagsResponse + (*CheckBannedHashtagRequest)(nil), // 96: aryshare.CheckBannedHashtagRequest + (*CheckBannedHashtagResponse)(nil), // 97: aryshare.CheckBannedHashtagResponse + (*HashtagRecommendation)(nil), // 98: aryshare.HashtagRecommendation + (*RecommendHashtagsRequest)(nil), // 99: aryshare.RecommendHashtagsRequest + (*RecommendHashtagsResponse)(nil), // 100: aryshare.RecommendHashtagsResponse + (*SearchHashtagsRequest)(nil), // 101: aryshare.SearchHashtagsRequest + (*SearchHashtagInfo)(nil), // 102: aryshare.SearchHashtagInfo + (*SearchHashtagChild)(nil), // 103: aryshare.SearchHashtagChild + (*SearchHashtagChildren)(nil), // 104: aryshare.SearchHashtagChildren + (*SearchHashtagMedia)(nil), // 105: aryshare.SearchHashtagMedia + (*SearchHashtagsResponse)(nil), // 106: aryshare.SearchHashtagsResponse } var file_pb_ayrshare_proto_depIdxs = []int32{ - 0, // 0: aryshare.InstagramOptions.userTags:type_name -> aryshare.UserTag - 1, // 1: aryshare.PostRequest.instagramOptions:type_name -> aryshare.InstagramOptions - 2, // 2: aryshare.PostRequest.tikTokOptions:type_name -> aryshare.TikTokOptions - 4, // 3: aryshare.PostItem.postIds:type_name -> aryshare.PostId - 5, // 4: aryshare.PostResponse.posts:type_name -> aryshare.PostItem - 4, // 5: aryshare.PostResponse.postIds:type_name -> aryshare.PostId - 4, // 6: aryshare.GetPostResponse.postIds:type_name -> aryshare.PostId - 11, // 7: aryshare.DisplayName.twitterUsage:type_name -> aryshare.TwitterUsage - 10, // 8: aryshare.GetUserResponse.created:type_name -> aryshare.Timestamp - 12, // 9: aryshare.GetUserResponse.displayNames:type_name -> aryshare.DisplayName - 10, // 10: aryshare.ProfileItem.created:type_name -> aryshare.Timestamp - 17, // 11: aryshare.GetProfilesResponse.profiles:type_name -> aryshare.ProfileItem - 18, // 12: aryshare.GetProfilesResponse.pagination:type_name -> aryshare.Pagination - 20, // 13: aryshare.GenerateJWTRequest.email:type_name -> aryshare.Email - 3, // 14: aryshare.Ayrshare.Post:input_type -> aryshare.PostRequest - 7, // 15: aryshare.Ayrshare.GetPost:input_type -> aryshare.GetPostRequest - 9, // 16: aryshare.Ayrshare.GetUser:input_type -> aryshare.GetUserRequest - 14, // 17: aryshare.Ayrshare.CreateProfile:input_type -> aryshare.CreateProfileRequest - 16, // 18: aryshare.Ayrshare.GetProfiles:input_type -> aryshare.GetProfilesRequest - 21, // 19: aryshare.Ayrshare.GenerateJWT:input_type -> aryshare.GenerateJWTRequest - 6, // 20: aryshare.Ayrshare.Post:output_type -> aryshare.PostResponse - 8, // 21: aryshare.Ayrshare.GetPost:output_type -> aryshare.GetPostResponse - 13, // 22: aryshare.Ayrshare.GetUser:output_type -> aryshare.GetUserResponse - 15, // 23: aryshare.Ayrshare.CreateProfile:output_type -> aryshare.CreateProfileResponse - 19, // 24: aryshare.Ayrshare.GetProfiles:output_type -> aryshare.GetProfilesResponse - 22, // 25: aryshare.Ayrshare.GenerateJWT:output_type -> aryshare.GenerateJWTResponse - 20, // [20:26] is the sub-list for method output_type - 14, // [14:20] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name + 0, // 0: aryshare.InstagramOptions.userTags:type_name -> aryshare.UserTag + 1, // 1: aryshare.PostRequest.instagramOptions:type_name -> aryshare.InstagramOptions + 2, // 2: aryshare.PostRequest.tikTokOptions:type_name -> aryshare.TikTokOptions + 4, // 3: aryshare.PostItem.postIds:type_name -> aryshare.PostId + 5, // 4: aryshare.PostResponse.posts:type_name -> aryshare.PostItem + 4, // 5: aryshare.PostResponse.postIds:type_name -> aryshare.PostId + 4, // 6: aryshare.GetPostResponse.postIds:type_name -> aryshare.PostId + 11, // 7: aryshare.DisplayName.twitterUsage:type_name -> aryshare.TwitterUsage + 10, // 8: aryshare.GetUserResponse.created:type_name -> aryshare.Timestamp + 12, // 9: aryshare.GetUserResponse.displayNames:type_name -> aryshare.DisplayName + 10, // 10: aryshare.ProfileItem.created:type_name -> aryshare.Timestamp + 17, // 11: aryshare.GetProfilesResponse.profiles:type_name -> aryshare.ProfileItem + 18, // 12: aryshare.GetProfilesResponse.pagination:type_name -> aryshare.Pagination + 20, // 13: aryshare.GenerateJWTRequest.email:type_name -> aryshare.Email + 23, // 14: aryshare.HistoryItem.postIds:type_name -> aryshare.HistoryPostId + 10, // 15: aryshare.HistoryItem.scheduleDate:type_name -> aryshare.Timestamp + 24, // 16: aryshare.GetHistoryResponse.history:type_name -> aryshare.HistoryItem + 23, // 17: aryshare.GetHistoryByIdResponse.postIds:type_name -> aryshare.HistoryPostId + 10, // 18: aryshare.GetHistoryByIdResponse.scheduleDate:type_name -> aryshare.Timestamp + 29, // 19: aryshare.GetHistoryByPlatformResponse.posts:type_name -> aryshare.PlatformPost + 33, // 20: aryshare.SendMessageResponse.messages:type_name -> aryshare.MessageItem + 37, // 21: aryshare.GetMessagesItem.senderDetails:type_name -> aryshare.MessageSenderDetails + 38, // 22: aryshare.GetMessagesItem.recipientDetails:type_name -> aryshare.MessageRecipientDetails + 36, // 23: aryshare.GetMessagesItem.attachments:type_name -> aryshare.MessageAttachment + 39, // 24: aryshare.GetMessagesItem.reactions:type_name -> aryshare.MessageReaction + 41, // 25: aryshare.ConversationDetail.participant:type_name -> aryshare.ConversationParticipant + 40, // 26: aryshare.GetMessagesResponse.messages:type_name -> aryshare.GetMessagesItem + 42, // 27: aryshare.GetMessagesResponse.conversationsDetails:type_name -> aryshare.ConversationDetail + 45, // 28: aryshare.PostCommentResponse.instagram:type_name -> aryshare.InstagramCommentResponse + 46, // 29: aryshare.PostCommentResponse.tiktok:type_name -> aryshare.TikTokCommentResponse + 52, // 30: aryshare.PostCommentResponse.errors:type_name -> aryshare.PlatformError + 47, // 31: aryshare.PostCommentResponse.bluesky:type_name -> aryshare.BlueskyCommentResponse + 48, // 32: aryshare.PostCommentResponse.facebook:type_name -> aryshare.FacebookCommentResponse + 49, // 33: aryshare.PostCommentResponse.linkedin:type_name -> aryshare.LinkedInCommentResponse + 50, // 34: aryshare.PostCommentResponse.twitter:type_name -> aryshare.TwitterCommentResponse + 51, // 35: aryshare.PostCommentResponse.youtube:type_name -> aryshare.YouTubeCommentResponse + 55, // 36: aryshare.InstagramComment.from:type_name -> aryshare.InstagramUser + 57, // 37: aryshare.InstagramComment.replies:type_name -> aryshare.InstagramComment + 56, // 38: aryshare.InstagramComment.user:type_name -> aryshare.InstagramUserInfo + 58, // 39: aryshare.TikTokComment.replies:type_name -> aryshare.TikTokComment + 59, // 40: aryshare.BlueskyComment.replies:type_name -> aryshare.BlueskyComment + 60, // 41: aryshare.FacebookParent.from:type_name -> aryshare.FacebookUser + 60, // 42: aryshare.FacebookComment.from:type_name -> aryshare.FacebookUser + 61, // 43: aryshare.FacebookComment.parent:type_name -> aryshare.FacebookParent + 62, // 44: aryshare.FacebookComment.replies:type_name -> aryshare.FacebookComment + 64, // 45: aryshare.LinkedInComment.from:type_name -> aryshare.LinkedInFrom + 63, // 46: aryshare.LinkedInComment.media:type_name -> aryshare.LinkedInMedia + 66, // 47: aryshare.RedditComment.from:type_name -> aryshare.RedditUser + 68, // 48: aryshare.ThreadsComment.replies:type_name -> aryshare.ThreadsComment + 69, // 49: aryshare.TwitterReplyTo.publicMetrics:type_name -> aryshare.TwitterPublicMetrics + 69, // 50: aryshare.TwitterComment.publicMetrics:type_name -> aryshare.TwitterPublicMetrics + 70, // 51: aryshare.TwitterComment.referencedTweets:type_name -> aryshare.TwitterReferencedTweet + 71, // 52: aryshare.TwitterComment.replyTo:type_name -> aryshare.TwitterReplyTo + 73, // 53: aryshare.YouTubeComment.replies:type_name -> aryshare.YouTubeReply + 57, // 54: aryshare.GetCommentResponse.instagram:type_name -> aryshare.InstagramComment + 58, // 55: aryshare.GetCommentResponse.tiktok:type_name -> aryshare.TikTokComment + 59, // 56: aryshare.GetCommentResponse.bluesky:type_name -> aryshare.BlueskyComment + 62, // 57: aryshare.GetCommentResponse.facebook:type_name -> aryshare.FacebookComment + 65, // 58: aryshare.GetCommentResponse.linkedin:type_name -> aryshare.LinkedInComment + 67, // 59: aryshare.GetCommentResponse.reddit:type_name -> aryshare.RedditComment + 68, // 60: aryshare.GetCommentResponse.threads:type_name -> aryshare.ThreadsComment + 72, // 61: aryshare.GetCommentResponse.twitter:type_name -> aryshare.TwitterComment + 74, // 62: aryshare.GetCommentResponse.youtube:type_name -> aryshare.YouTubeComment + 81, // 63: aryshare.ReplyCommentResponse.instagram:type_name -> aryshare.InstagramReplyResponse + 82, // 64: aryshare.ReplyCommentResponse.tiktok:type_name -> aryshare.TikTokReplyResponse + 83, // 65: aryshare.ReplyCommentResponse.bluesky:type_name -> aryshare.BlueskyReplyResponse + 84, // 66: aryshare.ReplyCommentResponse.facebook:type_name -> aryshare.FacebookReplyResponse + 85, // 67: aryshare.ReplyCommentResponse.linkedin:type_name -> aryshare.LinkedInReplyResponse + 86, // 68: aryshare.ReplyCommentResponse.twitter:type_name -> aryshare.TwitterReplyResponse + 87, // 69: aryshare.ReplyCommentResponse.youtube:type_name -> aryshare.YouTubeReplyResponse + 98, // 70: aryshare.RecommendHashtagsResponse.recommendations:type_name -> aryshare.HashtagRecommendation + 103, // 71: aryshare.SearchHashtagChildren.data:type_name -> aryshare.SearchHashtagChild + 104, // 72: aryshare.SearchHashtagMedia.children:type_name -> aryshare.SearchHashtagChildren + 102, // 73: aryshare.SearchHashtagsResponse.hashtag:type_name -> aryshare.SearchHashtagInfo + 105, // 74: aryshare.SearchHashtagsResponse.searchResults:type_name -> aryshare.SearchHashtagMedia + 3, // 75: aryshare.Ayrshare.Post:input_type -> aryshare.PostRequest + 7, // 76: aryshare.Ayrshare.GetPost:input_type -> aryshare.GetPostRequest + 9, // 77: aryshare.Ayrshare.GetUser:input_type -> aryshare.GetUserRequest + 14, // 78: aryshare.Ayrshare.CreateProfile:input_type -> aryshare.CreateProfileRequest + 16, // 79: aryshare.Ayrshare.GetProfiles:input_type -> aryshare.GetProfilesRequest + 21, // 80: aryshare.Ayrshare.GenerateJWT:input_type -> aryshare.GenerateJWTRequest + 25, // 81: aryshare.Ayrshare.GetHistory:input_type -> aryshare.GetHistoryRequest + 27, // 82: aryshare.Ayrshare.GetHistoryById:input_type -> aryshare.GetHistoryByIdRequest + 30, // 83: aryshare.Ayrshare.GetHistoryByPlatform:input_type -> aryshare.GetHistoryByPlatformRequest + 32, // 84: aryshare.Ayrshare.SendMessage:input_type -> aryshare.SendMessageRequest + 35, // 85: aryshare.Ayrshare.GetMessages:input_type -> aryshare.GetMessagesRequest + 44, // 86: aryshare.Ayrshare.PostComment:input_type -> aryshare.PostCommentRequest + 54, // 87: aryshare.Ayrshare.GetComment:input_type -> aryshare.GetCommentRequest + 76, // 88: aryshare.Ayrshare.DeleteComment:input_type -> aryshare.DeleteCommentRequest + 80, // 89: aryshare.Ayrshare.ReplyComment:input_type -> aryshare.ReplyCommentRequest + 89, // 90: aryshare.Ayrshare.GetPostAnalytics:input_type -> aryshare.GetPostAnalyticsRequest + 90, // 91: aryshare.Ayrshare.GetPostAnalyticsBySocialID:input_type -> aryshare.GetPostAnalyticsBySocialIDRequest + 92, // 92: aryshare.Ayrshare.GetSocialAnalytics:input_type -> aryshare.GetSocialAnalyticsRequest + 94, // 93: aryshare.Ayrshare.AutoHashtags:input_type -> aryshare.AutoHashtagsRequest + 96, // 94: aryshare.Ayrshare.CheckBannedHashtag:input_type -> aryshare.CheckBannedHashtagRequest + 99, // 95: aryshare.Ayrshare.RecommendHashtags:input_type -> aryshare.RecommendHashtagsRequest + 101, // 96: aryshare.Ayrshare.SearchHashtags:input_type -> aryshare.SearchHashtagsRequest + 6, // 97: aryshare.Ayrshare.Post:output_type -> aryshare.PostResponse + 8, // 98: aryshare.Ayrshare.GetPost:output_type -> aryshare.GetPostResponse + 13, // 99: aryshare.Ayrshare.GetUser:output_type -> aryshare.GetUserResponse + 15, // 100: aryshare.Ayrshare.CreateProfile:output_type -> aryshare.CreateProfileResponse + 19, // 101: aryshare.Ayrshare.GetProfiles:output_type -> aryshare.GetProfilesResponse + 22, // 102: aryshare.Ayrshare.GenerateJWT:output_type -> aryshare.GenerateJWTResponse + 26, // 103: aryshare.Ayrshare.GetHistory:output_type -> aryshare.GetHistoryResponse + 28, // 104: aryshare.Ayrshare.GetHistoryById:output_type -> aryshare.GetHistoryByIdResponse + 31, // 105: aryshare.Ayrshare.GetHistoryByPlatform:output_type -> aryshare.GetHistoryByPlatformResponse + 34, // 106: aryshare.Ayrshare.SendMessage:output_type -> aryshare.SendMessageResponse + 43, // 107: aryshare.Ayrshare.GetMessages:output_type -> aryshare.GetMessagesResponse + 53, // 108: aryshare.Ayrshare.PostComment:output_type -> aryshare.PostCommentResponse + 75, // 109: aryshare.Ayrshare.GetComment:output_type -> aryshare.GetCommentResponse + 79, // 110: aryshare.Ayrshare.DeleteComment:output_type -> aryshare.DeleteCommentResponse + 88, // 111: aryshare.Ayrshare.ReplyComment:output_type -> aryshare.ReplyCommentResponse + 91, // 112: aryshare.Ayrshare.GetPostAnalytics:output_type -> aryshare.GetPostAnalyticsResponse + 91, // 113: aryshare.Ayrshare.GetPostAnalyticsBySocialID:output_type -> aryshare.GetPostAnalyticsResponse + 93, // 114: aryshare.Ayrshare.GetSocialAnalytics:output_type -> aryshare.GetSocialAnalyticsResponse + 95, // 115: aryshare.Ayrshare.AutoHashtags:output_type -> aryshare.AutoHashtagsResponse + 97, // 116: aryshare.Ayrshare.CheckBannedHashtag:output_type -> aryshare.CheckBannedHashtagResponse + 100, // 117: aryshare.Ayrshare.RecommendHashtags:output_type -> aryshare.RecommendHashtagsResponse + 106, // 118: aryshare.Ayrshare.SearchHashtags:output_type -> aryshare.SearchHashtagsResponse + 97, // [97:119] is the sub-list for method output_type + 75, // [75:97] is the sub-list for method input_type + 75, // [75:75] is the sub-list for extension type_name + 75, // [75:75] is the sub-list for extension extendee + 0, // [0:75] is the sub-list for field type_name } func init() { file_pb_ayrshare_proto_init() } @@ -3232,6 +12445,1014 @@ func file_pb_ayrshare_proto_init() { return nil } } + file_pb_ayrshare_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HistoryPostId); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HistoryItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHistoryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHistoryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHistoryByIdRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHistoryByIdResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlatformPost); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHistoryByPlatformRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHistoryByPlatformResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendMessageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendMessageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMessagesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageAttachment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageSenderDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageRecipientDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageReaction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMessagesItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConversationParticipant); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConversationDetail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMessagesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PostCommentRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InstagramCommentResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TikTokCommentResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlueskyCommentResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FacebookCommentResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LinkedInCommentResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TwitterCommentResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*YouTubeCommentResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlatformError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PostCommentResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCommentRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InstagramUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InstagramUserInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InstagramComment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TikTokComment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlueskyComment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FacebookUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FacebookParent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FacebookComment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LinkedInMedia); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LinkedInFrom); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LinkedInComment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedditUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedditComment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ThreadsComment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TwitterPublicMetrics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TwitterReferencedTweet); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TwitterReplyTo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TwitterComment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*YouTubeReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*YouTubeComment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCommentResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteCommentRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InstagramDeleteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TikTokDeleteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteCommentResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReplyCommentRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InstagramReplyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TikTokReplyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlueskyReplyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FacebookReplyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LinkedInReplyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TwitterReplyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*YouTubeReplyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReplyCommentResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPostAnalyticsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPostAnalyticsBySocialIDRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPostAnalyticsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSocialAnalyticsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSocialAnalyticsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AutoHashtagsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AutoHashtagsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckBannedHashtagRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckBannedHashtagResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HashtagRecommendation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecommendHashtagsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecommendHashtagsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchHashtagsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchHashtagInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchHashtagChild); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchHashtagChildren); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchHashtagMedia); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_ayrshare_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchHashtagsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_pb_ayrshare_proto_msgTypes[16].OneofWrappers = []interface{}{ (*GetProfilesRequest_ActionLogBool)(nil), @@ -3243,7 +13464,7 @@ func file_pb_ayrshare_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_ayrshare_proto_rawDesc, NumEnums: 0, - NumMessages: 23, + NumMessages: 107, NumExtensions: 0, NumServices: 1, }, diff --git a/api/aryshare/ayrshare.validator.pb.go b/api/aryshare/ayrshare.validator.pb.go index 6cc7e5a..2722c62 100644 --- a/api/aryshare/ayrshare.validator.pb.go +++ b/api/aryshare/ayrshare.validator.pb.go @@ -6,11 +6,10 @@ package aryshare import ( fmt "fmt" math "math" - proto "github.com/golang/protobuf/proto" + _ "google.golang.org/protobuf/types/descriptorpb" _ "github.com/mwitkow/go-proto-validators" github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators" - _ "google.golang.org/protobuf/types/descriptorpb" ) // Reference imports to suppress errors if they are not otherwise used. @@ -41,6 +40,11 @@ func (this *PostRequest) Validate() error { if len(this.Platforms) < 1 { return github_com_mwitkow_go_proto_validators.FieldError("Platforms", fmt.Errorf(`platforms平台列表不能为空`)) } + for _, item := range this.Platforms { + if item == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Platforms", fmt.Errorf(`platforms平台列表不能为空`)) + } + } if this.InstagramOptions != nil { if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.InstagramOptions); err != nil { return github_com_mwitkow_go_proto_validators.FieldError("InstagramOptions", err) @@ -173,12 +177,6 @@ func (this *Email) Validate() error { return nil } func (this *GenerateJWTRequest) Validate() error { - if this.Domain == "" { - return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`domain不能为空`)) - } - if this.PrivateKey == "" { - return github_com_mwitkow_go_proto_validators.FieldError("PrivateKey", fmt.Errorf(`privateKey不能为空`)) - } if this.ProfileKey == "" { return github_com_mwitkow_go_proto_validators.FieldError("ProfileKey", fmt.Errorf(`profileKey不能为空`)) } @@ -192,3 +190,711 @@ func (this *GenerateJWTRequest) Validate() error { func (this *GenerateJWTResponse) Validate() error { return nil } +func (this *HistoryPostId) Validate() error { + return nil +} +func (this *HistoryItem) Validate() error { + for _, item := range this.PostIds { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("PostIds", err) + } + } + } + if this.ScheduleDate != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ScheduleDate); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ScheduleDate", err) + } + } + return nil +} +func (this *GetHistoryRequest) Validate() error { + return nil +} +func (this *GetHistoryResponse) Validate() error { + for _, item := range this.History { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("History", err) + } + } + } + return nil +} +func (this *GetHistoryByIdRequest) Validate() error { + if this.Id == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Id", fmt.Errorf(`帖子ID不能为空`)) + } + return nil +} +func (this *GetHistoryByIdResponse) Validate() error { + for _, item := range this.PostIds { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("PostIds", err) + } + } + } + if this.ScheduleDate != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ScheduleDate); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ScheduleDate", err) + } + } + return nil +} +func (this *PlatformPost) Validate() error { + return nil +} +func (this *GetHistoryByPlatformRequest) Validate() error { + if this.Platform == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Platform", fmt.Errorf(`平台名称不能为空`)) + } + return nil +} +func (this *GetHistoryByPlatformResponse) Validate() error { + for _, item := range this.Posts { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Posts", err) + } + } + } + return nil +} +func (this *SendMessageRequest) Validate() error { + if this.Platform == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Platform", fmt.Errorf(`平台不能为空`)) + } + if this.RecipientId == "" { + return github_com_mwitkow_go_proto_validators.FieldError("RecipientId", fmt.Errorf(`接收者ID不能为空`)) + } + return nil +} +func (this *MessageItem) Validate() error { + return nil +} +func (this *SendMessageResponse) Validate() error { + for _, item := range this.Messages { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Messages", err) + } + } + } + return nil +} +func (this *GetMessagesRequest) Validate() error { + if this.Platform == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Platform", fmt.Errorf(`平台不能为空`)) + } + return nil +} +func (this *MessageAttachment) Validate() error { + return nil +} +func (this *MessageSenderDetails) Validate() error { + return nil +} +func (this *MessageRecipientDetails) Validate() error { + return nil +} +func (this *MessageReaction) Validate() error { + return nil +} +func (this *GetMessagesItem) Validate() error { + if this.SenderDetails != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.SenderDetails); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("SenderDetails", err) + } + } + if this.RecipientDetails != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.RecipientDetails); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("RecipientDetails", err) + } + } + for _, item := range this.Attachments { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Attachments", err) + } + } + } + for _, item := range this.Reactions { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Reactions", err) + } + } + } + return nil +} +func (this *ConversationParticipant) Validate() error { + return nil +} +func (this *ConversationDetail) Validate() error { + if this.Participant != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Participant); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Participant", err) + } + } + return nil +} +func (this *GetMessagesResponse) Validate() error { + for _, item := range this.Messages { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Messages", err) + } + } + } + for _, item := range this.ConversationsDetails { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ConversationsDetails", err) + } + } + } + return nil +} +func (this *PostCommentRequest) Validate() error { + if this.Id == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Id", fmt.Errorf(`id不能为空`)) + } + if this.Comment == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Comment", fmt.Errorf(`comment不能为空`)) + } + if len(this.Platforms) < 1 { + return github_com_mwitkow_go_proto_validators.FieldError("Platforms", fmt.Errorf(`platforms平台列表不能为空`)) + } + for _, item := range this.Platforms { + if item == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Platforms", fmt.Errorf(`platforms平台列表不能为空`)) + } + } + return nil +} +func (this *InstagramCommentResponse) Validate() error { + return nil +} +func (this *TikTokCommentResponse) Validate() error { + return nil +} +func (this *BlueskyCommentResponse) Validate() error { + return nil +} +func (this *FacebookCommentResponse) Validate() error { + return nil +} +func (this *LinkedInCommentResponse) Validate() error { + return nil +} +func (this *TwitterCommentResponse) Validate() error { + return nil +} +func (this *YouTubeCommentResponse) Validate() error { + return nil +} +func (this *PlatformError) Validate() error { + return nil +} +func (this *PostCommentResponse) Validate() error { + if this.Instagram != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Instagram); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Instagram", err) + } + } + if this.Tiktok != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Tiktok); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Tiktok", err) + } + } + for _, item := range this.Errors { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Errors", err) + } + } + } + if this.Bluesky != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Bluesky); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Bluesky", err) + } + } + if this.Facebook != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Facebook); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Facebook", err) + } + } + if this.Linkedin != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Linkedin); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Linkedin", err) + } + } + if this.Twitter != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Twitter); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Twitter", err) + } + } + if this.Youtube != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Youtube); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Youtube", err) + } + } + return nil +} +func (this *GetCommentRequest) Validate() error { + if this.Id == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Id", fmt.Errorf(`id不能为空`)) + } + return nil +} +func (this *InstagramUser) Validate() error { + return nil +} +func (this *InstagramUserInfo) Validate() error { + return nil +} +func (this *InstagramComment) Validate() error { + if this.From != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.From); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("From", err) + } + } + for _, item := range this.Replies { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Replies", err) + } + } + } + if this.User != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.User); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("User", err) + } + } + return nil +} +func (this *TikTokComment) Validate() error { + for _, item := range this.Replies { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Replies", err) + } + } + } + return nil +} +func (this *BlueskyComment) Validate() error { + for _, item := range this.Replies { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Replies", err) + } + } + } + return nil +} +func (this *FacebookUser) Validate() error { + return nil +} +func (this *FacebookParent) Validate() error { + if this.From != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.From); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("From", err) + } + } + return nil +} +func (this *FacebookComment) Validate() error { + if this.From != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.From); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("From", err) + } + } + if this.Parent != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Parent); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Parent", err) + } + } + for _, item := range this.Replies { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Replies", err) + } + } + } + return nil +} +func (this *LinkedInMedia) Validate() error { + return nil +} +func (this *LinkedInFrom) Validate() error { + return nil +} +func (this *LinkedInComment) Validate() error { + if this.From != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.From); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("From", err) + } + } + for _, item := range this.Media { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Media", err) + } + } + } + return nil +} +func (this *RedditUser) Validate() error { + return nil +} +func (this *RedditComment) Validate() error { + if this.From != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.From); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("From", err) + } + } + return nil +} +func (this *ThreadsComment) Validate() error { + for _, item := range this.Replies { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Replies", err) + } + } + } + return nil +} +func (this *TwitterPublicMetrics) Validate() error { + return nil +} +func (this *TwitterReferencedTweet) Validate() error { + return nil +} +func (this *TwitterReplyTo) Validate() error { + if this.PublicMetrics != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.PublicMetrics); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("PublicMetrics", err) + } + } + return nil +} +func (this *TwitterComment) Validate() error { + if this.PublicMetrics != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.PublicMetrics); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("PublicMetrics", err) + } + } + for _, item := range this.ReferencedTweets { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ReferencedTweets", err) + } + } + } + if this.ReplyTo != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ReplyTo); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ReplyTo", err) + } + } + return nil +} +func (this *YouTubeReply) Validate() error { + return nil +} +func (this *YouTubeComment) Validate() error { + for _, item := range this.Replies { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Replies", err) + } + } + } + return nil +} +func (this *GetCommentResponse) Validate() error { + for _, item := range this.Instagram { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Instagram", err) + } + } + } + for _, item := range this.Tiktok { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Tiktok", err) + } + } + } + for _, item := range this.Bluesky { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Bluesky", err) + } + } + } + for _, item := range this.Facebook { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Facebook", err) + } + } + } + for _, item := range this.Linkedin { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Linkedin", err) + } + } + } + for _, item := range this.Reddit { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Reddit", err) + } + } + } + for _, item := range this.Threads { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Threads", err) + } + } + } + for _, item := range this.Twitter { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Twitter", err) + } + } + } + for _, item := range this.Youtube { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Youtube", err) + } + } + } + return nil +} +func (this *DeleteCommentRequest) Validate() error { + if this.Id == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Id", fmt.Errorf(`id不能为空`)) + } + return nil +} +func (this *InstagramDeleteResponse) Validate() error { + return nil +} +func (this *TikTokDeleteResponse) Validate() error { + return nil +} +func (this *DeleteCommentResponse) Validate() error { + return nil +} +func (this *ReplyCommentRequest) Validate() error { + if this.Id == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Id", fmt.Errorf(`id不能为空`)) + } + if this.Comment == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Comment", fmt.Errorf(`comment不能为空`)) + } + if len(this.Platforms) < 1 { + return github_com_mwitkow_go_proto_validators.FieldError("Platforms", fmt.Errorf(`platforms平台列表不能为空`)) + } + for _, item := range this.Platforms { + if item == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Platforms", fmt.Errorf(`platforms平台列表不能为空`)) + } + } + return nil +} +func (this *InstagramReplyResponse) Validate() error { + return nil +} +func (this *TikTokReplyResponse) Validate() error { + return nil +} +func (this *BlueskyReplyResponse) Validate() error { + return nil +} +func (this *FacebookReplyResponse) Validate() error { + return nil +} +func (this *LinkedInReplyResponse) Validate() error { + return nil +} +func (this *TwitterReplyResponse) Validate() error { + return nil +} +func (this *YouTubeReplyResponse) Validate() error { + return nil +} +func (this *ReplyCommentResponse) Validate() error { + if this.Instagram != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Instagram); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Instagram", err) + } + } + if this.Tiktok != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Tiktok); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Tiktok", err) + } + } + if this.Bluesky != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Bluesky); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Bluesky", err) + } + } + if this.Facebook != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Facebook); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Facebook", err) + } + } + if this.Linkedin != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Linkedin); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Linkedin", err) + } + } + if this.Twitter != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Twitter); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Twitter", err) + } + } + if this.Youtube != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Youtube); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Youtube", err) + } + } + return nil +} +func (this *GetPostAnalyticsRequest) Validate() error { + if this.Id == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Id", fmt.Errorf(`帖子ID不能为空`)) + } + if len(this.Platforms) < 1 { + return github_com_mwitkow_go_proto_validators.FieldError("Platforms", fmt.Errorf(`platforms平台列表不能为空`)) + } + for _, item := range this.Platforms { + if item == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Platforms", fmt.Errorf(`platforms平台列表不能为空`)) + } + } + return nil +} +func (this *GetPostAnalyticsBySocialIDRequest) Validate() error { + if this.Id == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Id", fmt.Errorf(`Social Post ID不能为空`)) + } + if len(this.Platforms) < 1 { + return github_com_mwitkow_go_proto_validators.FieldError("Platforms", fmt.Errorf(`platforms平台列表不能为空`)) + } + for _, item := range this.Platforms { + if item == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Platforms", fmt.Errorf(`platforms平台列表不能为空`)) + } + } + return nil +} +func (this *GetPostAnalyticsResponse) Validate() error { + return nil +} +func (this *GetSocialAnalyticsRequest) Validate() error { + if len(this.Platforms) < 1 { + return github_com_mwitkow_go_proto_validators.FieldError("Platforms", fmt.Errorf(`platforms平台列表不能为空`)) + } + for _, item := range this.Platforms { + if item == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Platforms", fmt.Errorf(`platforms平台列表不能为空`)) + } + } + return nil +} +func (this *GetSocialAnalyticsResponse) Validate() error { + return nil +} +func (this *AutoHashtagsRequest) Validate() error { + if this.Post == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Post", fmt.Errorf(`post内容不能为空`)) + } + return nil +} +func (this *AutoHashtagsResponse) Validate() error { + return nil +} +func (this *CheckBannedHashtagRequest) Validate() error { + if this.Hashtag == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Hashtag", fmt.Errorf(`hashtag不能为空`)) + } + return nil +} +func (this *CheckBannedHashtagResponse) Validate() error { + return nil +} +func (this *HashtagRecommendation) Validate() error { + return nil +} +func (this *RecommendHashtagsRequest) Validate() error { + if this.Keyword == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Keyword", fmt.Errorf(`keyword不能为空`)) + } + return nil +} +func (this *RecommendHashtagsResponse) Validate() error { + for _, item := range this.Recommendations { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Recommendations", err) + } + } + } + return nil +} +func (this *SearchHashtagsRequest) Validate() error { + if this.Keyword == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Keyword", fmt.Errorf(`keyword不能为空`)) + } + return nil +} +func (this *SearchHashtagInfo) Validate() error { + return nil +} +func (this *SearchHashtagChild) Validate() error { + return nil +} +func (this *SearchHashtagChildren) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} +func (this *SearchHashtagMedia) Validate() error { + if this.Children != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Children); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Children", err) + } + } + return nil +} +func (this *SearchHashtagsResponse) Validate() error { + if this.Hashtag != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Hashtag); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Hashtag", err) + } + } + for _, item := range this.SearchResults { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("SearchResults", err) + } + } + } + return nil +} diff --git a/api/aryshare/ayrshare_triple.pb.go b/api/aryshare/ayrshare_triple.pb.go index 456bf96..6c186f4 100644 --- a/api/aryshare/ayrshare_triple.pb.go +++ b/api/aryshare/ayrshare_triple.pb.go @@ -37,6 +37,27 @@ type AyrshareClient interface { CreateProfile(ctx context.Context, in *CreateProfileRequest, opts ...grpc_go.CallOption) (*CreateProfileResponse, common.ErrorWithAttachment) GetProfiles(ctx context.Context, in *GetProfilesRequest, opts ...grpc_go.CallOption) (*GetProfilesResponse, common.ErrorWithAttachment) GenerateJWT(ctx context.Context, in *GenerateJWTRequest, opts ...grpc_go.CallOption) (*GenerateJWTResponse, common.ErrorWithAttachment) + // 历史记录相关 api + GetHistory(ctx context.Context, in *GetHistoryRequest, opts ...grpc_go.CallOption) (*GetHistoryResponse, common.ErrorWithAttachment) + GetHistoryById(ctx context.Context, in *GetHistoryByIdRequest, opts ...grpc_go.CallOption) (*GetHistoryByIdResponse, common.ErrorWithAttachment) + GetHistoryByPlatform(ctx context.Context, in *GetHistoryByPlatformRequest, opts ...grpc_go.CallOption) (*GetHistoryByPlatformResponse, common.ErrorWithAttachment) + // 消息相关 api + SendMessage(ctx context.Context, in *SendMessageRequest, opts ...grpc_go.CallOption) (*SendMessageResponse, common.ErrorWithAttachment) + GetMessages(ctx context.Context, in *GetMessagesRequest, opts ...grpc_go.CallOption) (*GetMessagesResponse, common.ErrorWithAttachment) + // 评论相关 api + PostComment(ctx context.Context, in *PostCommentRequest, opts ...grpc_go.CallOption) (*PostCommentResponse, common.ErrorWithAttachment) + GetComment(ctx context.Context, in *GetCommentRequest, opts ...grpc_go.CallOption) (*GetCommentResponse, common.ErrorWithAttachment) + DeleteComment(ctx context.Context, in *DeleteCommentRequest, opts ...grpc_go.CallOption) (*DeleteCommentResponse, common.ErrorWithAttachment) + ReplyComment(ctx context.Context, in *ReplyCommentRequest, opts ...grpc_go.CallOption) (*ReplyCommentResponse, common.ErrorWithAttachment) + // 分析相关 api + GetPostAnalytics(ctx context.Context, in *GetPostAnalyticsRequest, opts ...grpc_go.CallOption) (*GetPostAnalyticsResponse, common.ErrorWithAttachment) + GetPostAnalyticsBySocialID(ctx context.Context, in *GetPostAnalyticsBySocialIDRequest, opts ...grpc_go.CallOption) (*GetPostAnalyticsResponse, common.ErrorWithAttachment) + GetSocialAnalytics(ctx context.Context, in *GetSocialAnalyticsRequest, opts ...grpc_go.CallOption) (*GetSocialAnalyticsResponse, common.ErrorWithAttachment) + // Hashtags 相关 api + AutoHashtags(ctx context.Context, in *AutoHashtagsRequest, opts ...grpc_go.CallOption) (*AutoHashtagsResponse, common.ErrorWithAttachment) + CheckBannedHashtag(ctx context.Context, in *CheckBannedHashtagRequest, opts ...grpc_go.CallOption) (*CheckBannedHashtagResponse, common.ErrorWithAttachment) + RecommendHashtags(ctx context.Context, in *RecommendHashtagsRequest, opts ...grpc_go.CallOption) (*RecommendHashtagsResponse, common.ErrorWithAttachment) + SearchHashtags(ctx context.Context, in *SearchHashtagsRequest, opts ...grpc_go.CallOption) (*SearchHashtagsResponse, common.ErrorWithAttachment) } type ayrshareClient struct { @@ -44,12 +65,28 @@ type ayrshareClient struct { } type AyrshareClientImpl struct { - Post func(ctx context.Context, in *PostRequest) (*PostResponse, error) - GetPost func(ctx context.Context, in *GetPostRequest) (*GetPostResponse, error) - GetUser func(ctx context.Context, in *GetUserRequest) (*GetUserResponse, error) - CreateProfile func(ctx context.Context, in *CreateProfileRequest) (*CreateProfileResponse, error) - GetProfiles func(ctx context.Context, in *GetProfilesRequest) (*GetProfilesResponse, error) - GenerateJWT func(ctx context.Context, in *GenerateJWTRequest) (*GenerateJWTResponse, error) + Post func(ctx context.Context, in *PostRequest) (*PostResponse, error) + GetPost func(ctx context.Context, in *GetPostRequest) (*GetPostResponse, error) + GetUser func(ctx context.Context, in *GetUserRequest) (*GetUserResponse, error) + CreateProfile func(ctx context.Context, in *CreateProfileRequest) (*CreateProfileResponse, error) + GetProfiles func(ctx context.Context, in *GetProfilesRequest) (*GetProfilesResponse, error) + GenerateJWT func(ctx context.Context, in *GenerateJWTRequest) (*GenerateJWTResponse, error) + GetHistory func(ctx context.Context, in *GetHistoryRequest) (*GetHistoryResponse, error) + GetHistoryById func(ctx context.Context, in *GetHistoryByIdRequest) (*GetHistoryByIdResponse, error) + GetHistoryByPlatform func(ctx context.Context, in *GetHistoryByPlatformRequest) (*GetHistoryByPlatformResponse, error) + SendMessage func(ctx context.Context, in *SendMessageRequest) (*SendMessageResponse, error) + GetMessages func(ctx context.Context, in *GetMessagesRequest) (*GetMessagesResponse, error) + PostComment func(ctx context.Context, in *PostCommentRequest) (*PostCommentResponse, error) + GetComment func(ctx context.Context, in *GetCommentRequest) (*GetCommentResponse, error) + DeleteComment func(ctx context.Context, in *DeleteCommentRequest) (*DeleteCommentResponse, error) + ReplyComment func(ctx context.Context, in *ReplyCommentRequest) (*ReplyCommentResponse, error) + GetPostAnalytics func(ctx context.Context, in *GetPostAnalyticsRequest) (*GetPostAnalyticsResponse, error) + GetPostAnalyticsBySocialID func(ctx context.Context, in *GetPostAnalyticsBySocialIDRequest) (*GetPostAnalyticsResponse, error) + GetSocialAnalytics func(ctx context.Context, in *GetSocialAnalyticsRequest) (*GetSocialAnalyticsResponse, error) + AutoHashtags func(ctx context.Context, in *AutoHashtagsRequest) (*AutoHashtagsResponse, error) + CheckBannedHashtag func(ctx context.Context, in *CheckBannedHashtagRequest) (*CheckBannedHashtagResponse, error) + RecommendHashtags func(ctx context.Context, in *RecommendHashtagsRequest) (*RecommendHashtagsResponse, error) + SearchHashtags func(ctx context.Context, in *SearchHashtagsRequest) (*SearchHashtagsResponse, error) } func (c *AyrshareClientImpl) GetDubboStub(cc *triple.TripleConn) AyrshareClient { @@ -100,6 +137,102 @@ func (c *ayrshareClient) GenerateJWT(ctx context.Context, in *GenerateJWTRequest return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GenerateJWT", in, out) } +func (c *ayrshareClient) GetHistory(ctx context.Context, in *GetHistoryRequest, opts ...grpc_go.CallOption) (*GetHistoryResponse, common.ErrorWithAttachment) { + out := new(GetHistoryResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetHistory", in, out) +} + +func (c *ayrshareClient) GetHistoryById(ctx context.Context, in *GetHistoryByIdRequest, opts ...grpc_go.CallOption) (*GetHistoryByIdResponse, common.ErrorWithAttachment) { + out := new(GetHistoryByIdResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetHistoryById", in, out) +} + +func (c *ayrshareClient) GetHistoryByPlatform(ctx context.Context, in *GetHistoryByPlatformRequest, opts ...grpc_go.CallOption) (*GetHistoryByPlatformResponse, common.ErrorWithAttachment) { + out := new(GetHistoryByPlatformResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetHistoryByPlatform", in, out) +} + +func (c *ayrshareClient) SendMessage(ctx context.Context, in *SendMessageRequest, opts ...grpc_go.CallOption) (*SendMessageResponse, common.ErrorWithAttachment) { + out := new(SendMessageResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/SendMessage", in, out) +} + +func (c *ayrshareClient) GetMessages(ctx context.Context, in *GetMessagesRequest, opts ...grpc_go.CallOption) (*GetMessagesResponse, common.ErrorWithAttachment) { + out := new(GetMessagesResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetMessages", in, out) +} + +func (c *ayrshareClient) PostComment(ctx context.Context, in *PostCommentRequest, opts ...grpc_go.CallOption) (*PostCommentResponse, common.ErrorWithAttachment) { + out := new(PostCommentResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/PostComment", in, out) +} + +func (c *ayrshareClient) GetComment(ctx context.Context, in *GetCommentRequest, opts ...grpc_go.CallOption) (*GetCommentResponse, common.ErrorWithAttachment) { + out := new(GetCommentResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetComment", in, out) +} + +func (c *ayrshareClient) DeleteComment(ctx context.Context, in *DeleteCommentRequest, opts ...grpc_go.CallOption) (*DeleteCommentResponse, common.ErrorWithAttachment) { + out := new(DeleteCommentResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DeleteComment", in, out) +} + +func (c *ayrshareClient) ReplyComment(ctx context.Context, in *ReplyCommentRequest, opts ...grpc_go.CallOption) (*ReplyCommentResponse, common.ErrorWithAttachment) { + out := new(ReplyCommentResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ReplyComment", in, out) +} + +func (c *ayrshareClient) GetPostAnalytics(ctx context.Context, in *GetPostAnalyticsRequest, opts ...grpc_go.CallOption) (*GetPostAnalyticsResponse, common.ErrorWithAttachment) { + out := new(GetPostAnalyticsResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetPostAnalytics", in, out) +} + +func (c *ayrshareClient) GetPostAnalyticsBySocialID(ctx context.Context, in *GetPostAnalyticsBySocialIDRequest, opts ...grpc_go.CallOption) (*GetPostAnalyticsResponse, common.ErrorWithAttachment) { + out := new(GetPostAnalyticsResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetPostAnalyticsBySocialID", in, out) +} + +func (c *ayrshareClient) GetSocialAnalytics(ctx context.Context, in *GetSocialAnalyticsRequest, opts ...grpc_go.CallOption) (*GetSocialAnalyticsResponse, common.ErrorWithAttachment) { + out := new(GetSocialAnalyticsResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetSocialAnalytics", in, out) +} + +func (c *ayrshareClient) AutoHashtags(ctx context.Context, in *AutoHashtagsRequest, opts ...grpc_go.CallOption) (*AutoHashtagsResponse, common.ErrorWithAttachment) { + out := new(AutoHashtagsResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AutoHashtags", in, out) +} + +func (c *ayrshareClient) CheckBannedHashtag(ctx context.Context, in *CheckBannedHashtagRequest, opts ...grpc_go.CallOption) (*CheckBannedHashtagResponse, common.ErrorWithAttachment) { + out := new(CheckBannedHashtagResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CheckBannedHashtag", in, out) +} + +func (c *ayrshareClient) RecommendHashtags(ctx context.Context, in *RecommendHashtagsRequest, opts ...grpc_go.CallOption) (*RecommendHashtagsResponse, common.ErrorWithAttachment) { + out := new(RecommendHashtagsResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/RecommendHashtags", in, out) +} + +func (c *ayrshareClient) SearchHashtags(ctx context.Context, in *SearchHashtagsRequest, opts ...grpc_go.CallOption) (*SearchHashtagsResponse, common.ErrorWithAttachment) { + out := new(SearchHashtagsResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/SearchHashtags", in, out) +} + // AyrshareServer is the server API for Ayrshare service. // All implementations must embed UnimplementedAyrshareServer // for forward compatibility @@ -113,6 +246,27 @@ type AyrshareServer interface { CreateProfile(context.Context, *CreateProfileRequest) (*CreateProfileResponse, error) GetProfiles(context.Context, *GetProfilesRequest) (*GetProfilesResponse, error) GenerateJWT(context.Context, *GenerateJWTRequest) (*GenerateJWTResponse, error) + // 历史记录相关 api + GetHistory(context.Context, *GetHistoryRequest) (*GetHistoryResponse, error) + GetHistoryById(context.Context, *GetHistoryByIdRequest) (*GetHistoryByIdResponse, error) + GetHistoryByPlatform(context.Context, *GetHistoryByPlatformRequest) (*GetHistoryByPlatformResponse, error) + // 消息相关 api + SendMessage(context.Context, *SendMessageRequest) (*SendMessageResponse, error) + GetMessages(context.Context, *GetMessagesRequest) (*GetMessagesResponse, error) + // 评论相关 api + PostComment(context.Context, *PostCommentRequest) (*PostCommentResponse, error) + GetComment(context.Context, *GetCommentRequest) (*GetCommentResponse, error) + DeleteComment(context.Context, *DeleteCommentRequest) (*DeleteCommentResponse, error) + ReplyComment(context.Context, *ReplyCommentRequest) (*ReplyCommentResponse, error) + // 分析相关 api + GetPostAnalytics(context.Context, *GetPostAnalyticsRequest) (*GetPostAnalyticsResponse, error) + GetPostAnalyticsBySocialID(context.Context, *GetPostAnalyticsBySocialIDRequest) (*GetPostAnalyticsResponse, error) + GetSocialAnalytics(context.Context, *GetSocialAnalyticsRequest) (*GetSocialAnalyticsResponse, error) + // Hashtags 相关 api + AutoHashtags(context.Context, *AutoHashtagsRequest) (*AutoHashtagsResponse, error) + CheckBannedHashtag(context.Context, *CheckBannedHashtagRequest) (*CheckBannedHashtagResponse, error) + RecommendHashtags(context.Context, *RecommendHashtagsRequest) (*RecommendHashtagsResponse, error) + SearchHashtags(context.Context, *SearchHashtagsRequest) (*SearchHashtagsResponse, error) mustEmbedUnimplementedAyrshareServer() } @@ -139,6 +293,54 @@ func (UnimplementedAyrshareServer) GetProfiles(context.Context, *GetProfilesRequ func (UnimplementedAyrshareServer) GenerateJWT(context.Context, *GenerateJWTRequest) (*GenerateJWTResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GenerateJWT not implemented") } +func (UnimplementedAyrshareServer) GetHistory(context.Context, *GetHistoryRequest) (*GetHistoryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetHistory not implemented") +} +func (UnimplementedAyrshareServer) GetHistoryById(context.Context, *GetHistoryByIdRequest) (*GetHistoryByIdResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetHistoryById not implemented") +} +func (UnimplementedAyrshareServer) GetHistoryByPlatform(context.Context, *GetHistoryByPlatformRequest) (*GetHistoryByPlatformResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetHistoryByPlatform not implemented") +} +func (UnimplementedAyrshareServer) SendMessage(context.Context, *SendMessageRequest) (*SendMessageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendMessage not implemented") +} +func (UnimplementedAyrshareServer) GetMessages(context.Context, *GetMessagesRequest) (*GetMessagesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMessages not implemented") +} +func (UnimplementedAyrshareServer) PostComment(context.Context, *PostCommentRequest) (*PostCommentResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PostComment not implemented") +} +func (UnimplementedAyrshareServer) GetComment(context.Context, *GetCommentRequest) (*GetCommentResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetComment not implemented") +} +func (UnimplementedAyrshareServer) DeleteComment(context.Context, *DeleteCommentRequest) (*DeleteCommentResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteComment not implemented") +} +func (UnimplementedAyrshareServer) ReplyComment(context.Context, *ReplyCommentRequest) (*ReplyCommentResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReplyComment not implemented") +} +func (UnimplementedAyrshareServer) GetPostAnalytics(context.Context, *GetPostAnalyticsRequest) (*GetPostAnalyticsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPostAnalytics not implemented") +} +func (UnimplementedAyrshareServer) GetPostAnalyticsBySocialID(context.Context, *GetPostAnalyticsBySocialIDRequest) (*GetPostAnalyticsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPostAnalyticsBySocialID not implemented") +} +func (UnimplementedAyrshareServer) GetSocialAnalytics(context.Context, *GetSocialAnalyticsRequest) (*GetSocialAnalyticsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSocialAnalytics not implemented") +} +func (UnimplementedAyrshareServer) AutoHashtags(context.Context, *AutoHashtagsRequest) (*AutoHashtagsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AutoHashtags not implemented") +} +func (UnimplementedAyrshareServer) CheckBannedHashtag(context.Context, *CheckBannedHashtagRequest) (*CheckBannedHashtagResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CheckBannedHashtag not implemented") +} +func (UnimplementedAyrshareServer) RecommendHashtags(context.Context, *RecommendHashtagsRequest) (*RecommendHashtagsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RecommendHashtags not implemented") +} +func (UnimplementedAyrshareServer) SearchHashtags(context.Context, *SearchHashtagsRequest) (*SearchHashtagsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SearchHashtags not implemented") +} func (s *UnimplementedAyrshareServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -341,6 +543,470 @@ func _Ayrshare_GenerateJWT_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _Ayrshare_GetHistory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetHistoryRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetHistory", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Ayrshare_GetHistoryById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetHistoryByIdRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetHistoryById", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Ayrshare_GetHistoryByPlatform_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetHistoryByPlatformRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetHistoryByPlatform", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Ayrshare_SendMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(SendMessageRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("SendMessage", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Ayrshare_GetMessages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMessagesRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetMessages", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Ayrshare_PostComment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(PostCommentRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("PostComment", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Ayrshare_GetComment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCommentRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetComment", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Ayrshare_DeleteComment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteCommentRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("DeleteComment", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Ayrshare_ReplyComment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ReplyCommentRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("ReplyComment", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Ayrshare_GetPostAnalytics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetPostAnalyticsRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetPostAnalytics", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Ayrshare_GetPostAnalyticsBySocialID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetPostAnalyticsBySocialIDRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetPostAnalyticsBySocialID", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Ayrshare_GetSocialAnalytics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSocialAnalyticsRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetSocialAnalytics", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Ayrshare_AutoHashtags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(AutoHashtagsRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("AutoHashtags", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Ayrshare_CheckBannedHashtag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CheckBannedHashtagRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CheckBannedHashtag", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Ayrshare_RecommendHashtags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(RecommendHashtagsRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("RecommendHashtags", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Ayrshare_SearchHashtags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(SearchHashtagsRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("SearchHashtags", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + // Ayrshare_ServiceDesc is the grpc_go.ServiceDesc for Ayrshare service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -372,6 +1038,70 @@ var Ayrshare_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "GenerateJWT", Handler: _Ayrshare_GenerateJWT_Handler, }, + { + MethodName: "GetHistory", + Handler: _Ayrshare_GetHistory_Handler, + }, + { + MethodName: "GetHistoryById", + Handler: _Ayrshare_GetHistoryById_Handler, + }, + { + MethodName: "GetHistoryByPlatform", + Handler: _Ayrshare_GetHistoryByPlatform_Handler, + }, + { + MethodName: "SendMessage", + Handler: _Ayrshare_SendMessage_Handler, + }, + { + MethodName: "GetMessages", + Handler: _Ayrshare_GetMessages_Handler, + }, + { + MethodName: "PostComment", + Handler: _Ayrshare_PostComment_Handler, + }, + { + MethodName: "GetComment", + Handler: _Ayrshare_GetComment_Handler, + }, + { + MethodName: "DeleteComment", + Handler: _Ayrshare_DeleteComment_Handler, + }, + { + MethodName: "ReplyComment", + Handler: _Ayrshare_ReplyComment_Handler, + }, + { + MethodName: "GetPostAnalytics", + Handler: _Ayrshare_GetPostAnalytics_Handler, + }, + { + MethodName: "GetPostAnalyticsBySocialID", + Handler: _Ayrshare_GetPostAnalyticsBySocialID_Handler, + }, + { + MethodName: "GetSocialAnalytics", + Handler: _Ayrshare_GetSocialAnalytics_Handler, + }, + { + MethodName: "AutoHashtags", + Handler: _Ayrshare_AutoHashtags_Handler, + }, + { + MethodName: "CheckBannedHashtag", + Handler: _Ayrshare_CheckBannedHashtag_Handler, + }, + { + MethodName: "RecommendHashtags", + Handler: _Ayrshare_RecommendHashtags_Handler, + }, + { + MethodName: "SearchHashtags", + Handler: _Ayrshare_SearchHashtags_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/ayrshare.proto", diff --git a/api/cast/cast.pb.go b/api/cast/cast.pb.go index 6c96b09..ab777a1 100644 --- a/api/cast/cast.pb.go +++ b/api/cast/cast.pb.go @@ -349,6 +349,58 @@ func (CategoryENUM) EnumDescriptor() ([]byte, []int) { return file_pb_fiee_cast_proto_rawDescGZIP(), []int{5} } +type AsInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + ProfileKey string `protobuf:"bytes,1,opt,name=profileKey,proto3" json:"profileKey"` + AsID string `protobuf:"bytes,2,opt,name=AsID,proto3" json:"AsID"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AsInfo) Reset() { + *x = AsInfo{} + mi := &file_pb_fiee_cast_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AsInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AsInfo) ProtoMessage() {} + +func (x *AsInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AsInfo.ProtoReflect.Descriptor instead. +func (*AsInfo) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{0} +} + +func (x *AsInfo) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +func (x *AsInfo) GetAsID() string { + if x != nil { + return x.AsID + } + return "" +} + type MediaUserListReq struct { state protoimpl.MessageState `protogen:"open.v1"` ArtistVal string `protobuf:"bytes,1,opt,name=artistVal,proto3" json:"artistVal"` @@ -363,13 +415,14 @@ type MediaUserListReq struct { AuthStatus AuthStatusENUM `protobuf:"varint,10,opt,name=authStatus,proto3,enum=Cast.AuthStatusENUM" json:"authStatus"` MediaUserID string `protobuf:"bytes,11,opt,name=mediaUserID,proto3" json:"mediaUserID"` NeedStats bool `protobuf:"varint,12,opt,name=needStats,proto3" json:"needStats"` + NeedAsInfo bool `protobuf:"varint,13,opt,name=needAsInfo,proto3" json:"needAsInfo"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MediaUserListReq) Reset() { *x = MediaUserListReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[0] + mi := &file_pb_fiee_cast_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -381,7 +434,7 @@ func (x *MediaUserListReq) String() string { func (*MediaUserListReq) ProtoMessage() {} func (x *MediaUserListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[0] + mi := &file_pb_fiee_cast_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -394,7 +447,7 @@ func (x *MediaUserListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaUserListReq.ProtoReflect.Descriptor instead. func (*MediaUserListReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{0} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{1} } func (x *MediaUserListReq) GetArtistVal() string { @@ -481,6 +534,13 @@ func (x *MediaUserListReq) GetNeedStats() bool { return false } +func (x *MediaUserListReq) GetNeedAsInfo() bool { + if x != nil { + return x.NeedAsInfo + } + return false +} + type MediaUserInfo struct { state protoimpl.MessageState `protogen:"open.v1"` PlatformUserName string `protobuf:"bytes,1,opt,name=platformUserName,proto3" json:"platformUserName"` @@ -499,13 +559,14 @@ type MediaUserInfo struct { PendingPostCount int32 `protobuf:"varint,14,opt,name=pendingPostCount,proto3" json:"pendingPostCount"` UploadedPostCount int32 `protobuf:"varint,15,opt,name=uploadedPostCount,proto3" json:"uploadedPostCount"` ReleasedPostTotal int32 `protobuf:"varint,16,opt,name=releasedPostTotal,proto3" json:"releasedPostTotal"` + AsInfo *AsInfo `protobuf:"bytes,17,opt,name=asInfo,proto3" json:"asInfo"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MediaUserInfo) Reset() { *x = MediaUserInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[1] + mi := &file_pb_fiee_cast_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -517,7 +578,7 @@ func (x *MediaUserInfo) String() string { func (*MediaUserInfo) ProtoMessage() {} func (x *MediaUserInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[1] + mi := &file_pb_fiee_cast_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -530,7 +591,7 @@ func (x *MediaUserInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaUserInfo.ProtoReflect.Descriptor instead. func (*MediaUserInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{1} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{2} } func (x *MediaUserInfo) GetPlatformUserName() string { @@ -645,6 +706,13 @@ func (x *MediaUserInfo) GetReleasedPostTotal() int32 { return 0 } +func (x *MediaUserInfo) GetAsInfo() *AsInfo { + if x != nil { + return x.AsInfo + } + return nil +} + type MediaUserListResp struct { state protoimpl.MessageState `protogen:"open.v1"` Data []*MediaUserInfo `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` @@ -655,7 +723,7 @@ type MediaUserListResp struct { func (x *MediaUserListResp) Reset() { *x = MediaUserListResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[2] + mi := &file_pb_fiee_cast_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -667,7 +735,7 @@ func (x *MediaUserListResp) String() string { func (*MediaUserListResp) ProtoMessage() {} func (x *MediaUserListResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[2] + mi := &file_pb_fiee_cast_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -680,7 +748,7 @@ func (x *MediaUserListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaUserListResp.ProtoReflect.Descriptor instead. func (*MediaUserListResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{2} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{3} } func (x *MediaUserListResp) GetData() []*MediaUserInfo { @@ -716,7 +784,7 @@ type UpdateMediaAccountReq struct { func (x *UpdateMediaAccountReq) Reset() { *x = UpdateMediaAccountReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[3] + mi := &file_pb_fiee_cast_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -728,7 +796,7 @@ func (x *UpdateMediaAccountReq) String() string { func (*UpdateMediaAccountReq) ProtoMessage() {} func (x *UpdateMediaAccountReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[3] + mi := &file_pb_fiee_cast_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -741,7 +809,7 @@ func (x *UpdateMediaAccountReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateMediaAccountReq.ProtoReflect.Descriptor instead. func (*UpdateMediaAccountReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{3} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{4} } func (x *UpdateMediaAccountReq) GetPlatformID() PlatformIDENUM { @@ -830,7 +898,7 @@ type UpdateMediaAccountResp struct { func (x *UpdateMediaAccountResp) Reset() { *x = UpdateMediaAccountResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[4] + mi := &file_pb_fiee_cast_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -842,7 +910,7 @@ func (x *UpdateMediaAccountResp) String() string { func (*UpdateMediaAccountResp) ProtoMessage() {} func (x *UpdateMediaAccountResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[4] + mi := &file_pb_fiee_cast_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -855,7 +923,7 @@ func (x *UpdateMediaAccountResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateMediaAccountResp.ProtoReflect.Descriptor instead. func (*UpdateMediaAccountResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{4} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{5} } func (x *UpdateMediaAccountResp) GetMediaAccountUuid() string { @@ -875,7 +943,7 @@ type UnbindManagerReq struct { func (x *UnbindManagerReq) Reset() { *x = UnbindManagerReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[5] + mi := &file_pb_fiee_cast_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -887,7 +955,7 @@ func (x *UnbindManagerReq) String() string { func (*UnbindManagerReq) ProtoMessage() {} func (x *UnbindManagerReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[5] + mi := &file_pb_fiee_cast_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -900,7 +968,7 @@ func (x *UnbindManagerReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UnbindManagerReq.ProtoReflect.Descriptor instead. func (*UnbindManagerReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{5} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{6} } func (x *UnbindManagerReq) GetMediaAccountUuid() string { @@ -919,7 +987,7 @@ type UnbindManagerResp struct { func (x *UnbindManagerResp) Reset() { *x = UnbindManagerResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[6] + mi := &file_pb_fiee_cast_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -931,7 +999,7 @@ func (x *UnbindManagerResp) String() string { func (*UnbindManagerResp) ProtoMessage() {} func (x *UnbindManagerResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[6] + mi := &file_pb_fiee_cast_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -944,7 +1012,7 @@ func (x *UnbindManagerResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UnbindManagerResp.ProtoReflect.Descriptor instead. func (*UnbindManagerResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{6} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{7} } func (x *UnbindManagerResp) GetOldBindArtistUuid() string { @@ -965,7 +1033,7 @@ type BindManagerReq struct { func (x *BindManagerReq) Reset() { *x = BindManagerReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[7] + mi := &file_pb_fiee_cast_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -977,7 +1045,7 @@ func (x *BindManagerReq) String() string { func (*BindManagerReq) ProtoMessage() {} func (x *BindManagerReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[7] + mi := &file_pb_fiee_cast_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -990,7 +1058,7 @@ func (x *BindManagerReq) ProtoReflect() protoreflect.Message { // Deprecated: Use BindManagerReq.ProtoReflect.Descriptor instead. func (*BindManagerReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{7} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{8} } func (x *BindManagerReq) GetMediaAccountUuid() string { @@ -1046,7 +1114,7 @@ type UpdateWorkImageReq struct { func (x *UpdateWorkImageReq) Reset() { *x = UpdateWorkImageReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[8] + mi := &file_pb_fiee_cast_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1058,7 +1126,7 @@ func (x *UpdateWorkImageReq) String() string { func (*UpdateWorkImageReq) ProtoMessage() {} func (x *UpdateWorkImageReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[8] + mi := &file_pb_fiee_cast_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1071,7 +1139,7 @@ func (x *UpdateWorkImageReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkImageReq.ProtoReflect.Descriptor instead. func (*UpdateWorkImageReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{8} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{9} } func (x *UpdateWorkImageReq) GetTitle() string { @@ -1244,7 +1312,7 @@ type UpdateWorkImageResp struct { func (x *UpdateWorkImageResp) Reset() { *x = UpdateWorkImageResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[9] + mi := &file_pb_fiee_cast_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1256,7 +1324,7 @@ func (x *UpdateWorkImageResp) String() string { func (*UpdateWorkImageResp) ProtoMessage() {} func (x *UpdateWorkImageResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[9] + mi := &file_pb_fiee_cast_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1269,7 +1337,7 @@ func (x *UpdateWorkImageResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkImageResp.ProtoReflect.Descriptor instead. func (*UpdateWorkImageResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{9} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{10} } func (x *UpdateWorkImageResp) GetWorkUuid() string { @@ -1293,7 +1361,7 @@ type PublishConfig struct { func (x *PublishConfig) Reset() { *x = PublishConfig{} - mi := &file_pb_fiee_cast_proto_msgTypes[10] + mi := &file_pb_fiee_cast_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1305,7 +1373,7 @@ func (x *PublishConfig) String() string { func (*PublishConfig) ProtoMessage() {} func (x *PublishConfig) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[10] + mi := &file_pb_fiee_cast_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1318,7 +1386,7 @@ func (x *PublishConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use PublishConfig.ProtoReflect.Descriptor instead. func (*PublishConfig) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{10} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{11} } func (x *PublishConfig) GetForbidComment() uint32 { @@ -1394,7 +1462,7 @@ type UpdateWorkVideoReq struct { func (x *UpdateWorkVideoReq) Reset() { *x = UpdateWorkVideoReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[11] + mi := &file_pb_fiee_cast_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1406,7 +1474,7 @@ func (x *UpdateWorkVideoReq) String() string { func (*UpdateWorkVideoReq) ProtoMessage() {} func (x *UpdateWorkVideoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[11] + mi := &file_pb_fiee_cast_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1419,7 +1487,7 @@ func (x *UpdateWorkVideoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkVideoReq.ProtoReflect.Descriptor instead. func (*UpdateWorkVideoReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{11} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{12} } func (x *UpdateWorkVideoReq) GetTitle() string { @@ -1585,7 +1653,7 @@ type UpdateWorkVideoResp struct { func (x *UpdateWorkVideoResp) Reset() { *x = UpdateWorkVideoResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[12] + mi := &file_pb_fiee_cast_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1597,7 +1665,7 @@ func (x *UpdateWorkVideoResp) String() string { func (*UpdateWorkVideoResp) ProtoMessage() {} func (x *UpdateWorkVideoResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[12] + mi := &file_pb_fiee_cast_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1610,7 +1678,7 @@ func (x *UpdateWorkVideoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkVideoResp.ProtoReflect.Descriptor instead. func (*UpdateWorkVideoResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{12} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{13} } func (x *UpdateWorkVideoResp) GetWorkUuid() string { @@ -1631,7 +1699,7 @@ type MediaInfoReq struct { func (x *MediaInfoReq) Reset() { *x = MediaInfoReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[13] + mi := &file_pb_fiee_cast_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1643,7 +1711,7 @@ func (x *MediaInfoReq) String() string { func (*MediaInfoReq) ProtoMessage() {} func (x *MediaInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[13] + mi := &file_pb_fiee_cast_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1656,7 +1724,7 @@ func (x *MediaInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaInfoReq.ProtoReflect.Descriptor instead. func (*MediaInfoReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{13} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{14} } func (x *MediaInfoReq) GetArtistUuid() string { @@ -1689,7 +1757,7 @@ type MediaInfoResp struct { func (x *MediaInfoResp) Reset() { *x = MediaInfoResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[14] + mi := &file_pb_fiee_cast_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1701,7 +1769,7 @@ func (x *MediaInfoResp) String() string { func (*MediaInfoResp) ProtoMessage() {} func (x *MediaInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[14] + mi := &file_pb_fiee_cast_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1714,7 +1782,7 @@ func (x *MediaInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaInfoResp.ProtoReflect.Descriptor instead. func (*MediaInfoResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{14} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{15} } func (x *MediaInfoResp) GetInfo() *MediaUserInfo { @@ -1724,6 +1792,102 @@ func (x *MediaInfoResp) GetInfo() *MediaUserInfo { return nil } +type MediaInfoByPlatformReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + ArtistUuid string `protobuf:"bytes,1,opt,name=artistUuid,proto3" json:"artistUuid"` + PlatformID PlatformIDENUM `protobuf:"varint,2,opt,name=platformID,proto3,enum=Cast.PlatformIDENUM" json:"platformID"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MediaInfoByPlatformReq) Reset() { + *x = MediaInfoByPlatformReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MediaInfoByPlatformReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MediaInfoByPlatformReq) ProtoMessage() {} + +func (x *MediaInfoByPlatformReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MediaInfoByPlatformReq.ProtoReflect.Descriptor instead. +func (*MediaInfoByPlatformReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{16} +} + +func (x *MediaInfoByPlatformReq) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + +func (x *MediaInfoByPlatformReq) GetPlatformID() PlatformIDENUM { + if x != nil { + return x.PlatformID + } + return PlatformIDENUM_UNKNOWN +} + +type MediaInfoByPlatformResp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Info *MediaUserInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MediaInfoByPlatformResp) Reset() { + *x = MediaInfoByPlatformResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MediaInfoByPlatformResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MediaInfoByPlatformResp) ProtoMessage() {} + +func (x *MediaInfoByPlatformResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MediaInfoByPlatformResp.ProtoReflect.Descriptor instead. +func (*MediaInfoByPlatformResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{17} +} + +func (x *MediaInfoByPlatformResp) GetInfo() *MediaUserInfo { + if x != nil { + return x.Info + } + return nil +} + type WorkListReq struct { state protoimpl.MessageState `protogen:"open.v1"` ArtistVal string `protobuf:"bytes,1,opt,name=artistVal,proto3" json:"artistVal"` @@ -1752,7 +1916,7 @@ type WorkListReq struct { func (x *WorkListReq) Reset() { *x = WorkListReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[15] + mi := &file_pb_fiee_cast_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1764,7 +1928,7 @@ func (x *WorkListReq) String() string { func (*WorkListReq) ProtoMessage() {} func (x *WorkListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[15] + mi := &file_pb_fiee_cast_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1777,7 +1941,7 @@ func (x *WorkListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkListReq.ProtoReflect.Descriptor instead. func (*WorkListReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{15} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{18} } func (x *WorkListReq) GetArtistVal() string { @@ -1930,7 +2094,7 @@ type WorkListResp struct { func (x *WorkListResp) Reset() { *x = WorkListResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[16] + mi := &file_pb_fiee_cast_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1942,7 +2106,7 @@ func (x *WorkListResp) String() string { func (*WorkListResp) ProtoMessage() {} func (x *WorkListResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[16] + mi := &file_pb_fiee_cast_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1955,7 +2119,7 @@ func (x *WorkListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkListResp.ProtoReflect.Descriptor instead. func (*WorkListResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{16} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{19} } func (x *WorkListResp) GetData() []*WorkListResp_Info { @@ -1981,7 +2145,7 @@ type WorkDetailReq struct { func (x *WorkDetailReq) Reset() { *x = WorkDetailReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[17] + mi := &file_pb_fiee_cast_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1993,7 +2157,7 @@ func (x *WorkDetailReq) String() string { func (*WorkDetailReq) ProtoMessage() {} func (x *WorkDetailReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[17] + mi := &file_pb_fiee_cast_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2006,7 +2170,7 @@ func (x *WorkDetailReq) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkDetailReq.ProtoReflect.Descriptor instead. func (*WorkDetailReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{17} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{20} } func (x *WorkDetailReq) GetWorkUuid() string { @@ -2032,7 +2196,7 @@ type WorkLogInfo struct { func (x *WorkLogInfo) Reset() { *x = WorkLogInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[18] + mi := &file_pb_fiee_cast_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2044,7 +2208,7 @@ func (x *WorkLogInfo) String() string { func (*WorkLogInfo) ProtoMessage() {} func (x *WorkLogInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[18] + mi := &file_pb_fiee_cast_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2057,7 +2221,7 @@ func (x *WorkLogInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkLogInfo.ProtoReflect.Descriptor instead. func (*WorkLogInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{18} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{21} } func (x *WorkLogInfo) GetWorkUuid() string { @@ -2150,7 +2314,7 @@ type WorkDetailResp struct { func (x *WorkDetailResp) Reset() { *x = WorkDetailResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[19] + mi := &file_pb_fiee_cast_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2162,7 +2326,7 @@ func (x *WorkDetailResp) String() string { func (*WorkDetailResp) ProtoMessage() {} func (x *WorkDetailResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[19] + mi := &file_pb_fiee_cast_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2175,7 +2339,7 @@ func (x *WorkDetailResp) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkDetailResp.ProtoReflect.Descriptor instead. func (*WorkDetailResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{19} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{22} } func (x *WorkDetailResp) GetWorkUuid() string { @@ -2355,7 +2519,7 @@ type UpdateStatusReq struct { func (x *UpdateStatusReq) Reset() { *x = UpdateStatusReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[20] + mi := &file_pb_fiee_cast_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2367,7 +2531,7 @@ func (x *UpdateStatusReq) String() string { func (*UpdateStatusReq) ProtoMessage() {} func (x *UpdateStatusReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[20] + mi := &file_pb_fiee_cast_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2380,7 +2544,7 @@ func (x *UpdateStatusReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateStatusReq.ProtoReflect.Descriptor instead. func (*UpdateStatusReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{20} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{23} } func (x *UpdateStatusReq) GetWorkAction() WorkActionENUM { @@ -2448,7 +2612,7 @@ type MediaAccountsReq struct { func (x *MediaAccountsReq) Reset() { *x = MediaAccountsReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[21] + mi := &file_pb_fiee_cast_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2460,7 +2624,7 @@ func (x *MediaAccountsReq) String() string { func (*MediaAccountsReq) ProtoMessage() {} func (x *MediaAccountsReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[21] + mi := &file_pb_fiee_cast_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2473,7 +2637,7 @@ func (x *MediaAccountsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaAccountsReq.ProtoReflect.Descriptor instead. func (*MediaAccountsReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{21} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{24} } func (x *MediaAccountsReq) GetArtistUuid() string { @@ -2492,7 +2656,7 @@ type MediaAccountsResp struct { func (x *MediaAccountsResp) Reset() { *x = MediaAccountsResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[22] + mi := &file_pb_fiee_cast_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2504,7 +2668,7 @@ func (x *MediaAccountsResp) String() string { func (*MediaAccountsResp) ProtoMessage() {} func (x *MediaAccountsResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[22] + mi := &file_pb_fiee_cast_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2517,7 +2681,7 @@ func (x *MediaAccountsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaAccountsResp.ProtoReflect.Descriptor instead. func (*MediaAccountsResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{22} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{25} } func (x *MediaAccountsResp) GetData() []*MediaAccountsResp_Info { @@ -2538,7 +2702,7 @@ type MediaWorksReq struct { func (x *MediaWorksReq) Reset() { *x = MediaWorksReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[23] + mi := &file_pb_fiee_cast_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2550,7 +2714,7 @@ func (x *MediaWorksReq) String() string { func (*MediaWorksReq) ProtoMessage() {} func (x *MediaWorksReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[23] + mi := &file_pb_fiee_cast_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2563,7 +2727,7 @@ func (x *MediaWorksReq) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaWorksReq.ProtoReflect.Descriptor instead. func (*MediaWorksReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{23} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{26} } func (x *MediaWorksReq) GetMediaAccountUuid() string { @@ -2597,7 +2761,7 @@ type MediaWorksResp struct { func (x *MediaWorksResp) Reset() { *x = MediaWorksResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[24] + mi := &file_pb_fiee_cast_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2609,7 +2773,7 @@ func (x *MediaWorksResp) String() string { func (*MediaWorksResp) ProtoMessage() {} func (x *MediaWorksResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[24] + mi := &file_pb_fiee_cast_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2622,7 +2786,7 @@ func (x *MediaWorksResp) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaWorksResp.ProtoReflect.Descriptor instead. func (*MediaWorksResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{24} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{27} } func (x *MediaWorksResp) GetCount() int64 { @@ -2648,7 +2812,7 @@ type PublishReq struct { func (x *PublishReq) Reset() { *x = PublishReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[25] + mi := &file_pb_fiee_cast_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2660,7 +2824,7 @@ func (x *PublishReq) String() string { func (*PublishReq) ProtoMessage() {} func (x *PublishReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[25] + mi := &file_pb_fiee_cast_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2673,7 +2837,7 @@ func (x *PublishReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PublishReq.ProtoReflect.Descriptor instead. func (*PublishReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{25} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{28} } func (x *PublishReq) GetWorkUuids() []string { @@ -2692,7 +2856,7 @@ type PublishResp struct { func (x *PublishResp) Reset() { *x = PublishResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[26] + mi := &file_pb_fiee_cast_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2704,7 +2868,7 @@ func (x *PublishResp) String() string { func (*PublishResp) ProtoMessage() {} func (x *PublishResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[26] + mi := &file_pb_fiee_cast_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2717,7 +2881,7 @@ func (x *PublishResp) ProtoReflect() protoreflect.Message { // Deprecated: Use PublishResp.ProtoReflect.Descriptor instead. func (*PublishResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{26} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{29} } func (x *PublishResp) GetData() []*PublishResp_Info { @@ -2738,7 +2902,7 @@ type RePublishReq struct { func (x *RePublishReq) Reset() { *x = RePublishReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[27] + mi := &file_pb_fiee_cast_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2750,7 +2914,7 @@ func (x *RePublishReq) String() string { func (*RePublishReq) ProtoMessage() {} func (x *RePublishReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[27] + mi := &file_pb_fiee_cast_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2763,7 +2927,7 @@ func (x *RePublishReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RePublishReq.ProtoReflect.Descriptor instead. func (*RePublishReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{27} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{30} } func (x *RePublishReq) GetWorkUuid() string { @@ -2797,7 +2961,7 @@ type RePublishResp struct { func (x *RePublishResp) Reset() { *x = RePublishResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[28] + mi := &file_pb_fiee_cast_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2809,7 +2973,7 @@ func (x *RePublishResp) String() string { func (*RePublishResp) ProtoMessage() {} func (x *RePublishResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[28] + mi := &file_pb_fiee_cast_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2822,7 +2986,7 @@ func (x *RePublishResp) ProtoReflect() protoreflect.Message { // Deprecated: Use RePublishResp.ProtoReflect.Descriptor instead. func (*RePublishResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{28} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{31} } func (x *RePublishResp) GetArtistUuid() string { @@ -2848,7 +3012,7 @@ type DelWorkReq struct { func (x *DelWorkReq) Reset() { *x = DelWorkReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[29] + mi := &file_pb_fiee_cast_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2860,7 +3024,7 @@ func (x *DelWorkReq) String() string { func (*DelWorkReq) ProtoMessage() {} func (x *DelWorkReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[29] + mi := &file_pb_fiee_cast_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2873,7 +3037,7 @@ func (x *DelWorkReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DelWorkReq.ProtoReflect.Descriptor instead. func (*DelWorkReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{29} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{32} } func (x *DelWorkReq) GetWorkUuid() string { @@ -2892,7 +3056,7 @@ type WorkInfoReq struct { func (x *WorkInfoReq) Reset() { *x = WorkInfoReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[30] + mi := &file_pb_fiee_cast_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2904,7 +3068,7 @@ func (x *WorkInfoReq) String() string { func (*WorkInfoReq) ProtoMessage() {} func (x *WorkInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[30] + mi := &file_pb_fiee_cast_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2917,7 +3081,7 @@ func (x *WorkInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkInfoReq.ProtoReflect.Descriptor instead. func (*WorkInfoReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{30} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{33} } func (x *WorkInfoReq) GetWorkUuid() string { @@ -2941,7 +3105,7 @@ type WorkInfoResp struct { func (x *WorkInfoResp) Reset() { *x = WorkInfoResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[31] + mi := &file_pb_fiee_cast_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2953,7 +3117,7 @@ func (x *WorkInfoResp) String() string { func (*WorkInfoResp) ProtoMessage() {} func (x *WorkInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[31] + mi := &file_pb_fiee_cast_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2966,7 +3130,7 @@ func (x *WorkInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkInfoResp.ProtoReflect.Descriptor instead. func (*WorkInfoResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{31} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{34} } func (x *WorkInfoResp) GetWorkStatus() uint32 { @@ -3020,7 +3184,7 @@ type ArtistInfoReq struct { func (x *ArtistInfoReq) Reset() { *x = ArtistInfoReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[32] + mi := &file_pb_fiee_cast_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3032,7 +3196,7 @@ func (x *ArtistInfoReq) String() string { func (*ArtistInfoReq) ProtoMessage() {} func (x *ArtistInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[32] + mi := &file_pb_fiee_cast_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3045,7 +3209,7 @@ func (x *ArtistInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistInfoReq.ProtoReflect.Descriptor instead. func (*ArtistInfoReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{32} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{35} } func (x *ArtistInfoReq) GetArtistUuid() string { @@ -3061,13 +3225,15 @@ type ArtistInfoResp struct { YouTubeEffectiveCount uint32 `protobuf:"varint,2,opt,name=YouTubeEffectiveCount,proto3" json:"YouTubeEffectiveCount"` InsEffectiveCount uint32 `protobuf:"varint,3,opt,name=InsEffectiveCount,proto3" json:"InsEffectiveCount"` DMEffectiveCount uint32 `protobuf:"varint,4,opt,name=DMEffectiveCount,proto3" json:"DMEffectiveCount"` + ProfileKey string `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey"` + SubNum string `protobuf:"bytes,6,opt,name=subNum,proto3" json:"subNum"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ArtistInfoResp) Reset() { *x = ArtistInfoResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[33] + mi := &file_pb_fiee_cast_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3079,7 +3245,7 @@ func (x *ArtistInfoResp) String() string { func (*ArtistInfoResp) ProtoMessage() {} func (x *ArtistInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[33] + mi := &file_pb_fiee_cast_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3092,7 +3258,7 @@ func (x *ArtistInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistInfoResp.ProtoReflect.Descriptor instead. func (*ArtistInfoResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{33} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{36} } func (x *ArtistInfoResp) GetTikTokEffectiveCount() uint32 { @@ -3123,6 +3289,20 @@ func (x *ArtistInfoResp) GetDMEffectiveCount() uint32 { return 0 } +func (x *ArtistInfoResp) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +func (x *ArtistInfoResp) GetSubNum() string { + if x != nil { + return x.SubNum + } + return "" +} + type ImportWorkBatchReq struct { state protoimpl.MessageState `protogen:"open.v1"` ImageWorks []*UpdateWorkImageReq `protobuf:"bytes,1,rep,name=imageWorks,proto3" json:"imageWorks"` @@ -3132,7 +3312,7 @@ type ImportWorkBatchReq struct { func (x *ImportWorkBatchReq) Reset() { *x = ImportWorkBatchReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[34] + mi := &file_pb_fiee_cast_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3144,7 +3324,7 @@ func (x *ImportWorkBatchReq) String() string { func (*ImportWorkBatchReq) ProtoMessage() {} func (x *ImportWorkBatchReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[34] + mi := &file_pb_fiee_cast_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3157,7 +3337,7 @@ func (x *ImportWorkBatchReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportWorkBatchReq.ProtoReflect.Descriptor instead. func (*ImportWorkBatchReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{34} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{37} } func (x *ImportWorkBatchReq) GetImageWorks() []*UpdateWorkImageReq { @@ -3178,7 +3358,7 @@ type ImportWorkBatchResp struct { func (x *ImportWorkBatchResp) Reset() { *x = ImportWorkBatchResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[35] + mi := &file_pb_fiee_cast_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3190,7 +3370,7 @@ func (x *ImportWorkBatchResp) String() string { func (*ImportWorkBatchResp) ProtoMessage() {} func (x *ImportWorkBatchResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[35] + mi := &file_pb_fiee_cast_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3203,7 +3383,7 @@ func (x *ImportWorkBatchResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportWorkBatchResp.ProtoReflect.Descriptor instead. func (*ImportWorkBatchResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{35} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{38} } func (x *ImportWorkBatchResp) GetImageWorks() []*UpdateWorkImageReq { @@ -3244,7 +3424,7 @@ type PlatformInfo struct { func (x *PlatformInfo) Reset() { *x = PlatformInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[36] + mi := &file_pb_fiee_cast_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3256,7 +3436,7 @@ func (x *PlatformInfo) String() string { func (*PlatformInfo) ProtoMessage() {} func (x *PlatformInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[36] + mi := &file_pb_fiee_cast_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3269,7 +3449,7 @@ func (x *PlatformInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PlatformInfo.ProtoReflect.Descriptor instead. func (*PlatformInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{36} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{39} } func (x *PlatformInfo) GetWorkUuid() string { @@ -3344,7 +3524,7 @@ type UpdateWorkPlatformInfoReq struct { func (x *UpdateWorkPlatformInfoReq) Reset() { *x = UpdateWorkPlatformInfoReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[37] + mi := &file_pb_fiee_cast_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3356,7 +3536,7 @@ func (x *UpdateWorkPlatformInfoReq) String() string { func (*UpdateWorkPlatformInfoReq) ProtoMessage() {} func (x *UpdateWorkPlatformInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[37] + mi := &file_pb_fiee_cast_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3369,7 +3549,7 @@ func (x *UpdateWorkPlatformInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkPlatformInfoReq.ProtoReflect.Descriptor instead. func (*UpdateWorkPlatformInfoReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{37} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{40} } func (x *UpdateWorkPlatformInfoReq) GetPlatformInfoData() []*PlatformInfo { @@ -3388,7 +3568,7 @@ type UpdateWorkPlatformInfoResp struct { func (x *UpdateWorkPlatformInfoResp) Reset() { *x = UpdateWorkPlatformInfoResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[38] + mi := &file_pb_fiee_cast_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3400,7 +3580,7 @@ func (x *UpdateWorkPlatformInfoResp) String() string { func (*UpdateWorkPlatformInfoResp) ProtoMessage() {} func (x *UpdateWorkPlatformInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[38] + mi := &file_pb_fiee_cast_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3413,7 +3593,7 @@ func (x *UpdateWorkPlatformInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkPlatformInfoResp.ProtoReflect.Descriptor instead. func (*UpdateWorkPlatformInfoResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{38} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{41} } func (x *UpdateWorkPlatformInfoResp) GetWorkUuid() []string { @@ -3435,7 +3615,7 @@ type UpdateWorkPublishLogReq struct { func (x *UpdateWorkPublishLogReq) Reset() { *x = UpdateWorkPublishLogReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[39] + mi := &file_pb_fiee_cast_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3447,7 +3627,7 @@ func (x *UpdateWorkPublishLogReq) String() string { func (*UpdateWorkPublishLogReq) ProtoMessage() {} func (x *UpdateWorkPublishLogReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[39] + mi := &file_pb_fiee_cast_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3460,7 +3640,7 @@ func (x *UpdateWorkPublishLogReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkPublishLogReq.ProtoReflect.Descriptor instead. func (*UpdateWorkPublishLogReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{39} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{42} } func (x *UpdateWorkPublishLogReq) GetWorkUuid() string { @@ -3500,7 +3680,7 @@ type RefreshWorkListReq struct { func (x *RefreshWorkListReq) Reset() { *x = RefreshWorkListReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[40] + mi := &file_pb_fiee_cast_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3512,7 +3692,7 @@ func (x *RefreshWorkListReq) String() string { func (*RefreshWorkListReq) ProtoMessage() {} func (x *RefreshWorkListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[40] + mi := &file_pb_fiee_cast_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3525,7 +3705,7 @@ func (x *RefreshWorkListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshWorkListReq.ProtoReflect.Descriptor instead. func (*RefreshWorkListReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{40} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{43} } func (x *RefreshWorkListReq) GetPublishStatus() uint32 { @@ -3544,7 +3724,7 @@ type RefreshWorkListResp struct { func (x *RefreshWorkListResp) Reset() { *x = RefreshWorkListResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[41] + mi := &file_pb_fiee_cast_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3556,7 +3736,7 @@ func (x *RefreshWorkListResp) String() string { func (*RefreshWorkListResp) ProtoMessage() {} func (x *RefreshWorkListResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[41] + mi := &file_pb_fiee_cast_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3569,7 +3749,7 @@ func (x *RefreshWorkListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshWorkListResp.ProtoReflect.Descriptor instead. func (*RefreshWorkListResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{41} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{44} } func (x *RefreshWorkListResp) GetData() []*RefreshWorkListResp_Info { @@ -3588,7 +3768,7 @@ type OAuthAccountReq struct { func (x *OAuthAccountReq) Reset() { *x = OAuthAccountReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[42] + mi := &file_pb_fiee_cast_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3600,7 +3780,7 @@ func (x *OAuthAccountReq) String() string { func (*OAuthAccountReq) ProtoMessage() {} func (x *OAuthAccountReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[42] + mi := &file_pb_fiee_cast_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3613,7 +3793,7 @@ func (x *OAuthAccountReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthAccountReq.ProtoReflect.Descriptor instead. func (*OAuthAccountReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{42} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{45} } func (x *OAuthAccountReq) GetMediaAccountUuid() string { @@ -3632,7 +3812,7 @@ type OAuthAccountResp struct { func (x *OAuthAccountResp) Reset() { *x = OAuthAccountResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[43] + mi := &file_pb_fiee_cast_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3644,7 +3824,7 @@ func (x *OAuthAccountResp) String() string { func (*OAuthAccountResp) ProtoMessage() {} func (x *OAuthAccountResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[43] + mi := &file_pb_fiee_cast_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3657,7 +3837,7 @@ func (x *OAuthAccountResp) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthAccountResp.ProtoReflect.Descriptor instead. func (*OAuthAccountResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{43} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{46} } func (x *OAuthAccountResp) GetUrl() string { @@ -3676,7 +3856,7 @@ type OAuthAccountV2Req struct { func (x *OAuthAccountV2Req) Reset() { *x = OAuthAccountV2Req{} - mi := &file_pb_fiee_cast_proto_msgTypes[44] + mi := &file_pb_fiee_cast_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3688,7 +3868,7 @@ func (x *OAuthAccountV2Req) String() string { func (*OAuthAccountV2Req) ProtoMessage() {} func (x *OAuthAccountV2Req) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[44] + mi := &file_pb_fiee_cast_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3701,7 +3881,7 @@ func (x *OAuthAccountV2Req) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthAccountV2Req.ProtoReflect.Descriptor instead. func (*OAuthAccountV2Req) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{44} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{47} } func (x *OAuthAccountV2Req) GetMediaAccountUuid() string { @@ -3723,7 +3903,7 @@ type OAuthAccountV2Resp struct { func (x *OAuthAccountV2Resp) Reset() { *x = OAuthAccountV2Resp{} - mi := &file_pb_fiee_cast_proto_msgTypes[45] + mi := &file_pb_fiee_cast_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3735,7 +3915,7 @@ func (x *OAuthAccountV2Resp) String() string { func (*OAuthAccountV2Resp) ProtoMessage() {} func (x *OAuthAccountV2Resp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[45] + mi := &file_pb_fiee_cast_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3748,7 +3928,7 @@ func (x *OAuthAccountV2Resp) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthAccountV2Resp.ProtoReflect.Descriptor instead. func (*OAuthAccountV2Resp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{45} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{48} } func (x *OAuthAccountV2Resp) GetArtistUuid() string { @@ -3790,7 +3970,7 @@ type OAuthYoutubeTokenReq struct { func (x *OAuthYoutubeTokenReq) Reset() { *x = OAuthYoutubeTokenReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[46] + mi := &file_pb_fiee_cast_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3802,7 +3982,7 @@ func (x *OAuthYoutubeTokenReq) String() string { func (*OAuthYoutubeTokenReq) ProtoMessage() {} func (x *OAuthYoutubeTokenReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[46] + mi := &file_pb_fiee_cast_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3815,7 +3995,7 @@ func (x *OAuthYoutubeTokenReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthYoutubeTokenReq.ProtoReflect.Descriptor instead. func (*OAuthYoutubeTokenReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{46} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{49} } func (x *OAuthYoutubeTokenReq) GetMediaAccountUuid() string { @@ -3843,7 +4023,7 @@ type OAuthYoutubeTokenResp struct { func (x *OAuthYoutubeTokenResp) Reset() { *x = OAuthYoutubeTokenResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[47] + mi := &file_pb_fiee_cast_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3855,7 +4035,7 @@ func (x *OAuthYoutubeTokenResp) String() string { func (*OAuthYoutubeTokenResp) ProtoMessage() {} func (x *OAuthYoutubeTokenResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[47] + mi := &file_pb_fiee_cast_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3868,7 +4048,7 @@ func (x *OAuthYoutubeTokenResp) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthYoutubeTokenResp.ProtoReflect.Descriptor instead. func (*OAuthYoutubeTokenResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{47} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{50} } func (x *OAuthYoutubeTokenResp) GetAccessToken() string { @@ -3903,7 +4083,7 @@ type OAuthCodeToTokenReq struct { func (x *OAuthCodeToTokenReq) Reset() { *x = OAuthCodeToTokenReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[48] + mi := &file_pb_fiee_cast_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3915,7 +4095,7 @@ func (x *OAuthCodeToTokenReq) String() string { func (*OAuthCodeToTokenReq) ProtoMessage() {} func (x *OAuthCodeToTokenReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[48] + mi := &file_pb_fiee_cast_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3928,7 +4108,7 @@ func (x *OAuthCodeToTokenReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthCodeToTokenReq.ProtoReflect.Descriptor instead. func (*OAuthCodeToTokenReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{48} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{51} } func (x *OAuthCodeToTokenReq) GetCode() string { @@ -3960,7 +4140,7 @@ type OAuthCodeToTokenResp struct { func (x *OAuthCodeToTokenResp) Reset() { *x = OAuthCodeToTokenResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[49] + mi := &file_pb_fiee_cast_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3972,7 +4152,7 @@ func (x *OAuthCodeToTokenResp) String() string { func (*OAuthCodeToTokenResp) ProtoMessage() {} func (x *OAuthCodeToTokenResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[49] + mi := &file_pb_fiee_cast_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3985,7 +4165,7 @@ func (x *OAuthCodeToTokenResp) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthCodeToTokenResp.ProtoReflect.Descriptor instead. func (*OAuthCodeToTokenResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{49} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{52} } type UpdateOAuthReq struct { @@ -3997,7 +4177,7 @@ type UpdateOAuthReq struct { func (x *UpdateOAuthReq) Reset() { *x = UpdateOAuthReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[50] + mi := &file_pb_fiee_cast_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4009,7 +4189,7 @@ func (x *UpdateOAuthReq) String() string { func (*UpdateOAuthReq) ProtoMessage() {} func (x *UpdateOAuthReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[50] + mi := &file_pb_fiee_cast_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4022,7 +4202,7 @@ func (x *UpdateOAuthReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateOAuthReq.ProtoReflect.Descriptor instead. func (*UpdateOAuthReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{50} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{53} } func (x *UpdateOAuthReq) GetData() []*UpdateOAuthReq_Info { @@ -4043,7 +4223,7 @@ type RefreshTokenReq struct { func (x *RefreshTokenReq) Reset() { *x = RefreshTokenReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[51] + mi := &file_pb_fiee_cast_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4055,7 +4235,7 @@ func (x *RefreshTokenReq) String() string { func (*RefreshTokenReq) ProtoMessage() {} func (x *RefreshTokenReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[51] + mi := &file_pb_fiee_cast_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4068,7 +4248,7 @@ func (x *RefreshTokenReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshTokenReq.ProtoReflect.Descriptor instead. func (*RefreshTokenReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{51} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{54} } func (x *RefreshTokenReq) GetRefreshToken() string { @@ -4102,7 +4282,7 @@ type RefreshTokenResp struct { func (x *RefreshTokenResp) Reset() { *x = RefreshTokenResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[52] + mi := &file_pb_fiee_cast_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4114,7 +4294,7 @@ func (x *RefreshTokenResp) String() string { func (*RefreshTokenResp) ProtoMessage() {} func (x *RefreshTokenResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[52] + mi := &file_pb_fiee_cast_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4127,7 +4307,7 @@ func (x *RefreshTokenResp) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshTokenResp.ProtoReflect.Descriptor instead. func (*RefreshTokenResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{52} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{55} } func (x *RefreshTokenResp) GetAccessToken() string { @@ -4155,7 +4335,7 @@ type PublishMediaInfoReq struct { func (x *PublishMediaInfoReq) Reset() { *x = PublishMediaInfoReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[53] + mi := &file_pb_fiee_cast_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4167,7 +4347,7 @@ func (x *PublishMediaInfoReq) String() string { func (*PublishMediaInfoReq) ProtoMessage() {} func (x *PublishMediaInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[53] + mi := &file_pb_fiee_cast_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4180,7 +4360,7 @@ func (x *PublishMediaInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PublishMediaInfoReq.ProtoReflect.Descriptor instead. func (*PublishMediaInfoReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{53} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{56} } func (x *PublishMediaInfoReq) GetWorkUuid() string { @@ -4216,7 +4396,7 @@ type PublishMediaInfoResp struct { func (x *PublishMediaInfoResp) Reset() { *x = PublishMediaInfoResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[54] + mi := &file_pb_fiee_cast_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4228,7 +4408,7 @@ func (x *PublishMediaInfoResp) String() string { func (*PublishMediaInfoResp) ProtoMessage() {} func (x *PublishMediaInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[54] + mi := &file_pb_fiee_cast_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4241,7 +4421,7 @@ func (x *PublishMediaInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use PublishMediaInfoResp.ProtoReflect.Descriptor instead. func (*PublishMediaInfoResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{54} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{57} } func (x *PublishMediaInfoResp) GetWorkUuid() string { @@ -4291,7 +4471,7 @@ type UpdateVideoScriptReq struct { func (x *UpdateVideoScriptReq) Reset() { *x = UpdateVideoScriptReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[55] + mi := &file_pb_fiee_cast_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4303,7 +4483,7 @@ func (x *UpdateVideoScriptReq) String() string { func (*UpdateVideoScriptReq) ProtoMessage() {} func (x *UpdateVideoScriptReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[55] + mi := &file_pb_fiee_cast_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4316,7 +4496,7 @@ func (x *UpdateVideoScriptReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateVideoScriptReq.ProtoReflect.Descriptor instead. func (*UpdateVideoScriptReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{55} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{58} } func (x *UpdateVideoScriptReq) GetUuid() string { @@ -4391,7 +4571,7 @@ type UpdateVideoScriptResp struct { func (x *UpdateVideoScriptResp) Reset() { *x = UpdateVideoScriptResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[56] + mi := &file_pb_fiee_cast_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4403,7 +4583,7 @@ func (x *UpdateVideoScriptResp) String() string { func (*UpdateVideoScriptResp) ProtoMessage() {} func (x *UpdateVideoScriptResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[56] + mi := &file_pb_fiee_cast_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4416,7 +4596,7 @@ func (x *UpdateVideoScriptResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateVideoScriptResp.ProtoReflect.Descriptor instead. func (*UpdateVideoScriptResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{56} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{59} } func (x *UpdateVideoScriptResp) GetUuid() string { @@ -4436,7 +4616,7 @@ type GetVideoScriptReq struct { func (x *GetVideoScriptReq) Reset() { *x = GetVideoScriptReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[57] + mi := &file_pb_fiee_cast_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4448,7 +4628,7 @@ func (x *GetVideoScriptReq) String() string { func (*GetVideoScriptReq) ProtoMessage() {} func (x *GetVideoScriptReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[57] + mi := &file_pb_fiee_cast_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4461,7 +4641,7 @@ func (x *GetVideoScriptReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVideoScriptReq.ProtoReflect.Descriptor instead. func (*GetVideoScriptReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{57} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{60} } func (x *GetVideoScriptReq) GetUuid() string { @@ -4492,7 +4672,7 @@ type GetVideoScriptResp struct { func (x *GetVideoScriptResp) Reset() { *x = GetVideoScriptResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[58] + mi := &file_pb_fiee_cast_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4504,7 +4684,7 @@ func (x *GetVideoScriptResp) String() string { func (*GetVideoScriptResp) ProtoMessage() {} func (x *GetVideoScriptResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[58] + mi := &file_pb_fiee_cast_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4517,7 +4697,7 @@ func (x *GetVideoScriptResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVideoScriptResp.ProtoReflect.Descriptor instead. func (*GetVideoScriptResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{58} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{61} } func (x *GetVideoScriptResp) GetUuid() string { @@ -4629,7 +4809,7 @@ type ListVideoScriptsReq struct { func (x *ListVideoScriptsReq) Reset() { *x = ListVideoScriptsReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[59] + mi := &file_pb_fiee_cast_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4641,7 +4821,7 @@ func (x *ListVideoScriptsReq) String() string { func (*ListVideoScriptsReq) ProtoMessage() {} func (x *ListVideoScriptsReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[59] + mi := &file_pb_fiee_cast_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4654,7 +4834,7 @@ func (x *ListVideoScriptsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListVideoScriptsReq.ProtoReflect.Descriptor instead. func (*ListVideoScriptsReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{59} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{62} } func (x *ListVideoScriptsReq) GetTitle() string { @@ -4742,7 +4922,7 @@ type VideoScriptInfo struct { func (x *VideoScriptInfo) Reset() { *x = VideoScriptInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[60] + mi := &file_pb_fiee_cast_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4754,7 +4934,7 @@ func (x *VideoScriptInfo) String() string { func (*VideoScriptInfo) ProtoMessage() {} func (x *VideoScriptInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[60] + mi := &file_pb_fiee_cast_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4767,7 +4947,7 @@ func (x *VideoScriptInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use VideoScriptInfo.ProtoReflect.Descriptor instead. func (*VideoScriptInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{60} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{63} } func (x *VideoScriptInfo) GetUuid() string { @@ -4878,7 +5058,7 @@ type ListVideoScriptsResp struct { func (x *ListVideoScriptsResp) Reset() { *x = ListVideoScriptsResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[61] + mi := &file_pb_fiee_cast_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4890,7 +5070,7 @@ func (x *ListVideoScriptsResp) String() string { func (*ListVideoScriptsResp) ProtoMessage() {} func (x *ListVideoScriptsResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[61] + mi := &file_pb_fiee_cast_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4903,7 +5083,7 @@ func (x *ListVideoScriptsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListVideoScriptsResp.ProtoReflect.Descriptor instead. func (*ListVideoScriptsResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{61} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{64} } func (x *ListVideoScriptsResp) GetData() []*VideoScriptInfo { @@ -4930,7 +5110,7 @@ type DeleteVideoScriptReq struct { func (x *DeleteVideoScriptReq) Reset() { *x = DeleteVideoScriptReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[62] + mi := &file_pb_fiee_cast_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4942,7 +5122,7 @@ func (x *DeleteVideoScriptReq) String() string { func (*DeleteVideoScriptReq) ProtoMessage() {} func (x *DeleteVideoScriptReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[62] + mi := &file_pb_fiee_cast_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4955,7 +5135,7 @@ func (x *DeleteVideoScriptReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteVideoScriptReq.ProtoReflect.Descriptor instead. func (*DeleteVideoScriptReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{62} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{65} } func (x *DeleteVideoScriptReq) GetUuid() string { @@ -4974,7 +5154,7 @@ type UpdateVideoScriptBatchReq struct { func (x *UpdateVideoScriptBatchReq) Reset() { *x = UpdateVideoScriptBatchReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[63] + mi := &file_pb_fiee_cast_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4986,7 +5166,7 @@ func (x *UpdateVideoScriptBatchReq) String() string { func (*UpdateVideoScriptBatchReq) ProtoMessage() {} func (x *UpdateVideoScriptBatchReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[63] + mi := &file_pb_fiee_cast_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4999,7 +5179,7 @@ func (x *UpdateVideoScriptBatchReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateVideoScriptBatchReq.ProtoReflect.Descriptor instead. func (*UpdateVideoScriptBatchReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{63} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{66} } func (x *UpdateVideoScriptBatchReq) GetData() []*VideoScriptInfo { @@ -5020,7 +5200,7 @@ type UpdateVideoScriptBatchResp struct { func (x *UpdateVideoScriptBatchResp) Reset() { *x = UpdateVideoScriptBatchResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[64] + mi := &file_pb_fiee_cast_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5032,7 +5212,7 @@ func (x *UpdateVideoScriptBatchResp) String() string { func (*UpdateVideoScriptBatchResp) ProtoMessage() {} func (x *UpdateVideoScriptBatchResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[64] + mi := &file_pb_fiee_cast_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5045,7 +5225,7 @@ func (x *UpdateVideoScriptBatchResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateVideoScriptBatchResp.ProtoReflect.Descriptor instead. func (*UpdateVideoScriptBatchResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{64} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{67} } func (x *UpdateVideoScriptBatchResp) GetData() []*VideoScriptInfo { @@ -5081,7 +5261,7 @@ type UpdateScriptStatusReq struct { func (x *UpdateScriptStatusReq) Reset() { *x = UpdateScriptStatusReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[65] + mi := &file_pb_fiee_cast_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5093,7 +5273,7 @@ func (x *UpdateScriptStatusReq) String() string { func (*UpdateScriptStatusReq) ProtoMessage() {} func (x *UpdateScriptStatusReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[65] + mi := &file_pb_fiee_cast_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5106,7 +5286,7 @@ func (x *UpdateScriptStatusReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScriptStatusReq.ProtoReflect.Descriptor instead. func (*UpdateScriptStatusReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{65} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{68} } func (x *UpdateScriptStatusReq) GetWorkAction() WorkActionENUM { @@ -5148,7 +5328,7 @@ type SetLayoutReq struct { func (x *SetLayoutReq) Reset() { *x = SetLayoutReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[66] + mi := &file_pb_fiee_cast_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5160,7 +5340,7 @@ func (x *SetLayoutReq) String() string { func (*SetLayoutReq) ProtoMessage() {} func (x *SetLayoutReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[66] + mi := &file_pb_fiee_cast_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5173,7 +5353,7 @@ func (x *SetLayoutReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SetLayoutReq.ProtoReflect.Descriptor instead. func (*SetLayoutReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{66} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{69} } func (x *SetLayoutReq) GetUserID() string { @@ -5207,7 +5387,7 @@ type GetLayoutReq struct { func (x *GetLayoutReq) Reset() { *x = GetLayoutReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[67] + mi := &file_pb_fiee_cast_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5219,7 +5399,7 @@ func (x *GetLayoutReq) String() string { func (*GetLayoutReq) ProtoMessage() {} func (x *GetLayoutReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[67] + mi := &file_pb_fiee_cast_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5232,7 +5412,7 @@ func (x *GetLayoutReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetLayoutReq.ProtoReflect.Descriptor instead. func (*GetLayoutReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{67} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{70} } func (x *GetLayoutReq) GetUserID() string { @@ -5259,7 +5439,7 @@ type GetLayoutResp struct { func (x *GetLayoutResp) Reset() { *x = GetLayoutResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[68] + mi := &file_pb_fiee_cast_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5271,7 +5451,7 @@ func (x *GetLayoutResp) String() string { func (*GetLayoutResp) ProtoMessage() {} func (x *GetLayoutResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[68] + mi := &file_pb_fiee_cast_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5284,7 +5464,7 @@ func (x *GetLayoutResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetLayoutResp.ProtoReflect.Descriptor instead. func (*GetLayoutResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{68} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{71} } func (x *GetLayoutResp) GetData() string { @@ -5313,7 +5493,7 @@ type UpdatePromptReq struct { func (x *UpdatePromptReq) Reset() { *x = UpdatePromptReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[69] + mi := &file_pb_fiee_cast_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5325,7 +5505,7 @@ func (x *UpdatePromptReq) String() string { func (*UpdatePromptReq) ProtoMessage() {} func (x *UpdatePromptReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[69] + mi := &file_pb_fiee_cast_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5338,7 +5518,7 @@ func (x *UpdatePromptReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdatePromptReq.ProtoReflect.Descriptor instead. func (*UpdatePromptReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{69} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{72} } func (x *UpdatePromptReq) GetPromptUuid() string { @@ -5371,7 +5551,7 @@ type DeletePromptReq struct { func (x *DeletePromptReq) Reset() { *x = DeletePromptReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[70] + mi := &file_pb_fiee_cast_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5383,7 +5563,7 @@ func (x *DeletePromptReq) String() string { func (*DeletePromptReq) ProtoMessage() {} func (x *DeletePromptReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[70] + mi := &file_pb_fiee_cast_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5396,7 +5576,7 @@ func (x *DeletePromptReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeletePromptReq.ProtoReflect.Descriptor instead. func (*DeletePromptReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{70} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{73} } func (x *DeletePromptReq) GetPromptUuid() string { @@ -5415,7 +5595,7 @@ type GetPromptReq struct { func (x *GetPromptReq) Reset() { *x = GetPromptReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[71] + mi := &file_pb_fiee_cast_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5427,7 +5607,7 @@ func (x *GetPromptReq) String() string { func (*GetPromptReq) ProtoMessage() {} func (x *GetPromptReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[71] + mi := &file_pb_fiee_cast_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5440,7 +5620,7 @@ func (x *GetPromptReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPromptReq.ProtoReflect.Descriptor instead. func (*GetPromptReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{71} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{74} } func (x *GetPromptReq) GetPromptUuid() string { @@ -5462,7 +5642,7 @@ type GetPromptResp struct { func (x *GetPromptResp) Reset() { *x = GetPromptResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[72] + mi := &file_pb_fiee_cast_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5474,7 +5654,7 @@ func (x *GetPromptResp) String() string { func (*GetPromptResp) ProtoMessage() {} func (x *GetPromptResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[72] + mi := &file_pb_fiee_cast_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5487,7 +5667,7 @@ func (x *GetPromptResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPromptResp.ProtoReflect.Descriptor instead. func (*GetPromptResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{72} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{75} } func (x *GetPromptResp) GetPromptUuid() string { @@ -5533,7 +5713,7 @@ type ListPromptsReq struct { func (x *ListPromptsReq) Reset() { *x = ListPromptsReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[73] + mi := &file_pb_fiee_cast_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5545,7 +5725,7 @@ func (x *ListPromptsReq) String() string { func (*ListPromptsReq) ProtoMessage() {} func (x *ListPromptsReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[73] + mi := &file_pb_fiee_cast_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5558,7 +5738,7 @@ func (x *ListPromptsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPromptsReq.ProtoReflect.Descriptor instead. func (*ListPromptsReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{73} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{76} } func (x *ListPromptsReq) GetPrompt() string { @@ -5626,7 +5806,7 @@ type PromptInfo struct { func (x *PromptInfo) Reset() { *x = PromptInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[74] + mi := &file_pb_fiee_cast_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5638,7 +5818,7 @@ func (x *PromptInfo) String() string { func (*PromptInfo) ProtoMessage() {} func (x *PromptInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[74] + mi := &file_pb_fiee_cast_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5651,7 +5831,7 @@ func (x *PromptInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PromptInfo.ProtoReflect.Descriptor instead. func (*PromptInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{74} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{77} } func (x *PromptInfo) GetPromptUuid() string { @@ -5720,7 +5900,7 @@ type ListPromptsResp struct { func (x *ListPromptsResp) Reset() { *x = ListPromptsResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[75] + mi := &file_pb_fiee_cast_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5732,7 +5912,7 @@ func (x *ListPromptsResp) String() string { func (*ListPromptsResp) ProtoMessage() {} func (x *ListPromptsResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[75] + mi := &file_pb_fiee_cast_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5745,7 +5925,7 @@ func (x *ListPromptsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPromptsResp.ProtoReflect.Descriptor instead. func (*ListPromptsResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{75} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{78} } func (x *ListPromptsResp) GetData() []*PromptInfo { @@ -5771,7 +5951,7 @@ type UpdatePromptBatchReq struct { func (x *UpdatePromptBatchReq) Reset() { *x = UpdatePromptBatchReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[76] + mi := &file_pb_fiee_cast_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5783,7 +5963,7 @@ func (x *UpdatePromptBatchReq) String() string { func (*UpdatePromptBatchReq) ProtoMessage() {} func (x *UpdatePromptBatchReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[76] + mi := &file_pb_fiee_cast_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5796,7 +5976,7 @@ func (x *UpdatePromptBatchReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdatePromptBatchReq.ProtoReflect.Descriptor instead. func (*UpdatePromptBatchReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{76} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{79} } func (x *UpdatePromptBatchReq) GetData() []*PromptInfo { @@ -5817,7 +5997,7 @@ type UpdatePromptBatchResp struct { func (x *UpdatePromptBatchResp) Reset() { *x = UpdatePromptBatchResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[77] + mi := &file_pb_fiee_cast_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5829,7 +6009,7 @@ func (x *UpdatePromptBatchResp) String() string { func (*UpdatePromptBatchResp) ProtoMessage() {} func (x *UpdatePromptBatchResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[77] + mi := &file_pb_fiee_cast_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5842,7 +6022,7 @@ func (x *UpdatePromptBatchResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdatePromptBatchResp.ProtoReflect.Descriptor instead. func (*UpdatePromptBatchResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{77} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{80} } func (x *UpdatePromptBatchResp) GetData() []*PromptInfo { @@ -5879,7 +6059,7 @@ type ArtistInfo struct { func (x *ArtistInfo) Reset() { *x = ArtistInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[78] + mi := &file_pb_fiee_cast_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5891,7 +6071,7 @@ func (x *ArtistInfo) String() string { func (*ArtistInfo) ProtoMessage() {} func (x *ArtistInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[78] + mi := &file_pb_fiee_cast_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5904,7 +6084,7 @@ func (x *ArtistInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistInfo.ProtoReflect.Descriptor instead. func (*ArtistInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{78} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{81} } func (x *ArtistInfo) GetArtistUuid() string { @@ -5945,7 +6125,7 @@ type UpdateArtistReq struct { func (x *UpdateArtistReq) Reset() { *x = UpdateArtistReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[79] + mi := &file_pb_fiee_cast_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5957,7 +6137,7 @@ func (x *UpdateArtistReq) String() string { func (*UpdateArtistReq) ProtoMessage() {} func (x *UpdateArtistReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[79] + mi := &file_pb_fiee_cast_proto_msgTypes[82] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5970,7 +6150,7 @@ func (x *UpdateArtistReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateArtistReq.ProtoReflect.Descriptor instead. func (*UpdateArtistReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{79} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{82} } func (x *UpdateArtistReq) GetArtistInfo() *ArtistInfo { @@ -5996,7 +6176,7 @@ type UpdateArtistResp struct { func (x *UpdateArtistResp) Reset() { *x = UpdateArtistResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[80] + mi := &file_pb_fiee_cast_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6008,7 +6188,7 @@ func (x *UpdateArtistResp) String() string { func (*UpdateArtistResp) ProtoMessage() {} func (x *UpdateArtistResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[80] + mi := &file_pb_fiee_cast_proto_msgTypes[83] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6021,7 +6201,7 @@ func (x *UpdateArtistResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateArtistResp.ProtoReflect.Descriptor instead. func (*UpdateArtistResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{80} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{83} } func (x *UpdateArtistResp) GetArtistUuid() string { @@ -6040,7 +6220,7 @@ type GetArtistReq struct { func (x *GetArtistReq) Reset() { *x = GetArtistReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[81] + mi := &file_pb_fiee_cast_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6052,7 +6232,7 @@ func (x *GetArtistReq) String() string { func (*GetArtistReq) ProtoMessage() {} func (x *GetArtistReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[81] + mi := &file_pb_fiee_cast_proto_msgTypes[84] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6065,7 +6245,7 @@ func (x *GetArtistReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtistReq.ProtoReflect.Descriptor instead. func (*GetArtistReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{81} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{84} } func (x *GetArtistReq) GetArtistUuid() string { @@ -6085,7 +6265,7 @@ type GetArtistResp struct { func (x *GetArtistResp) Reset() { *x = GetArtistResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[82] + mi := &file_pb_fiee_cast_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6097,7 +6277,7 @@ func (x *GetArtistResp) String() string { func (*GetArtistResp) ProtoMessage() {} func (x *GetArtistResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[82] + mi := &file_pb_fiee_cast_proto_msgTypes[85] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6110,7 +6290,7 @@ func (x *GetArtistResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtistResp.ProtoReflect.Descriptor instead. func (*GetArtistResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{82} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{85} } func (x *GetArtistResp) GetArtistInfo() *ArtistInfo { @@ -6160,7 +6340,7 @@ type CreateWorkAnalysisReq struct { func (x *CreateWorkAnalysisReq) Reset() { *x = CreateWorkAnalysisReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[83] + mi := &file_pb_fiee_cast_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6172,7 +6352,7 @@ func (x *CreateWorkAnalysisReq) String() string { func (*CreateWorkAnalysisReq) ProtoMessage() {} func (x *CreateWorkAnalysisReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[83] + mi := &file_pb_fiee_cast_proto_msgTypes[86] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6185,7 +6365,7 @@ func (x *CreateWorkAnalysisReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateWorkAnalysisReq.ProtoReflect.Descriptor instead. func (*CreateWorkAnalysisReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{83} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{86} } func (x *CreateWorkAnalysisReq) GetUuid() string { @@ -6365,7 +6545,7 @@ type CreateWorkAnalysisResp struct { func (x *CreateWorkAnalysisResp) Reset() { *x = CreateWorkAnalysisResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[84] + mi := &file_pb_fiee_cast_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6377,7 +6557,7 @@ func (x *CreateWorkAnalysisResp) String() string { func (*CreateWorkAnalysisResp) ProtoMessage() {} func (x *CreateWorkAnalysisResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[84] + mi := &file_pb_fiee_cast_proto_msgTypes[87] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6390,7 +6570,7 @@ func (x *CreateWorkAnalysisResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateWorkAnalysisResp.ProtoReflect.Descriptor instead. func (*CreateWorkAnalysisResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{84} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{87} } func (x *CreateWorkAnalysisResp) GetUuid() string { @@ -6429,7 +6609,7 @@ type UpdateWorkAnalysisReq struct { func (x *UpdateWorkAnalysisReq) Reset() { *x = UpdateWorkAnalysisReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[85] + mi := &file_pb_fiee_cast_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6441,7 +6621,7 @@ func (x *UpdateWorkAnalysisReq) String() string { func (*UpdateWorkAnalysisReq) ProtoMessage() {} func (x *UpdateWorkAnalysisReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[85] + mi := &file_pb_fiee_cast_proto_msgTypes[88] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6454,7 +6634,7 @@ func (x *UpdateWorkAnalysisReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkAnalysisReq.ProtoReflect.Descriptor instead. func (*UpdateWorkAnalysisReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{85} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{88} } func (x *UpdateWorkAnalysisReq) GetUuid() string { @@ -6620,7 +6800,7 @@ type UpdateWorkAnalysisStatusReq struct { func (x *UpdateWorkAnalysisStatusReq) Reset() { *x = UpdateWorkAnalysisStatusReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[86] + mi := &file_pb_fiee_cast_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6632,7 +6812,7 @@ func (x *UpdateWorkAnalysisStatusReq) String() string { func (*UpdateWorkAnalysisStatusReq) ProtoMessage() {} func (x *UpdateWorkAnalysisStatusReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[86] + mi := &file_pb_fiee_cast_proto_msgTypes[89] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6645,7 +6825,7 @@ func (x *UpdateWorkAnalysisStatusReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkAnalysisStatusReq.ProtoReflect.Descriptor instead. func (*UpdateWorkAnalysisStatusReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{86} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{89} } func (x *UpdateWorkAnalysisStatusReq) GetWorkAction() WorkActionENUM { @@ -6721,7 +6901,7 @@ type WorkAnalysisLogInfo struct { func (x *WorkAnalysisLogInfo) Reset() { *x = WorkAnalysisLogInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[87] + mi := &file_pb_fiee_cast_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6733,7 +6913,7 @@ func (x *WorkAnalysisLogInfo) String() string { func (*WorkAnalysisLogInfo) ProtoMessage() {} func (x *WorkAnalysisLogInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[87] + mi := &file_pb_fiee_cast_proto_msgTypes[90] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6746,7 +6926,7 @@ func (x *WorkAnalysisLogInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisLogInfo.ProtoReflect.Descriptor instead. func (*WorkAnalysisLogInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{87} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{90} } func (x *WorkAnalysisLogInfo) GetWorkUuid() string { @@ -6829,7 +7009,7 @@ type WorkAnalysisFansSeries struct { func (x *WorkAnalysisFansSeries) Reset() { *x = WorkAnalysisFansSeries{} - mi := &file_pb_fiee_cast_proto_msgTypes[88] + mi := &file_pb_fiee_cast_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6841,7 +7021,7 @@ func (x *WorkAnalysisFansSeries) String() string { func (*WorkAnalysisFansSeries) ProtoMessage() {} func (x *WorkAnalysisFansSeries) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[88] + mi := &file_pb_fiee_cast_proto_msgTypes[91] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6854,7 +7034,7 @@ func (x *WorkAnalysisFansSeries) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisFansSeries.ProtoReflect.Descriptor instead. func (*WorkAnalysisFansSeries) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{88} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{91} } func (x *WorkAnalysisFansSeries) GetUuid() string { @@ -6930,7 +7110,7 @@ type WorkAnalysisViewsSeries struct { func (x *WorkAnalysisViewsSeries) Reset() { *x = WorkAnalysisViewsSeries{} - mi := &file_pb_fiee_cast_proto_msgTypes[89] + mi := &file_pb_fiee_cast_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6942,7 +7122,7 @@ func (x *WorkAnalysisViewsSeries) String() string { func (*WorkAnalysisViewsSeries) ProtoMessage() {} func (x *WorkAnalysisViewsSeries) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[89] + mi := &file_pb_fiee_cast_proto_msgTypes[92] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6955,7 +7135,7 @@ func (x *WorkAnalysisViewsSeries) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisViewsSeries.ProtoReflect.Descriptor instead. func (*WorkAnalysisViewsSeries) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{89} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{92} } func (x *WorkAnalysisViewsSeries) GetUuid() string { @@ -7031,7 +7211,7 @@ type WorkAnalysisLikesSeries struct { func (x *WorkAnalysisLikesSeries) Reset() { *x = WorkAnalysisLikesSeries{} - mi := &file_pb_fiee_cast_proto_msgTypes[90] + mi := &file_pb_fiee_cast_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7043,7 +7223,7 @@ func (x *WorkAnalysisLikesSeries) String() string { func (*WorkAnalysisLikesSeries) ProtoMessage() {} func (x *WorkAnalysisLikesSeries) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[90] + mi := &file_pb_fiee_cast_proto_msgTypes[93] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7056,7 +7236,7 @@ func (x *WorkAnalysisLikesSeries) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisLikesSeries.ProtoReflect.Descriptor instead. func (*WorkAnalysisLikesSeries) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{90} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{93} } func (x *WorkAnalysisLikesSeries) GetUuid() string { @@ -7132,7 +7312,7 @@ type WorkAnalysisCommentsSeries struct { func (x *WorkAnalysisCommentsSeries) Reset() { *x = WorkAnalysisCommentsSeries{} - mi := &file_pb_fiee_cast_proto_msgTypes[91] + mi := &file_pb_fiee_cast_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7144,7 +7324,7 @@ func (x *WorkAnalysisCommentsSeries) String() string { func (*WorkAnalysisCommentsSeries) ProtoMessage() {} func (x *WorkAnalysisCommentsSeries) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[91] + mi := &file_pb_fiee_cast_proto_msgTypes[94] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7157,7 +7337,7 @@ func (x *WorkAnalysisCommentsSeries) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisCommentsSeries.ProtoReflect.Descriptor instead. func (*WorkAnalysisCommentsSeries) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{91} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{94} } func (x *WorkAnalysisCommentsSeries) GetUuid() string { @@ -7233,7 +7413,7 @@ type WorkAnalysisSharesSeries struct { func (x *WorkAnalysisSharesSeries) Reset() { *x = WorkAnalysisSharesSeries{} - mi := &file_pb_fiee_cast_proto_msgTypes[92] + mi := &file_pb_fiee_cast_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7245,7 +7425,7 @@ func (x *WorkAnalysisSharesSeries) String() string { func (*WorkAnalysisSharesSeries) ProtoMessage() {} func (x *WorkAnalysisSharesSeries) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[92] + mi := &file_pb_fiee_cast_proto_msgTypes[95] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7258,7 +7438,7 @@ func (x *WorkAnalysisSharesSeries) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisSharesSeries.ProtoReflect.Descriptor instead. func (*WorkAnalysisSharesSeries) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{92} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{95} } func (x *WorkAnalysisSharesSeries) GetUuid() string { @@ -7330,7 +7510,7 @@ type WorkAnalysisTopCities struct { func (x *WorkAnalysisTopCities) Reset() { *x = WorkAnalysisTopCities{} - mi := &file_pb_fiee_cast_proto_msgTypes[93] + mi := &file_pb_fiee_cast_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7342,7 +7522,7 @@ func (x *WorkAnalysisTopCities) String() string { func (*WorkAnalysisTopCities) ProtoMessage() {} func (x *WorkAnalysisTopCities) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[93] + mi := &file_pb_fiee_cast_proto_msgTypes[96] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7355,7 +7535,7 @@ func (x *WorkAnalysisTopCities) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisTopCities.ProtoReflect.Descriptor instead. func (*WorkAnalysisTopCities) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{93} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{96} } func (x *WorkAnalysisTopCities) GetUuid() string { @@ -7399,7 +7579,7 @@ type WorkAnalysisMostActiveDay struct { func (x *WorkAnalysisMostActiveDay) Reset() { *x = WorkAnalysisMostActiveDay{} - mi := &file_pb_fiee_cast_proto_msgTypes[94] + mi := &file_pb_fiee_cast_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7411,7 +7591,7 @@ func (x *WorkAnalysisMostActiveDay) String() string { func (*WorkAnalysisMostActiveDay) ProtoMessage() {} func (x *WorkAnalysisMostActiveDay) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[94] + mi := &file_pb_fiee_cast_proto_msgTypes[97] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7424,7 +7604,7 @@ func (x *WorkAnalysisMostActiveDay) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisMostActiveDay.ProtoReflect.Descriptor instead. func (*WorkAnalysisMostActiveDay) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{94} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{97} } func (x *WorkAnalysisMostActiveDay) GetUuid() string { @@ -7468,7 +7648,7 @@ type WorkAnalysisBestPostTime struct { func (x *WorkAnalysisBestPostTime) Reset() { *x = WorkAnalysisBestPostTime{} - mi := &file_pb_fiee_cast_proto_msgTypes[95] + mi := &file_pb_fiee_cast_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7480,7 +7660,7 @@ func (x *WorkAnalysisBestPostTime) String() string { func (*WorkAnalysisBestPostTime) ProtoMessage() {} func (x *WorkAnalysisBestPostTime) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[95] + mi := &file_pb_fiee_cast_proto_msgTypes[98] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7493,7 +7673,7 @@ func (x *WorkAnalysisBestPostTime) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisBestPostTime.ProtoReflect.Descriptor instead. func (*WorkAnalysisBestPostTime) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{95} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{98} } func (x *WorkAnalysisBestPostTime) GetUuid() string { @@ -7538,7 +7718,7 @@ type WorkAnalysisExtra struct { func (x *WorkAnalysisExtra) Reset() { *x = WorkAnalysisExtra{} - mi := &file_pb_fiee_cast_proto_msgTypes[96] + mi := &file_pb_fiee_cast_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7550,7 +7730,7 @@ func (x *WorkAnalysisExtra) String() string { func (*WorkAnalysisExtra) ProtoMessage() {} func (x *WorkAnalysisExtra) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[96] + mi := &file_pb_fiee_cast_proto_msgTypes[99] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7563,7 +7743,7 @@ func (x *WorkAnalysisExtra) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisExtra.ProtoReflect.Descriptor instead. func (*WorkAnalysisExtra) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{96} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{99} } func (x *WorkAnalysisExtra) GetAnalysisUuid() string { @@ -7610,7 +7790,7 @@ type GetWorkAnalysisDetailReq struct { func (x *GetWorkAnalysisDetailReq) Reset() { *x = GetWorkAnalysisDetailReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[97] + mi := &file_pb_fiee_cast_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7622,7 +7802,7 @@ func (x *GetWorkAnalysisDetailReq) String() string { func (*GetWorkAnalysisDetailReq) ProtoMessage() {} func (x *GetWorkAnalysisDetailReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[97] + mi := &file_pb_fiee_cast_proto_msgTypes[100] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7635,7 +7815,7 @@ func (x *GetWorkAnalysisDetailReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWorkAnalysisDetailReq.ProtoReflect.Descriptor instead. func (*GetWorkAnalysisDetailReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{97} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{100} } func (x *GetWorkAnalysisDetailReq) GetUuid() string { @@ -7654,7 +7834,7 @@ type GetLatestWorkAnalysisReq struct { func (x *GetLatestWorkAnalysisReq) Reset() { *x = GetLatestWorkAnalysisReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[98] + mi := &file_pb_fiee_cast_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7666,7 +7846,7 @@ func (x *GetLatestWorkAnalysisReq) String() string { func (*GetLatestWorkAnalysisReq) ProtoMessage() {} func (x *GetLatestWorkAnalysisReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[98] + mi := &file_pb_fiee_cast_proto_msgTypes[101] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7679,7 +7859,7 @@ func (x *GetLatestWorkAnalysisReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetLatestWorkAnalysisReq.ProtoReflect.Descriptor instead. func (*GetLatestWorkAnalysisReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{98} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{101} } func (x *GetLatestWorkAnalysisReq) GetSubNum() string { @@ -7735,7 +7915,7 @@ type GetWorkAnalysisResp struct { func (x *GetWorkAnalysisResp) Reset() { *x = GetWorkAnalysisResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[99] + mi := &file_pb_fiee_cast_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7747,7 +7927,7 @@ func (x *GetWorkAnalysisResp) String() string { func (*GetWorkAnalysisResp) ProtoMessage() {} func (x *GetWorkAnalysisResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[99] + mi := &file_pb_fiee_cast_proto_msgTypes[102] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7760,7 +7940,7 @@ func (x *GetWorkAnalysisResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWorkAnalysisResp.ProtoReflect.Descriptor instead. func (*GetWorkAnalysisResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{99} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{102} } func (x *GetWorkAnalysisResp) GetUuid() string { @@ -8077,7 +8257,7 @@ type GetWorkAnalysisDetailResp struct { func (x *GetWorkAnalysisDetailResp) Reset() { *x = GetWorkAnalysisDetailResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[100] + mi := &file_pb_fiee_cast_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8089,7 +8269,7 @@ func (x *GetWorkAnalysisDetailResp) String() string { func (*GetWorkAnalysisDetailResp) ProtoMessage() {} func (x *GetWorkAnalysisDetailResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[100] + mi := &file_pb_fiee_cast_proto_msgTypes[103] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8102,7 +8282,7 @@ func (x *GetWorkAnalysisDetailResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWorkAnalysisDetailResp.ProtoReflect.Descriptor instead. func (*GetWorkAnalysisDetailResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{100} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{103} } func (x *GetWorkAnalysisDetailResp) GetUuid() string { @@ -8406,7 +8586,7 @@ type ListWorkAnalysisReq struct { func (x *ListWorkAnalysisReq) Reset() { *x = ListWorkAnalysisReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[101] + mi := &file_pb_fiee_cast_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8418,7 +8598,7 @@ func (x *ListWorkAnalysisReq) String() string { func (*ListWorkAnalysisReq) ProtoMessage() {} func (x *ListWorkAnalysisReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[101] + mi := &file_pb_fiee_cast_proto_msgTypes[104] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8431,7 +8611,7 @@ func (x *ListWorkAnalysisReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWorkAnalysisReq.ProtoReflect.Descriptor instead. func (*ListWorkAnalysisReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{101} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{104} } func (x *ListWorkAnalysisReq) GetUuidList() []string { @@ -8548,7 +8728,7 @@ type WorkAnalysisInfo struct { func (x *WorkAnalysisInfo) Reset() { *x = WorkAnalysisInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[102] + mi := &file_pb_fiee_cast_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8560,7 +8740,7 @@ func (x *WorkAnalysisInfo) String() string { func (*WorkAnalysisInfo) ProtoMessage() {} func (x *WorkAnalysisInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[102] + mi := &file_pb_fiee_cast_proto_msgTypes[105] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8573,7 +8753,7 @@ func (x *WorkAnalysisInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisInfo.ProtoReflect.Descriptor instead. func (*WorkAnalysisInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{102} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{105} } func (x *WorkAnalysisInfo) GetUuid() string { @@ -8691,7 +8871,7 @@ type ListWorkAnalysisResp struct { func (x *ListWorkAnalysisResp) Reset() { *x = ListWorkAnalysisResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[103] + mi := &file_pb_fiee_cast_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8703,7 +8883,7 @@ func (x *ListWorkAnalysisResp) String() string { func (*ListWorkAnalysisResp) ProtoMessage() {} func (x *ListWorkAnalysisResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[103] + mi := &file_pb_fiee_cast_proto_msgTypes[106] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8716,7 +8896,7 @@ func (x *ListWorkAnalysisResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWorkAnalysisResp.ProtoReflect.Descriptor instead. func (*ListWorkAnalysisResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{103} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{106} } func (x *ListWorkAnalysisResp) GetData() []*WorkAnalysisInfo { @@ -8742,7 +8922,7 @@ type DeleteWorkAnalysisReq struct { func (x *DeleteWorkAnalysisReq) Reset() { *x = DeleteWorkAnalysisReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[104] + mi := &file_pb_fiee_cast_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8754,7 +8934,7 @@ func (x *DeleteWorkAnalysisReq) String() string { func (*DeleteWorkAnalysisReq) ProtoMessage() {} func (x *DeleteWorkAnalysisReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[104] + mi := &file_pb_fiee_cast_proto_msgTypes[107] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8767,7 +8947,7 @@ func (x *DeleteWorkAnalysisReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteWorkAnalysisReq.ProtoReflect.Descriptor instead. func (*DeleteWorkAnalysisReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{104} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{107} } func (x *DeleteWorkAnalysisReq) GetUuid() string { @@ -8794,7 +8974,7 @@ type ArtistDataListReq struct { func (x *ArtistDataListReq) Reset() { *x = ArtistDataListReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[105] + mi := &file_pb_fiee_cast_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8806,7 +8986,7 @@ func (x *ArtistDataListReq) String() string { func (*ArtistDataListReq) ProtoMessage() {} func (x *ArtistDataListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[105] + mi := &file_pb_fiee_cast_proto_msgTypes[108] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8819,7 +8999,7 @@ func (x *ArtistDataListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistDataListReq.ProtoReflect.Descriptor instead. func (*ArtistDataListReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{105} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{108} } func (x *ArtistDataListReq) GetArtistVal() string { @@ -8906,7 +9086,7 @@ type ArtistDataRespItem struct { func (x *ArtistDataRespItem) Reset() { *x = ArtistDataRespItem{} - mi := &file_pb_fiee_cast_proto_msgTypes[106] + mi := &file_pb_fiee_cast_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8918,7 +9098,7 @@ func (x *ArtistDataRespItem) String() string { func (*ArtistDataRespItem) ProtoMessage() {} func (x *ArtistDataRespItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[106] + mi := &file_pb_fiee_cast_proto_msgTypes[109] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8931,7 +9111,7 @@ func (x *ArtistDataRespItem) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistDataRespItem.ProtoReflect.Descriptor instead. func (*ArtistDataRespItem) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{106} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{109} } func (x *ArtistDataRespItem) GetArtistName() string { @@ -9078,7 +9258,7 @@ type ArtistDataListResp struct { func (x *ArtistDataListResp) Reset() { *x = ArtistDataListResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[107] + mi := &file_pb_fiee_cast_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9090,7 +9270,7 @@ func (x *ArtistDataListResp) String() string { func (*ArtistDataListResp) ProtoMessage() {} func (x *ArtistDataListResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[107] + mi := &file_pb_fiee_cast_proto_msgTypes[110] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9103,7 +9283,7 @@ func (x *ArtistDataListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistDataListResp.ProtoReflect.Descriptor instead. func (*ArtistDataListResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{107} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{110} } func (x *ArtistDataListResp) GetData() []*ArtistDataRespItem { @@ -9134,7 +9314,7 @@ type MediaDataListReq struct { func (x *MediaDataListReq) Reset() { *x = MediaDataListReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[108] + mi := &file_pb_fiee_cast_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9146,7 +9326,7 @@ func (x *MediaDataListReq) String() string { func (*MediaDataListReq) ProtoMessage() {} func (x *MediaDataListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[108] + mi := &file_pb_fiee_cast_proto_msgTypes[111] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9159,7 +9339,7 @@ func (x *MediaDataListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaDataListReq.ProtoReflect.Descriptor instead. func (*MediaDataListReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{108} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{111} } func (x *MediaDataListReq) GetArtistVal() string { @@ -9221,7 +9401,7 @@ type MediaDataListItem struct { func (x *MediaDataListItem) Reset() { *x = MediaDataListItem{} - mi := &file_pb_fiee_cast_proto_msgTypes[109] + mi := &file_pb_fiee_cast_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9233,7 +9413,7 @@ func (x *MediaDataListItem) String() string { func (*MediaDataListItem) ProtoMessage() {} func (x *MediaDataListItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[109] + mi := &file_pb_fiee_cast_proto_msgTypes[112] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9246,7 +9426,7 @@ func (x *MediaDataListItem) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaDataListItem.ProtoReflect.Descriptor instead. func (*MediaDataListItem) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{109} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{112} } func (x *MediaDataListItem) GetArtistName() string { @@ -9365,7 +9545,7 @@ type MediaDataListResp struct { func (x *MediaDataListResp) Reset() { *x = MediaDataListResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[110] + mi := &file_pb_fiee_cast_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9377,7 +9557,7 @@ func (x *MediaDataListResp) String() string { func (*MediaDataListResp) ProtoMessage() {} func (x *MediaDataListResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[110] + mi := &file_pb_fiee_cast_proto_msgTypes[113] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9390,7 +9570,7 @@ func (x *MediaDataListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaDataListResp.ProtoReflect.Descriptor instead. func (*MediaDataListResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{110} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{113} } func (x *MediaDataListResp) GetData() []*MediaDataListItem { @@ -9417,7 +9597,7 @@ type DataOverviewReq struct { func (x *DataOverviewReq) Reset() { *x = DataOverviewReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[111] + mi := &file_pb_fiee_cast_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9429,7 +9609,7 @@ func (x *DataOverviewReq) String() string { func (*DataOverviewReq) ProtoMessage() {} func (x *DataOverviewReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[111] + mi := &file_pb_fiee_cast_proto_msgTypes[114] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9442,7 +9622,7 @@ func (x *DataOverviewReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DataOverviewReq.ProtoReflect.Descriptor instead. func (*DataOverviewReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{111} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{114} } func (x *DataOverviewReq) GetDate() string { @@ -9481,7 +9661,7 @@ type DataOverviewResp struct { func (x *DataOverviewResp) Reset() { *x = DataOverviewResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[112] + mi := &file_pb_fiee_cast_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9493,7 +9673,7 @@ func (x *DataOverviewResp) String() string { func (*DataOverviewResp) ProtoMessage() {} func (x *DataOverviewResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[112] + mi := &file_pb_fiee_cast_proto_msgTypes[115] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9506,7 +9686,7 @@ func (x *DataOverviewResp) ProtoReflect() protoreflect.Message { // Deprecated: Use DataOverviewResp.ProtoReflect.Descriptor instead. func (*DataOverviewResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{112} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{115} } func (x *DataOverviewResp) GetAccountCount() int64 { @@ -9664,7 +9844,7 @@ type ArtistMetricsSeriesReq struct { func (x *ArtistMetricsSeriesReq) Reset() { *x = ArtistMetricsSeriesReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[113] + mi := &file_pb_fiee_cast_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9676,7 +9856,7 @@ func (x *ArtistMetricsSeriesReq) String() string { func (*ArtistMetricsSeriesReq) ProtoMessage() {} func (x *ArtistMetricsSeriesReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[113] + mi := &file_pb_fiee_cast_proto_msgTypes[116] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9689,7 +9869,7 @@ func (x *ArtistMetricsSeriesReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistMetricsSeriesReq.ProtoReflect.Descriptor instead. func (*ArtistMetricsSeriesReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{113} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{116} } func (x *ArtistMetricsSeriesReq) GetArtistUUID() string { @@ -9750,7 +9930,7 @@ type ArtistMetricsSeriesResp struct { func (x *ArtistMetricsSeriesResp) Reset() { *x = ArtistMetricsSeriesResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[114] + mi := &file_pb_fiee_cast_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9762,7 +9942,7 @@ func (x *ArtistMetricsSeriesResp) String() string { func (*ArtistMetricsSeriesResp) ProtoMessage() {} func (x *ArtistMetricsSeriesResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[114] + mi := &file_pb_fiee_cast_proto_msgTypes[117] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9775,7 +9955,7 @@ func (x *ArtistMetricsSeriesResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistMetricsSeriesResp.ProtoReflect.Descriptor instead. func (*ArtistMetricsSeriesResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{114} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{117} } func (x *ArtistMetricsSeriesResp) GetFansSeries() *WorkAnalysisFansSeries { @@ -9839,7 +10019,7 @@ type ArtistMetricsDailyWindowReq struct { func (x *ArtistMetricsDailyWindowReq) Reset() { *x = ArtistMetricsDailyWindowReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[115] + mi := &file_pb_fiee_cast_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9851,7 +10031,7 @@ func (x *ArtistMetricsDailyWindowReq) String() string { func (*ArtistMetricsDailyWindowReq) ProtoMessage() {} func (x *ArtistMetricsDailyWindowReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[115] + mi := &file_pb_fiee_cast_proto_msgTypes[118] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9864,7 +10044,7 @@ func (x *ArtistMetricsDailyWindowReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistMetricsDailyWindowReq.ProtoReflect.Descriptor instead. func (*ArtistMetricsDailyWindowReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{115} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{118} } func (x *ArtistMetricsDailyWindowReq) GetArtistUUID() string { @@ -9899,7 +10079,7 @@ type SimplePoint struct { func (x *SimplePoint) Reset() { *x = SimplePoint{} - mi := &file_pb_fiee_cast_proto_msgTypes[116] + mi := &file_pb_fiee_cast_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9911,7 +10091,7 @@ func (x *SimplePoint) String() string { func (*SimplePoint) ProtoMessage() {} func (x *SimplePoint) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[116] + mi := &file_pb_fiee_cast_proto_msgTypes[119] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9924,7 +10104,7 @@ func (x *SimplePoint) ProtoReflect() protoreflect.Message { // Deprecated: Use SimplePoint.ProtoReflect.Descriptor instead. func (*SimplePoint) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{116} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{119} } func (x *SimplePoint) GetDate() int32 { @@ -9952,7 +10132,7 @@ type BestPostTimePoint struct { func (x *BestPostTimePoint) Reset() { *x = BestPostTimePoint{} - mi := &file_pb_fiee_cast_proto_msgTypes[117] + mi := &file_pb_fiee_cast_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9964,7 +10144,7 @@ func (x *BestPostTimePoint) String() string { func (*BestPostTimePoint) ProtoMessage() {} func (x *BestPostTimePoint) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[117] + mi := &file_pb_fiee_cast_proto_msgTypes[120] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9977,7 +10157,7 @@ func (x *BestPostTimePoint) ProtoReflect() protoreflect.Message { // Deprecated: Use BestPostTimePoint.ProtoReflect.Descriptor instead. func (*BestPostTimePoint) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{117} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{120} } func (x *BestPostTimePoint) GetTimePoint() string { @@ -10005,7 +10185,7 @@ type MostActiveDayPoint struct { func (x *MostActiveDayPoint) Reset() { *x = MostActiveDayPoint{} - mi := &file_pb_fiee_cast_proto_msgTypes[118] + mi := &file_pb_fiee_cast_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10017,7 +10197,7 @@ func (x *MostActiveDayPoint) String() string { func (*MostActiveDayPoint) ProtoMessage() {} func (x *MostActiveDayPoint) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[118] + mi := &file_pb_fiee_cast_proto_msgTypes[121] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10030,7 +10210,7 @@ func (x *MostActiveDayPoint) ProtoReflect() protoreflect.Message { // Deprecated: Use MostActiveDayPoint.ProtoReflect.Descriptor instead. func (*MostActiveDayPoint) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{118} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{121} } func (x *MostActiveDayPoint) GetDay() int32 { @@ -10068,7 +10248,7 @@ type ArtistMetricsDailyWindowResp struct { func (x *ArtistMetricsDailyWindowResp) Reset() { *x = ArtistMetricsDailyWindowResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[119] + mi := &file_pb_fiee_cast_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10080,7 +10260,7 @@ func (x *ArtistMetricsDailyWindowResp) String() string { func (*ArtistMetricsDailyWindowResp) ProtoMessage() {} func (x *ArtistMetricsDailyWindowResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[119] + mi := &file_pb_fiee_cast_proto_msgTypes[122] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10093,7 +10273,7 @@ func (x *ArtistMetricsDailyWindowResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistMetricsDailyWindowResp.ProtoReflect.Descriptor instead. func (*ArtistMetricsDailyWindowResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{119} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{122} } func (x *ArtistMetricsDailyWindowResp) GetFansCount() int64 { @@ -10192,7 +10372,7 @@ type TobeConfirmedListReq struct { func (x *TobeConfirmedListReq) Reset() { *x = TobeConfirmedListReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[120] + mi := &file_pb_fiee_cast_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10204,7 +10384,7 @@ func (x *TobeConfirmedListReq) String() string { func (*TobeConfirmedListReq) ProtoMessage() {} func (x *TobeConfirmedListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[120] + mi := &file_pb_fiee_cast_proto_msgTypes[123] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10217,7 +10397,7 @@ func (x *TobeConfirmedListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use TobeConfirmedListReq.ProtoReflect.Descriptor instead. func (*TobeConfirmedListReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{120} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{123} } func (x *TobeConfirmedListReq) GetArtistUuid() string { @@ -10266,7 +10446,7 @@ type TobeConfirmedItem struct { func (x *TobeConfirmedItem) Reset() { *x = TobeConfirmedItem{} - mi := &file_pb_fiee_cast_proto_msgTypes[121] + mi := &file_pb_fiee_cast_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10278,7 +10458,7 @@ func (x *TobeConfirmedItem) String() string { func (*TobeConfirmedItem) ProtoMessage() {} func (x *TobeConfirmedItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[121] + mi := &file_pb_fiee_cast_proto_msgTypes[124] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10291,7 +10471,7 @@ func (x *TobeConfirmedItem) ProtoReflect() protoreflect.Message { // Deprecated: Use TobeConfirmedItem.ProtoReflect.Descriptor instead. func (*TobeConfirmedItem) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{121} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{124} } func (x *TobeConfirmedItem) GetUuid() string { @@ -10417,7 +10597,7 @@ type TobeConfirmedListResp struct { func (x *TobeConfirmedListResp) Reset() { *x = TobeConfirmedListResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[122] + mi := &file_pb_fiee_cast_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10429,7 +10609,7 @@ func (x *TobeConfirmedListResp) String() string { func (*TobeConfirmedListResp) ProtoMessage() {} func (x *TobeConfirmedListResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[122] + mi := &file_pb_fiee_cast_proto_msgTypes[125] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10442,7 +10622,7 @@ func (x *TobeConfirmedListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use TobeConfirmedListResp.ProtoReflect.Descriptor instead. func (*TobeConfirmedListResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{122} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{125} } func (x *TobeConfirmedListResp) GetData() []*TobeConfirmedItem { @@ -10469,7 +10649,7 @@ type UpdateWorkAnalysisApprovalIDReq struct { func (x *UpdateWorkAnalysisApprovalIDReq) Reset() { *x = UpdateWorkAnalysisApprovalIDReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[123] + mi := &file_pb_fiee_cast_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10481,7 +10661,7 @@ func (x *UpdateWorkAnalysisApprovalIDReq) String() string { func (*UpdateWorkAnalysisApprovalIDReq) ProtoMessage() {} func (x *UpdateWorkAnalysisApprovalIDReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[123] + mi := &file_pb_fiee_cast_proto_msgTypes[126] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10494,7 +10674,7 @@ func (x *UpdateWorkAnalysisApprovalIDReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkAnalysisApprovalIDReq.ProtoReflect.Descriptor instead. func (*UpdateWorkAnalysisApprovalIDReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{123} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{126} } func (x *UpdateWorkAnalysisApprovalIDReq) GetUuid() string { @@ -10535,7 +10715,7 @@ type MediaMetricsDailyItem struct { func (x *MediaMetricsDailyItem) Reset() { *x = MediaMetricsDailyItem{} - mi := &file_pb_fiee_cast_proto_msgTypes[124] + mi := &file_pb_fiee_cast_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10547,7 +10727,7 @@ func (x *MediaMetricsDailyItem) String() string { func (*MediaMetricsDailyItem) ProtoMessage() {} func (x *MediaMetricsDailyItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[124] + mi := &file_pb_fiee_cast_proto_msgTypes[127] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10560,7 +10740,7 @@ func (x *MediaMetricsDailyItem) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaMetricsDailyItem.ProtoReflect.Descriptor instead. func (*MediaMetricsDailyItem) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{124} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{127} } func (x *MediaMetricsDailyItem) GetUuid() string { @@ -10678,7 +10858,7 @@ type UpsertMediaMetricsDailyBatchReq struct { func (x *UpsertMediaMetricsDailyBatchReq) Reset() { *x = UpsertMediaMetricsDailyBatchReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[125] + mi := &file_pb_fiee_cast_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10690,7 +10870,7 @@ func (x *UpsertMediaMetricsDailyBatchReq) String() string { func (*UpsertMediaMetricsDailyBatchReq) ProtoMessage() {} func (x *UpsertMediaMetricsDailyBatchReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[125] + mi := &file_pb_fiee_cast_proto_msgTypes[128] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10703,7 +10883,7 @@ func (x *UpsertMediaMetricsDailyBatchReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertMediaMetricsDailyBatchReq.ProtoReflect.Descriptor instead. func (*UpsertMediaMetricsDailyBatchReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{125} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{128} } func (x *UpsertMediaMetricsDailyBatchReq) GetData() []*MediaMetricsDailyItem { @@ -10723,7 +10903,7 @@ type UpsertMediaMetricsDailyBatchResp struct { func (x *UpsertMediaMetricsDailyBatchResp) Reset() { *x = UpsertMediaMetricsDailyBatchResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[126] + mi := &file_pb_fiee_cast_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10735,7 +10915,7 @@ func (x *UpsertMediaMetricsDailyBatchResp) String() string { func (*UpsertMediaMetricsDailyBatchResp) ProtoMessage() {} func (x *UpsertMediaMetricsDailyBatchResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[126] + mi := &file_pb_fiee_cast_proto_msgTypes[129] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10748,7 +10928,7 @@ func (x *UpsertMediaMetricsDailyBatchResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertMediaMetricsDailyBatchResp.ProtoReflect.Descriptor instead. func (*UpsertMediaMetricsDailyBatchResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{126} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{129} } func (x *UpsertMediaMetricsDailyBatchResp) GetSuccess() bool { @@ -10780,7 +10960,7 @@ type WorkMetricsDailyItem struct { func (x *WorkMetricsDailyItem) Reset() { *x = WorkMetricsDailyItem{} - mi := &file_pb_fiee_cast_proto_msgTypes[127] + mi := &file_pb_fiee_cast_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10792,7 +10972,7 @@ func (x *WorkMetricsDailyItem) String() string { func (*WorkMetricsDailyItem) ProtoMessage() {} func (x *WorkMetricsDailyItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[127] + mi := &file_pb_fiee_cast_proto_msgTypes[130] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10805,7 +10985,7 @@ func (x *WorkMetricsDailyItem) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkMetricsDailyItem.ProtoReflect.Descriptor instead. func (*WorkMetricsDailyItem) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{127} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{130} } func (x *WorkMetricsDailyItem) GetUuid() string { @@ -10909,7 +11089,7 @@ type UpsertWorkMetricsDailyBatchReq struct { func (x *UpsertWorkMetricsDailyBatchReq) Reset() { *x = UpsertWorkMetricsDailyBatchReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[128] + mi := &file_pb_fiee_cast_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10921,7 +11101,7 @@ func (x *UpsertWorkMetricsDailyBatchReq) String() string { func (*UpsertWorkMetricsDailyBatchReq) ProtoMessage() {} func (x *UpsertWorkMetricsDailyBatchReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[128] + mi := &file_pb_fiee_cast_proto_msgTypes[131] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10934,7 +11114,7 @@ func (x *UpsertWorkMetricsDailyBatchReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertWorkMetricsDailyBatchReq.ProtoReflect.Descriptor instead. func (*UpsertWorkMetricsDailyBatchReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{128} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{131} } func (x *UpsertWorkMetricsDailyBatchReq) GetData() []*WorkMetricsDailyItem { @@ -10954,7 +11134,7 @@ type UpsertWorkMetricsDailyBatchResp struct { func (x *UpsertWorkMetricsDailyBatchResp) Reset() { *x = UpsertWorkMetricsDailyBatchResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[129] + mi := &file_pb_fiee_cast_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10966,7 +11146,7 @@ func (x *UpsertWorkMetricsDailyBatchResp) String() string { func (*UpsertWorkMetricsDailyBatchResp) ProtoMessage() {} func (x *UpsertWorkMetricsDailyBatchResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[129] + mi := &file_pb_fiee_cast_proto_msgTypes[132] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10979,7 +11159,7 @@ func (x *UpsertWorkMetricsDailyBatchResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertWorkMetricsDailyBatchResp.ProtoReflect.Descriptor instead. func (*UpsertWorkMetricsDailyBatchResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{129} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{132} } func (x *UpsertWorkMetricsDailyBatchResp) GetSuccess() bool { @@ -11003,7 +11183,7 @@ type GetArtistAyrShareInfoReq struct { func (x *GetArtistAyrShareInfoReq) Reset() { *x = GetArtistAyrShareInfoReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[130] + mi := &file_pb_fiee_cast_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11015,7 +11195,7 @@ func (x *GetArtistAyrShareInfoReq) String() string { func (*GetArtistAyrShareInfoReq) ProtoMessage() {} func (x *GetArtistAyrShareInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[130] + mi := &file_pb_fiee_cast_proto_msgTypes[133] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11028,7 +11208,7 @@ func (x *GetArtistAyrShareInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtistAyrShareInfoReq.ProtoReflect.Descriptor instead. func (*GetArtistAyrShareInfoReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{130} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{133} } func (x *GetArtistAyrShareInfoReq) GetArtistUuid() string { @@ -11084,7 +11264,7 @@ type ArtistAyrShareInfo struct { func (x *ArtistAyrShareInfo) Reset() { *x = ArtistAyrShareInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[131] + mi := &file_pb_fiee_cast_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11096,7 +11276,7 @@ func (x *ArtistAyrShareInfo) String() string { func (*ArtistAyrShareInfo) ProtoMessage() {} func (x *ArtistAyrShareInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[131] + mi := &file_pb_fiee_cast_proto_msgTypes[134] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11109,7 +11289,7 @@ func (x *ArtistAyrShareInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistAyrShareInfo.ProtoReflect.Descriptor instead. func (*ArtistAyrShareInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{131} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{134} } func (x *ArtistAyrShareInfo) GetUuid() string { @@ -11186,7 +11366,7 @@ type GetArtistAyrShareInfoResp struct { func (x *GetArtistAyrShareInfoResp) Reset() { *x = GetArtistAyrShareInfoResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[132] + mi := &file_pb_fiee_cast_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11198,7 +11378,7 @@ func (x *GetArtistAyrShareInfoResp) String() string { func (*GetArtistAyrShareInfoResp) ProtoMessage() {} func (x *GetArtistAyrShareInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[132] + mi := &file_pb_fiee_cast_proto_msgTypes[135] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11211,7 +11391,7 @@ func (x *GetArtistAyrShareInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtistAyrShareInfoResp.ProtoReflect.Descriptor instead. func (*GetArtistAyrShareInfoResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{132} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{135} } func (x *GetArtistAyrShareInfoResp) GetData() []*ArtistAyrShareInfo { @@ -11241,7 +11421,7 @@ type ListWorkPlatformInfoReq struct { func (x *ListWorkPlatformInfoReq) Reset() { *x = ListWorkPlatformInfoReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[133] + mi := &file_pb_fiee_cast_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11253,7 +11433,7 @@ func (x *ListWorkPlatformInfoReq) String() string { func (*ListWorkPlatformInfoReq) ProtoMessage() {} func (x *ListWorkPlatformInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[133] + mi := &file_pb_fiee_cast_proto_msgTypes[136] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11266,7 +11446,7 @@ func (x *ListWorkPlatformInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWorkPlatformInfoReq.ProtoReflect.Descriptor instead. func (*ListWorkPlatformInfoReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{133} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{136} } func (x *ListWorkPlatformInfoReq) GetPlatformIDs() []uint32 { @@ -11322,7 +11502,7 @@ type WorkPlatformInfo struct { func (x *WorkPlatformInfo) Reset() { *x = WorkPlatformInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[134] + mi := &file_pb_fiee_cast_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11334,7 +11514,7 @@ func (x *WorkPlatformInfo) String() string { func (*WorkPlatformInfo) ProtoMessage() {} func (x *WorkPlatformInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[134] + mi := &file_pb_fiee_cast_proto_msgTypes[137] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11347,7 +11527,7 @@ func (x *WorkPlatformInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkPlatformInfo.ProtoReflect.Descriptor instead. func (*WorkPlatformInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{134} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{137} } func (x *WorkPlatformInfo) GetUuid() string { @@ -11466,7 +11646,7 @@ type ListWorkPlatformInfoResp struct { func (x *ListWorkPlatformInfoResp) Reset() { *x = ListWorkPlatformInfoResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[135] + mi := &file_pb_fiee_cast_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11478,7 +11658,7 @@ func (x *ListWorkPlatformInfoResp) String() string { func (*ListWorkPlatformInfoResp) ProtoMessage() {} func (x *ListWorkPlatformInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[135] + mi := &file_pb_fiee_cast_proto_msgTypes[138] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11491,7 +11671,7 @@ func (x *ListWorkPlatformInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWorkPlatformInfoResp.ProtoReflect.Descriptor instead. func (*ListWorkPlatformInfoResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{135} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{138} } func (x *ListWorkPlatformInfoResp) GetData() []*WorkPlatformInfo { @@ -11538,7 +11718,7 @@ type WorkListResp_Info struct { func (x *WorkListResp_Info) Reset() { *x = WorkListResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[136] + mi := &file_pb_fiee_cast_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11550,7 +11730,7 @@ func (x *WorkListResp_Info) String() string { func (*WorkListResp_Info) ProtoMessage() {} func (x *WorkListResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[136] + mi := &file_pb_fiee_cast_proto_msgTypes[139] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11563,7 +11743,7 @@ func (x *WorkListResp_Info) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkListResp_Info.ProtoReflect.Descriptor instead. func (*WorkListResp_Info) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{16, 0} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{19, 0} } func (x *WorkListResp_Info) GetWorkUuid() string { @@ -11734,7 +11914,7 @@ type MediaAccountsResp_Info struct { func (x *MediaAccountsResp_Info) Reset() { *x = MediaAccountsResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[138] + mi := &file_pb_fiee_cast_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11746,7 +11926,7 @@ func (x *MediaAccountsResp_Info) String() string { func (*MediaAccountsResp_Info) ProtoMessage() {} func (x *MediaAccountsResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[138] + mi := &file_pb_fiee_cast_proto_msgTypes[141] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11759,7 +11939,7 @@ func (x *MediaAccountsResp_Info) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaAccountsResp_Info.ProtoReflect.Descriptor instead. func (*MediaAccountsResp_Info) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{22, 0} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{25, 0} } func (x *MediaAccountsResp_Info) GetPlatformID() uint32 { @@ -11822,7 +12002,7 @@ type MediaWorksResp_Info struct { func (x *MediaWorksResp_Info) Reset() { *x = MediaWorksResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[139] + mi := &file_pb_fiee_cast_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11834,7 +12014,7 @@ func (x *MediaWorksResp_Info) String() string { func (*MediaWorksResp_Info) ProtoMessage() {} func (x *MediaWorksResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[139] + mi := &file_pb_fiee_cast_proto_msgTypes[142] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11847,7 +12027,7 @@ func (x *MediaWorksResp_Info) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaWorksResp_Info.ProtoReflect.Descriptor instead. func (*MediaWorksResp_Info) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{24, 0} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{27, 0} } func (x *MediaWorksResp_Info) GetWorkUuid() string { @@ -11930,7 +12110,7 @@ type PublishResp_Info struct { func (x *PublishResp_Info) Reset() { *x = PublishResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[140] + mi := &file_pb_fiee_cast_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11942,7 +12122,7 @@ func (x *PublishResp_Info) String() string { func (*PublishResp_Info) ProtoMessage() {} func (x *PublishResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[140] + mi := &file_pb_fiee_cast_proto_msgTypes[143] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11955,7 +12135,7 @@ func (x *PublishResp_Info) ProtoReflect() protoreflect.Message { // Deprecated: Use PublishResp_Info.ProtoReflect.Descriptor instead. func (*PublishResp_Info) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{26, 0} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{29, 0} } func (x *PublishResp_Info) GetArtistUuid() string { @@ -11983,7 +12163,7 @@ type RefreshWorkListResp_Info struct { func (x *RefreshWorkListResp_Info) Reset() { *x = RefreshWorkListResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[141] + mi := &file_pb_fiee_cast_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11995,7 +12175,7 @@ func (x *RefreshWorkListResp_Info) String() string { func (*RefreshWorkListResp_Info) ProtoMessage() {} func (x *RefreshWorkListResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[141] + mi := &file_pb_fiee_cast_proto_msgTypes[144] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12008,7 +12188,7 @@ func (x *RefreshWorkListResp_Info) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshWorkListResp_Info.ProtoReflect.Descriptor instead. func (*RefreshWorkListResp_Info) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{41, 0} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{44, 0} } func (x *RefreshWorkListResp_Info) GetWorkUuid() string { @@ -12046,7 +12226,7 @@ type RefreshWorkListResp_Info_PlatformInfo struct { func (x *RefreshWorkListResp_Info_PlatformInfo) Reset() { *x = RefreshWorkListResp_Info_PlatformInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[142] + mi := &file_pb_fiee_cast_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12058,7 +12238,7 @@ func (x *RefreshWorkListResp_Info_PlatformInfo) String() string { func (*RefreshWorkListResp_Info_PlatformInfo) ProtoMessage() {} func (x *RefreshWorkListResp_Info_PlatformInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[142] + mi := &file_pb_fiee_cast_proto_msgTypes[145] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12071,7 +12251,7 @@ func (x *RefreshWorkListResp_Info_PlatformInfo) ProtoReflect() protoreflect.Mess // Deprecated: Use RefreshWorkListResp_Info_PlatformInfo.ProtoReflect.Descriptor instead. func (*RefreshWorkListResp_Info_PlatformInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{41, 0, 0} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{44, 0, 0} } func (x *RefreshWorkListResp_Info_PlatformInfo) GetPublishMediaID() string { @@ -12129,7 +12309,7 @@ type UpdateOAuthReq_Info struct { func (x *UpdateOAuthReq_Info) Reset() { *x = UpdateOAuthReq_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[143] + mi := &file_pb_fiee_cast_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12141,7 +12321,7 @@ func (x *UpdateOAuthReq_Info) String() string { func (*UpdateOAuthReq_Info) ProtoMessage() {} func (x *UpdateOAuthReq_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[143] + mi := &file_pb_fiee_cast_proto_msgTypes[146] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12154,7 +12334,7 @@ func (x *UpdateOAuthReq_Info) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateOAuthReq_Info.ProtoReflect.Descriptor instead. func (*UpdateOAuthReq_Info) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{50, 0} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{53, 0} } func (x *UpdateOAuthReq_Info) GetArtistUuid() string { @@ -12196,7 +12376,12 @@ var File_pb_fiee_cast_proto protoreflect.FileDescriptor const file_pb_fiee_cast_proto_rawDesc = "" + "\n" + - "\x12pb/fiee/cast.proto\x12\x04Cast\x1a\x15common/wrappers.proto\x1a\x17common/descriptor.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x15common/validate.proto\"\xc8\x03\n" + + "\x12pb/fiee/cast.proto\x12\x04Cast\x1a\x15common/wrappers.proto\x1a\x17common/descriptor.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x15common/validate.proto\"<\n" + + "\x06AsInfo\x12\x1e\n" + + "\n" + + "profileKey\x18\x01 \x01(\tR\n" + + "profileKey\x12\x12\n" + + "\x04AsID\x18\x02 \x01(\tR\x04AsID\"\xe8\x03\n" + "\x10MediaUserListReq\x12\x1c\n" + "\tartistVal\x18\x01 \x01(\tR\tartistVal\x12\x1e\n" + "\n" + @@ -12218,7 +12403,10 @@ const file_pb_fiee_cast_proto_rawDesc = "" + " \x01(\x0e2\x14.Cast.AuthStatusENUMR\n" + "authStatus\x12 \n" + "\vmediaUserID\x18\v \x01(\tR\vmediaUserID\x12\x1c\n" + - "\tneedStats\x18\f \x01(\bR\tneedStats\"\xa3\x05\n" + + "\tneedStats\x18\f \x01(\bR\tneedStats\x12\x1e\n" + + "\n" + + "needAsInfo\x18\r \x01(\bR\n" + + "needAsInfo\"\xc9\x05\n" + "\rMediaUserInfo\x12*\n" + "\x10platformUserName\x18\x01 \x01(\tR\x10platformUserName\x12\x1e\n" + "\n" + @@ -12244,7 +12432,8 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "\x12releasedVideoTotal\x18\r \x01(\x05R\x12releasedVideoTotal\x12*\n" + "\x10pendingPostCount\x18\x0e \x01(\x05R\x10pendingPostCount\x12,\n" + "\x11uploadedPostCount\x18\x0f \x01(\x05R\x11uploadedPostCount\x12,\n" + - "\x11releasedPostTotal\x18\x10 \x01(\x05R\x11releasedPostTotal\"R\n" + + "\x11releasedPostTotal\x18\x10 \x01(\x05R\x11releasedPostTotal\x12$\n" + + "\x06asInfo\x18\x11 \x01(\v2\f.Cast.AsInfoR\x06asInfo\"R\n" + "\x11MediaUserListResp\x12'\n" + "\x04data\x18\x01 \x03(\v2\x13.Cast.MediaUserInfoR\x04data\x12\x14\n" + "\x05count\x18\x02 \x01(\x03R\x05count\"\xd1\x03\n" + @@ -12362,6 +12551,15 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "platformID\x12*\n" + "\x10platformUserName\x18\x03 \x01(\tR\x10platformUserName\"8\n" + "\rMediaInfoResp\x12'\n" + + "\x04info\x18\x01 \x01(\v2\x13.Cast.MediaUserInfoR\x04info\"n\n" + + "\x16MediaInfoByPlatformReq\x12\x1e\n" + + "\n" + + "artistUuid\x18\x01 \x01(\tR\n" + + "artistUuid\x124\n" + + "\n" + + "platformID\x18\x02 \x01(\x0e2\x14.Cast.PlatformIDENUMR\n" + + "platformID\"B\n" + + "\x17MediaInfoByPlatformResp\x12'\n" + "\x04info\x18\x01 \x01(\v2\x13.Cast.MediaUserInfoR\x04info\"\xcd\x05\n" + "\vWorkListReq\x12\x1c\n" + "\tartistVal\x18\x01 \x01(\tR\tartistVal\x12\x1e\n" + @@ -12574,12 +12772,16 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "\rArtistInfoReq\x12\x1e\n" + "\n" + "artistUuid\x18\x01 \x01(\tR\n" + - "artistUuid\"\xd4\x01\n" + + "artistUuid\"\x8c\x02\n" + "\x0eArtistInfoResp\x122\n" + "\x14TikTokEffectiveCount\x18\x01 \x01(\rR\x14TikTokEffectiveCount\x124\n" + "\x15YouTubeEffectiveCount\x18\x02 \x01(\rR\x15YouTubeEffectiveCount\x12,\n" + "\x11InsEffectiveCount\x18\x03 \x01(\rR\x11InsEffectiveCount\x12*\n" + - "\x10DMEffectiveCount\x18\x04 \x01(\rR\x10DMEffectiveCount\"N\n" + + "\x10DMEffectiveCount\x18\x04 \x01(\rR\x10DMEffectiveCount\x12\x1e\n" + + "\n" + + "profileKey\x18\x05 \x01(\tR\n" + + "profileKey\x12\x16\n" + + "\x06subNum\x18\x06 \x01(\tR\x06subNum\"N\n" + "\x12ImportWorkBatchReq\x128\n" + "\n" + "imageWorks\x18\x01 \x03(\v2\x18.Cast.UpdateWorkImageReqR\n" + @@ -13598,7 +13800,7 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "\x05TITLE\x10\x01\x12\v\n" + "\aCONTENT\x10\x02\x12\t\n" + "\x05IMAGE\x10\x03\x12\x10\n" + - "\fLONG_CONTENT\x10\x042\xe7\"\n" + + "\fLONG_CONTENT\x10\x042\xbd#\n" + "\x04Cast\x12B\n" + "\rMediaUserList\x12\x16.Cast.MediaUserListReq\x1a\x17.Cast.MediaUserListResp\"\x00\x12Q\n" + "\x12UpdateMediaAccount\x12\x1b.Cast.UpdateMediaAccountReq\x1a\x1c.Cast.UpdateMediaAccountResp\"\x00\x12B\n" + @@ -13606,7 +13808,8 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "\vBindManager\x12\x14.Cast.BindManagerReq\x1a\x16.google.protobuf.Empty\"\x00\x12H\n" + "\x0fUpdateWorkImage\x12\x18.Cast.UpdateWorkImageReq\x1a\x19.Cast.UpdateWorkImageResp\"\x00\x12H\n" + "\x0fUpdateWorkVideo\x12\x18.Cast.UpdateWorkVideoReq\x1a\x19.Cast.UpdateWorkVideoResp\"\x00\x126\n" + - "\tMediaInfo\x12\x12.Cast.MediaInfoReq\x1a\x13.Cast.MediaInfoResp\"\x00\x123\n" + + "\tMediaInfo\x12\x12.Cast.MediaInfoReq\x1a\x13.Cast.MediaInfoResp\"\x00\x12T\n" + + "\x13MediaInfoByPlatform\x12\x1c.Cast.MediaInfoByPlatformReq\x1a\x1d.Cast.MediaInfoByPlatformResp\"\x00\x123\n" + "\bWorkList\x12\x11.Cast.WorkListReq\x1a\x12.Cast.WorkListResp\"\x00\x129\n" + "\n" + "WorkDetail\x12\x13.Cast.WorkDetailReq\x1a\x14.Cast.WorkDetailResp\"\x00\x12?\n" + @@ -13678,7 +13881,7 @@ func file_pb_fiee_cast_proto_rawDescGZIP() []byte { } var file_pb_fiee_cast_proto_enumTypes = make([]protoimpl.EnumInfo, 6) -var file_pb_fiee_cast_proto_msgTypes = make([]protoimpl.MessageInfo, 144) +var file_pb_fiee_cast_proto_msgTypes = make([]protoimpl.MessageInfo, 147) var file_pb_fiee_cast_proto_goTypes = []any{ (PlatformIDENUM)(0), // 0: Cast.PlatformIDENUM (AuthStatusENUM)(0), // 1: Cast.AuthStatusENUM @@ -13686,377 +13889,385 @@ var file_pb_fiee_cast_proto_goTypes = []any{ (AutoPublishENUM)(0), // 3: Cast.AutoPublishENUM (PublishStatusENUM)(0), // 4: Cast.PublishStatusENUM (CategoryENUM)(0), // 5: Cast.CategoryENUM - (*MediaUserListReq)(nil), // 6: Cast.MediaUserListReq - (*MediaUserInfo)(nil), // 7: Cast.MediaUserInfo - (*MediaUserListResp)(nil), // 8: Cast.MediaUserListResp - (*UpdateMediaAccountReq)(nil), // 9: Cast.UpdateMediaAccountReq - (*UpdateMediaAccountResp)(nil), // 10: Cast.UpdateMediaAccountResp - (*UnbindManagerReq)(nil), // 11: Cast.UnbindManagerReq - (*UnbindManagerResp)(nil), // 12: Cast.UnbindManagerResp - (*BindManagerReq)(nil), // 13: Cast.BindManagerReq - (*UpdateWorkImageReq)(nil), // 14: Cast.UpdateWorkImageReq - (*UpdateWorkImageResp)(nil), // 15: Cast.UpdateWorkImageResp - (*PublishConfig)(nil), // 16: Cast.PublishConfig - (*UpdateWorkVideoReq)(nil), // 17: Cast.UpdateWorkVideoReq - (*UpdateWorkVideoResp)(nil), // 18: Cast.UpdateWorkVideoResp - (*MediaInfoReq)(nil), // 19: Cast.MediaInfoReq - (*MediaInfoResp)(nil), // 20: Cast.MediaInfoResp - (*WorkListReq)(nil), // 21: Cast.WorkListReq - (*WorkListResp)(nil), // 22: Cast.WorkListResp - (*WorkDetailReq)(nil), // 23: Cast.WorkDetailReq - (*WorkLogInfo)(nil), // 24: Cast.WorkLogInfo - (*WorkDetailResp)(nil), // 25: Cast.WorkDetailResp - (*UpdateStatusReq)(nil), // 26: Cast.UpdateStatusReq - (*MediaAccountsReq)(nil), // 27: Cast.MediaAccountsReq - (*MediaAccountsResp)(nil), // 28: Cast.MediaAccountsResp - (*MediaWorksReq)(nil), // 29: Cast.MediaWorksReq - (*MediaWorksResp)(nil), // 30: Cast.MediaWorksResp - (*PublishReq)(nil), // 31: Cast.PublishReq - (*PublishResp)(nil), // 32: Cast.PublishResp - (*RePublishReq)(nil), // 33: Cast.RePublishReq - (*RePublishResp)(nil), // 34: Cast.RePublishResp - (*DelWorkReq)(nil), // 35: Cast.DelWorkReq - (*WorkInfoReq)(nil), // 36: Cast.WorkInfoReq - (*WorkInfoResp)(nil), // 37: Cast.WorkInfoResp - (*ArtistInfoReq)(nil), // 38: Cast.ArtistInfoReq - (*ArtistInfoResp)(nil), // 39: Cast.ArtistInfoResp - (*ImportWorkBatchReq)(nil), // 40: Cast.ImportWorkBatchReq - (*ImportWorkBatchResp)(nil), // 41: Cast.ImportWorkBatchResp - (*PlatformInfo)(nil), // 42: Cast.PlatformInfo - (*UpdateWorkPlatformInfoReq)(nil), // 43: Cast.UpdateWorkPlatformInfoReq - (*UpdateWorkPlatformInfoResp)(nil), // 44: Cast.UpdateWorkPlatformInfoResp - (*UpdateWorkPublishLogReq)(nil), // 45: Cast.UpdateWorkPublishLogReq - (*RefreshWorkListReq)(nil), // 46: Cast.RefreshWorkListReq - (*RefreshWorkListResp)(nil), // 47: Cast.RefreshWorkListResp - (*OAuthAccountReq)(nil), // 48: Cast.OAuthAccountReq - (*OAuthAccountResp)(nil), // 49: Cast.OAuthAccountResp - (*OAuthAccountV2Req)(nil), // 50: Cast.OAuthAccountV2Req - (*OAuthAccountV2Resp)(nil), // 51: Cast.OAuthAccountV2Resp - (*OAuthYoutubeTokenReq)(nil), // 52: Cast.OAuthYoutubeTokenReq - (*OAuthYoutubeTokenResp)(nil), // 53: Cast.OAuthYoutubeTokenResp - (*OAuthCodeToTokenReq)(nil), // 54: Cast.OAuthCodeToTokenReq - (*OAuthCodeToTokenResp)(nil), // 55: Cast.OAuthCodeToTokenResp - (*UpdateOAuthReq)(nil), // 56: Cast.UpdateOAuthReq - (*RefreshTokenReq)(nil), // 57: Cast.RefreshTokenReq - (*RefreshTokenResp)(nil), // 58: Cast.RefreshTokenResp - (*PublishMediaInfoReq)(nil), // 59: Cast.PublishMediaInfoReq - (*PublishMediaInfoResp)(nil), // 60: Cast.PublishMediaInfoResp - (*UpdateVideoScriptReq)(nil), // 61: Cast.UpdateVideoScriptReq - (*UpdateVideoScriptResp)(nil), // 62: Cast.UpdateVideoScriptResp - (*GetVideoScriptReq)(nil), // 63: Cast.GetVideoScriptReq - (*GetVideoScriptResp)(nil), // 64: Cast.GetVideoScriptResp - (*ListVideoScriptsReq)(nil), // 65: Cast.ListVideoScriptsReq - (*VideoScriptInfo)(nil), // 66: Cast.VideoScriptInfo - (*ListVideoScriptsResp)(nil), // 67: Cast.ListVideoScriptsResp - (*DeleteVideoScriptReq)(nil), // 68: Cast.DeleteVideoScriptReq - (*UpdateVideoScriptBatchReq)(nil), // 69: Cast.UpdateVideoScriptBatchReq - (*UpdateVideoScriptBatchResp)(nil), // 70: Cast.UpdateVideoScriptBatchResp - (*UpdateScriptStatusReq)(nil), // 71: Cast.UpdateScriptStatusReq - (*SetLayoutReq)(nil), // 72: Cast.SetLayoutReq - (*GetLayoutReq)(nil), // 73: Cast.GetLayoutReq - (*GetLayoutResp)(nil), // 74: Cast.GetLayoutResp - (*UpdatePromptReq)(nil), // 75: Cast.UpdatePromptReq - (*DeletePromptReq)(nil), // 76: Cast.DeletePromptReq - (*GetPromptReq)(nil), // 77: Cast.GetPromptReq - (*GetPromptResp)(nil), // 78: Cast.GetPromptResp - (*ListPromptsReq)(nil), // 79: Cast.ListPromptsReq - (*PromptInfo)(nil), // 80: Cast.PromptInfo - (*ListPromptsResp)(nil), // 81: Cast.ListPromptsResp - (*UpdatePromptBatchReq)(nil), // 82: Cast.UpdatePromptBatchReq - (*UpdatePromptBatchResp)(nil), // 83: Cast.UpdatePromptBatchResp - (*ArtistInfo)(nil), // 84: Cast.ArtistInfo - (*UpdateArtistReq)(nil), // 85: Cast.UpdateArtistReq - (*UpdateArtistResp)(nil), // 86: Cast.UpdateArtistResp - (*GetArtistReq)(nil), // 87: Cast.GetArtistReq - (*GetArtistResp)(nil), // 88: Cast.GetArtistResp - (*CreateWorkAnalysisReq)(nil), // 89: Cast.CreateWorkAnalysisReq - (*CreateWorkAnalysisResp)(nil), // 90: Cast.CreateWorkAnalysisResp - (*UpdateWorkAnalysisReq)(nil), // 91: Cast.UpdateWorkAnalysisReq - (*UpdateWorkAnalysisStatusReq)(nil), // 92: Cast.UpdateWorkAnalysisStatusReq - (*WorkAnalysisLogInfo)(nil), // 93: Cast.WorkAnalysisLogInfo - (*WorkAnalysisFansSeries)(nil), // 94: Cast.WorkAnalysisFansSeries - (*WorkAnalysisViewsSeries)(nil), // 95: Cast.WorkAnalysisViewsSeries - (*WorkAnalysisLikesSeries)(nil), // 96: Cast.WorkAnalysisLikesSeries - (*WorkAnalysisCommentsSeries)(nil), // 97: Cast.WorkAnalysisCommentsSeries - (*WorkAnalysisSharesSeries)(nil), // 98: Cast.WorkAnalysisSharesSeries - (*WorkAnalysisTopCities)(nil), // 99: Cast.WorkAnalysisTopCities - (*WorkAnalysisMostActiveDay)(nil), // 100: Cast.WorkAnalysisMostActiveDay - (*WorkAnalysisBestPostTime)(nil), // 101: Cast.WorkAnalysisBestPostTime - (*WorkAnalysisExtra)(nil), // 102: Cast.WorkAnalysisExtra - (*GetWorkAnalysisDetailReq)(nil), // 103: Cast.GetWorkAnalysisDetailReq - (*GetLatestWorkAnalysisReq)(nil), // 104: Cast.GetLatestWorkAnalysisReq - (*GetWorkAnalysisResp)(nil), // 105: Cast.GetWorkAnalysisResp - (*GetWorkAnalysisDetailResp)(nil), // 106: Cast.GetWorkAnalysisDetailResp - (*ListWorkAnalysisReq)(nil), // 107: Cast.ListWorkAnalysisReq - (*WorkAnalysisInfo)(nil), // 108: Cast.WorkAnalysisInfo - (*ListWorkAnalysisResp)(nil), // 109: Cast.ListWorkAnalysisResp - (*DeleteWorkAnalysisReq)(nil), // 110: Cast.DeleteWorkAnalysisReq - (*ArtistDataListReq)(nil), // 111: Cast.ArtistDataListReq - (*ArtistDataRespItem)(nil), // 112: Cast.ArtistDataRespItem - (*ArtistDataListResp)(nil), // 113: Cast.ArtistDataListResp - (*MediaDataListReq)(nil), // 114: Cast.MediaDataListReq - (*MediaDataListItem)(nil), // 115: Cast.MediaDataListItem - (*MediaDataListResp)(nil), // 116: Cast.MediaDataListResp - (*DataOverviewReq)(nil), // 117: Cast.DataOverviewReq - (*DataOverviewResp)(nil), // 118: Cast.DataOverviewResp - (*ArtistMetricsSeriesReq)(nil), // 119: Cast.ArtistMetricsSeriesReq - (*ArtistMetricsSeriesResp)(nil), // 120: Cast.ArtistMetricsSeriesResp - (*ArtistMetricsDailyWindowReq)(nil), // 121: Cast.ArtistMetricsDailyWindowReq - (*SimplePoint)(nil), // 122: Cast.SimplePoint - (*BestPostTimePoint)(nil), // 123: Cast.BestPostTimePoint - (*MostActiveDayPoint)(nil), // 124: Cast.MostActiveDayPoint - (*ArtistMetricsDailyWindowResp)(nil), // 125: Cast.ArtistMetricsDailyWindowResp - (*TobeConfirmedListReq)(nil), // 126: Cast.TobeConfirmedListReq - (*TobeConfirmedItem)(nil), // 127: Cast.TobeConfirmedItem - (*TobeConfirmedListResp)(nil), // 128: Cast.TobeConfirmedListResp - (*UpdateWorkAnalysisApprovalIDReq)(nil), // 129: Cast.UpdateWorkAnalysisApprovalIDReq - (*MediaMetricsDailyItem)(nil), // 130: Cast.MediaMetricsDailyItem - (*UpsertMediaMetricsDailyBatchReq)(nil), // 131: Cast.UpsertMediaMetricsDailyBatchReq - (*UpsertMediaMetricsDailyBatchResp)(nil), // 132: Cast.UpsertMediaMetricsDailyBatchResp - (*WorkMetricsDailyItem)(nil), // 133: Cast.WorkMetricsDailyItem - (*UpsertWorkMetricsDailyBatchReq)(nil), // 134: Cast.UpsertWorkMetricsDailyBatchReq - (*UpsertWorkMetricsDailyBatchResp)(nil), // 135: Cast.UpsertWorkMetricsDailyBatchResp - (*GetArtistAyrShareInfoReq)(nil), // 136: Cast.GetArtistAyrShareInfoReq - (*ArtistAyrShareInfo)(nil), // 137: Cast.ArtistAyrShareInfo - (*GetArtistAyrShareInfoResp)(nil), // 138: Cast.GetArtistAyrShareInfoResp - (*ListWorkPlatformInfoReq)(nil), // 139: Cast.ListWorkPlatformInfoReq - (*WorkPlatformInfo)(nil), // 140: Cast.WorkPlatformInfo - (*ListWorkPlatformInfoResp)(nil), // 141: Cast.ListWorkPlatformInfoResp - (*WorkListResp_Info)(nil), // 142: Cast.WorkListResp.Info - nil, // 143: Cast.WorkDetailResp.MediaAccDataEntry - (*MediaAccountsResp_Info)(nil), // 144: Cast.MediaAccountsResp.Info - (*MediaWorksResp_Info)(nil), // 145: Cast.MediaWorksResp.Info - (*PublishResp_Info)(nil), // 146: Cast.PublishResp.Info - (*RefreshWorkListResp_Info)(nil), // 147: Cast.RefreshWorkListResp.Info - (*RefreshWorkListResp_Info_PlatformInfo)(nil), // 148: Cast.RefreshWorkListResp.Info.PlatformInfo - (*UpdateOAuthReq_Info)(nil), // 149: Cast.UpdateOAuthReq.Info - (*emptypb.Empty)(nil), // 150: google.protobuf.Empty + (*AsInfo)(nil), // 6: Cast.AsInfo + (*MediaUserListReq)(nil), // 7: Cast.MediaUserListReq + (*MediaUserInfo)(nil), // 8: Cast.MediaUserInfo + (*MediaUserListResp)(nil), // 9: Cast.MediaUserListResp + (*UpdateMediaAccountReq)(nil), // 10: Cast.UpdateMediaAccountReq + (*UpdateMediaAccountResp)(nil), // 11: Cast.UpdateMediaAccountResp + (*UnbindManagerReq)(nil), // 12: Cast.UnbindManagerReq + (*UnbindManagerResp)(nil), // 13: Cast.UnbindManagerResp + (*BindManagerReq)(nil), // 14: Cast.BindManagerReq + (*UpdateWorkImageReq)(nil), // 15: Cast.UpdateWorkImageReq + (*UpdateWorkImageResp)(nil), // 16: Cast.UpdateWorkImageResp + (*PublishConfig)(nil), // 17: Cast.PublishConfig + (*UpdateWorkVideoReq)(nil), // 18: Cast.UpdateWorkVideoReq + (*UpdateWorkVideoResp)(nil), // 19: Cast.UpdateWorkVideoResp + (*MediaInfoReq)(nil), // 20: Cast.MediaInfoReq + (*MediaInfoResp)(nil), // 21: Cast.MediaInfoResp + (*MediaInfoByPlatformReq)(nil), // 22: Cast.MediaInfoByPlatformReq + (*MediaInfoByPlatformResp)(nil), // 23: Cast.MediaInfoByPlatformResp + (*WorkListReq)(nil), // 24: Cast.WorkListReq + (*WorkListResp)(nil), // 25: Cast.WorkListResp + (*WorkDetailReq)(nil), // 26: Cast.WorkDetailReq + (*WorkLogInfo)(nil), // 27: Cast.WorkLogInfo + (*WorkDetailResp)(nil), // 28: Cast.WorkDetailResp + (*UpdateStatusReq)(nil), // 29: Cast.UpdateStatusReq + (*MediaAccountsReq)(nil), // 30: Cast.MediaAccountsReq + (*MediaAccountsResp)(nil), // 31: Cast.MediaAccountsResp + (*MediaWorksReq)(nil), // 32: Cast.MediaWorksReq + (*MediaWorksResp)(nil), // 33: Cast.MediaWorksResp + (*PublishReq)(nil), // 34: Cast.PublishReq + (*PublishResp)(nil), // 35: Cast.PublishResp + (*RePublishReq)(nil), // 36: Cast.RePublishReq + (*RePublishResp)(nil), // 37: Cast.RePublishResp + (*DelWorkReq)(nil), // 38: Cast.DelWorkReq + (*WorkInfoReq)(nil), // 39: Cast.WorkInfoReq + (*WorkInfoResp)(nil), // 40: Cast.WorkInfoResp + (*ArtistInfoReq)(nil), // 41: Cast.ArtistInfoReq + (*ArtistInfoResp)(nil), // 42: Cast.ArtistInfoResp + (*ImportWorkBatchReq)(nil), // 43: Cast.ImportWorkBatchReq + (*ImportWorkBatchResp)(nil), // 44: Cast.ImportWorkBatchResp + (*PlatformInfo)(nil), // 45: Cast.PlatformInfo + (*UpdateWorkPlatformInfoReq)(nil), // 46: Cast.UpdateWorkPlatformInfoReq + (*UpdateWorkPlatformInfoResp)(nil), // 47: Cast.UpdateWorkPlatformInfoResp + (*UpdateWorkPublishLogReq)(nil), // 48: Cast.UpdateWorkPublishLogReq + (*RefreshWorkListReq)(nil), // 49: Cast.RefreshWorkListReq + (*RefreshWorkListResp)(nil), // 50: Cast.RefreshWorkListResp + (*OAuthAccountReq)(nil), // 51: Cast.OAuthAccountReq + (*OAuthAccountResp)(nil), // 52: Cast.OAuthAccountResp + (*OAuthAccountV2Req)(nil), // 53: Cast.OAuthAccountV2Req + (*OAuthAccountV2Resp)(nil), // 54: Cast.OAuthAccountV2Resp + (*OAuthYoutubeTokenReq)(nil), // 55: Cast.OAuthYoutubeTokenReq + (*OAuthYoutubeTokenResp)(nil), // 56: Cast.OAuthYoutubeTokenResp + (*OAuthCodeToTokenReq)(nil), // 57: Cast.OAuthCodeToTokenReq + (*OAuthCodeToTokenResp)(nil), // 58: Cast.OAuthCodeToTokenResp + (*UpdateOAuthReq)(nil), // 59: Cast.UpdateOAuthReq + (*RefreshTokenReq)(nil), // 60: Cast.RefreshTokenReq + (*RefreshTokenResp)(nil), // 61: Cast.RefreshTokenResp + (*PublishMediaInfoReq)(nil), // 62: Cast.PublishMediaInfoReq + (*PublishMediaInfoResp)(nil), // 63: Cast.PublishMediaInfoResp + (*UpdateVideoScriptReq)(nil), // 64: Cast.UpdateVideoScriptReq + (*UpdateVideoScriptResp)(nil), // 65: Cast.UpdateVideoScriptResp + (*GetVideoScriptReq)(nil), // 66: Cast.GetVideoScriptReq + (*GetVideoScriptResp)(nil), // 67: Cast.GetVideoScriptResp + (*ListVideoScriptsReq)(nil), // 68: Cast.ListVideoScriptsReq + (*VideoScriptInfo)(nil), // 69: Cast.VideoScriptInfo + (*ListVideoScriptsResp)(nil), // 70: Cast.ListVideoScriptsResp + (*DeleteVideoScriptReq)(nil), // 71: Cast.DeleteVideoScriptReq + (*UpdateVideoScriptBatchReq)(nil), // 72: Cast.UpdateVideoScriptBatchReq + (*UpdateVideoScriptBatchResp)(nil), // 73: Cast.UpdateVideoScriptBatchResp + (*UpdateScriptStatusReq)(nil), // 74: Cast.UpdateScriptStatusReq + (*SetLayoutReq)(nil), // 75: Cast.SetLayoutReq + (*GetLayoutReq)(nil), // 76: Cast.GetLayoutReq + (*GetLayoutResp)(nil), // 77: Cast.GetLayoutResp + (*UpdatePromptReq)(nil), // 78: Cast.UpdatePromptReq + (*DeletePromptReq)(nil), // 79: Cast.DeletePromptReq + (*GetPromptReq)(nil), // 80: Cast.GetPromptReq + (*GetPromptResp)(nil), // 81: Cast.GetPromptResp + (*ListPromptsReq)(nil), // 82: Cast.ListPromptsReq + (*PromptInfo)(nil), // 83: Cast.PromptInfo + (*ListPromptsResp)(nil), // 84: Cast.ListPromptsResp + (*UpdatePromptBatchReq)(nil), // 85: Cast.UpdatePromptBatchReq + (*UpdatePromptBatchResp)(nil), // 86: Cast.UpdatePromptBatchResp + (*ArtistInfo)(nil), // 87: Cast.ArtistInfo + (*UpdateArtistReq)(nil), // 88: Cast.UpdateArtistReq + (*UpdateArtistResp)(nil), // 89: Cast.UpdateArtistResp + (*GetArtistReq)(nil), // 90: Cast.GetArtistReq + (*GetArtistResp)(nil), // 91: Cast.GetArtistResp + (*CreateWorkAnalysisReq)(nil), // 92: Cast.CreateWorkAnalysisReq + (*CreateWorkAnalysisResp)(nil), // 93: Cast.CreateWorkAnalysisResp + (*UpdateWorkAnalysisReq)(nil), // 94: Cast.UpdateWorkAnalysisReq + (*UpdateWorkAnalysisStatusReq)(nil), // 95: Cast.UpdateWorkAnalysisStatusReq + (*WorkAnalysisLogInfo)(nil), // 96: Cast.WorkAnalysisLogInfo + (*WorkAnalysisFansSeries)(nil), // 97: Cast.WorkAnalysisFansSeries + (*WorkAnalysisViewsSeries)(nil), // 98: Cast.WorkAnalysisViewsSeries + (*WorkAnalysisLikesSeries)(nil), // 99: Cast.WorkAnalysisLikesSeries + (*WorkAnalysisCommentsSeries)(nil), // 100: Cast.WorkAnalysisCommentsSeries + (*WorkAnalysisSharesSeries)(nil), // 101: Cast.WorkAnalysisSharesSeries + (*WorkAnalysisTopCities)(nil), // 102: Cast.WorkAnalysisTopCities + (*WorkAnalysisMostActiveDay)(nil), // 103: Cast.WorkAnalysisMostActiveDay + (*WorkAnalysisBestPostTime)(nil), // 104: Cast.WorkAnalysisBestPostTime + (*WorkAnalysisExtra)(nil), // 105: Cast.WorkAnalysisExtra + (*GetWorkAnalysisDetailReq)(nil), // 106: Cast.GetWorkAnalysisDetailReq + (*GetLatestWorkAnalysisReq)(nil), // 107: Cast.GetLatestWorkAnalysisReq + (*GetWorkAnalysisResp)(nil), // 108: Cast.GetWorkAnalysisResp + (*GetWorkAnalysisDetailResp)(nil), // 109: Cast.GetWorkAnalysisDetailResp + (*ListWorkAnalysisReq)(nil), // 110: Cast.ListWorkAnalysisReq + (*WorkAnalysisInfo)(nil), // 111: Cast.WorkAnalysisInfo + (*ListWorkAnalysisResp)(nil), // 112: Cast.ListWorkAnalysisResp + (*DeleteWorkAnalysisReq)(nil), // 113: Cast.DeleteWorkAnalysisReq + (*ArtistDataListReq)(nil), // 114: Cast.ArtistDataListReq + (*ArtistDataRespItem)(nil), // 115: Cast.ArtistDataRespItem + (*ArtistDataListResp)(nil), // 116: Cast.ArtistDataListResp + (*MediaDataListReq)(nil), // 117: Cast.MediaDataListReq + (*MediaDataListItem)(nil), // 118: Cast.MediaDataListItem + (*MediaDataListResp)(nil), // 119: Cast.MediaDataListResp + (*DataOverviewReq)(nil), // 120: Cast.DataOverviewReq + (*DataOverviewResp)(nil), // 121: Cast.DataOverviewResp + (*ArtistMetricsSeriesReq)(nil), // 122: Cast.ArtistMetricsSeriesReq + (*ArtistMetricsSeriesResp)(nil), // 123: Cast.ArtistMetricsSeriesResp + (*ArtistMetricsDailyWindowReq)(nil), // 124: Cast.ArtistMetricsDailyWindowReq + (*SimplePoint)(nil), // 125: Cast.SimplePoint + (*BestPostTimePoint)(nil), // 126: Cast.BestPostTimePoint + (*MostActiveDayPoint)(nil), // 127: Cast.MostActiveDayPoint + (*ArtistMetricsDailyWindowResp)(nil), // 128: Cast.ArtistMetricsDailyWindowResp + (*TobeConfirmedListReq)(nil), // 129: Cast.TobeConfirmedListReq + (*TobeConfirmedItem)(nil), // 130: Cast.TobeConfirmedItem + (*TobeConfirmedListResp)(nil), // 131: Cast.TobeConfirmedListResp + (*UpdateWorkAnalysisApprovalIDReq)(nil), // 132: Cast.UpdateWorkAnalysisApprovalIDReq + (*MediaMetricsDailyItem)(nil), // 133: Cast.MediaMetricsDailyItem + (*UpsertMediaMetricsDailyBatchReq)(nil), // 134: Cast.UpsertMediaMetricsDailyBatchReq + (*UpsertMediaMetricsDailyBatchResp)(nil), // 135: Cast.UpsertMediaMetricsDailyBatchResp + (*WorkMetricsDailyItem)(nil), // 136: Cast.WorkMetricsDailyItem + (*UpsertWorkMetricsDailyBatchReq)(nil), // 137: Cast.UpsertWorkMetricsDailyBatchReq + (*UpsertWorkMetricsDailyBatchResp)(nil), // 138: Cast.UpsertWorkMetricsDailyBatchResp + (*GetArtistAyrShareInfoReq)(nil), // 139: Cast.GetArtistAyrShareInfoReq + (*ArtistAyrShareInfo)(nil), // 140: Cast.ArtistAyrShareInfo + (*GetArtistAyrShareInfoResp)(nil), // 141: Cast.GetArtistAyrShareInfoResp + (*ListWorkPlatformInfoReq)(nil), // 142: Cast.ListWorkPlatformInfoReq + (*WorkPlatformInfo)(nil), // 143: Cast.WorkPlatformInfo + (*ListWorkPlatformInfoResp)(nil), // 144: Cast.ListWorkPlatformInfoResp + (*WorkListResp_Info)(nil), // 145: Cast.WorkListResp.Info + nil, // 146: Cast.WorkDetailResp.MediaAccDataEntry + (*MediaAccountsResp_Info)(nil), // 147: Cast.MediaAccountsResp.Info + (*MediaWorksResp_Info)(nil), // 148: Cast.MediaWorksResp.Info + (*PublishResp_Info)(nil), // 149: Cast.PublishResp.Info + (*RefreshWorkListResp_Info)(nil), // 150: Cast.RefreshWorkListResp.Info + (*RefreshWorkListResp_Info_PlatformInfo)(nil), // 151: Cast.RefreshWorkListResp.Info.PlatformInfo + (*UpdateOAuthReq_Info)(nil), // 152: Cast.UpdateOAuthReq.Info + (*emptypb.Empty)(nil), // 153: google.protobuf.Empty } var file_pb_fiee_cast_proto_depIdxs = []int32{ 0, // 0: Cast.MediaUserListReq.platformID:type_name -> Cast.PlatformIDENUM 1, // 1: Cast.MediaUserListReq.authStatus:type_name -> Cast.AuthStatusENUM 1, // 2: Cast.MediaUserInfo.authStatus:type_name -> Cast.AuthStatusENUM - 7, // 3: Cast.MediaUserListResp.data:type_name -> Cast.MediaUserInfo - 0, // 4: Cast.UpdateMediaAccountReq.platformID:type_name -> Cast.PlatformIDENUM - 0, // 5: Cast.UpdateWorkImageReq.platformIDs:type_name -> Cast.PlatformIDENUM - 16, // 6: Cast.UpdateWorkImageReq.publishConfig1:type_name -> Cast.PublishConfig - 16, // 7: Cast.UpdateWorkImageReq.publishConfig2:type_name -> Cast.PublishConfig - 16, // 8: Cast.UpdateWorkImageReq.publishConfig3:type_name -> Cast.PublishConfig - 16, // 9: Cast.UpdateWorkImageReq.publishConfig4:type_name -> Cast.PublishConfig - 0, // 10: Cast.UpdateWorkVideoReq.platformIDs:type_name -> Cast.PlatformIDENUM - 16, // 11: Cast.UpdateWorkVideoReq.publishConfig1:type_name -> Cast.PublishConfig - 16, // 12: Cast.UpdateWorkVideoReq.publishConfig2:type_name -> Cast.PublishConfig - 16, // 13: Cast.UpdateWorkVideoReq.publishConfig3:type_name -> Cast.PublishConfig - 16, // 14: Cast.UpdateWorkVideoReq.publishConfig4:type_name -> Cast.PublishConfig - 3, // 15: Cast.UpdateWorkVideoReq.autoPublish:type_name -> Cast.AutoPublishENUM - 0, // 16: Cast.MediaInfoReq.platformID:type_name -> Cast.PlatformIDENUM - 7, // 17: Cast.MediaInfoResp.info:type_name -> Cast.MediaUserInfo - 142, // 18: Cast.WorkListResp.data:type_name -> Cast.WorkListResp.Info - 16, // 19: Cast.WorkDetailResp.publishConfig1:type_name -> Cast.PublishConfig - 16, // 20: Cast.WorkDetailResp.publishConfig2:type_name -> Cast.PublishConfig - 16, // 21: Cast.WorkDetailResp.publishConfig3:type_name -> Cast.PublishConfig - 16, // 22: Cast.WorkDetailResp.publishConfig4:type_name -> Cast.PublishConfig - 24, // 23: Cast.WorkDetailResp.WorkLogData:type_name -> Cast.WorkLogInfo - 143, // 24: Cast.WorkDetailResp.mediaAccData:type_name -> Cast.WorkDetailResp.MediaAccDataEntry - 2, // 25: Cast.UpdateStatusReq.workAction:type_name -> Cast.WorkActionENUM - 3, // 26: Cast.UpdateStatusReq.autoPublish:type_name -> Cast.AutoPublishENUM - 144, // 27: Cast.MediaAccountsResp.data:type_name -> Cast.MediaAccountsResp.Info - 145, // 28: Cast.MediaWorksResp.data:type_name -> Cast.MediaWorksResp.Info - 146, // 29: Cast.PublishResp.data:type_name -> Cast.PublishResp.Info - 14, // 30: Cast.ImportWorkBatchReq.imageWorks:type_name -> Cast.UpdateWorkImageReq - 14, // 31: Cast.ImportWorkBatchResp.imageWorks:type_name -> Cast.UpdateWorkImageReq - 4, // 32: Cast.PlatformInfo.publishStatus:type_name -> Cast.PublishStatusENUM - 42, // 33: Cast.UpdateWorkPlatformInfoReq.PlatformInfoData:type_name -> Cast.PlatformInfo - 0, // 34: Cast.UpdateWorkPublishLogReq.platformID:type_name -> Cast.PlatformIDENUM - 147, // 35: Cast.RefreshWorkListResp.Data:type_name -> Cast.RefreshWorkListResp.Info - 0, // 36: Cast.OAuthCodeToTokenReq.platformID:type_name -> Cast.PlatformIDENUM - 149, // 37: Cast.UpdateOAuthReq.Data:type_name -> Cast.UpdateOAuthReq.Info - 0, // 38: Cast.RefreshTokenReq.platformID:type_name -> Cast.PlatformIDENUM - 66, // 39: Cast.ListVideoScriptsResp.data:type_name -> Cast.VideoScriptInfo - 66, // 40: Cast.UpdateVideoScriptBatchReq.data:type_name -> Cast.VideoScriptInfo - 66, // 41: Cast.UpdateVideoScriptBatchResp.data:type_name -> Cast.VideoScriptInfo - 2, // 42: Cast.UpdateScriptStatusReq.workAction:type_name -> Cast.WorkActionENUM - 5, // 43: Cast.UpdatePromptReq.category:type_name -> Cast.CategoryENUM - 5, // 44: Cast.GetPromptResp.category:type_name -> Cast.CategoryENUM - 5, // 45: Cast.ListPromptsReq.category:type_name -> Cast.CategoryENUM - 5, // 46: Cast.PromptInfo.category:type_name -> Cast.CategoryENUM - 80, // 47: Cast.ListPromptsResp.data:type_name -> Cast.PromptInfo - 80, // 48: Cast.UpdatePromptBatchReq.data:type_name -> Cast.PromptInfo - 80, // 49: Cast.UpdatePromptBatchResp.data:type_name -> Cast.PromptInfo - 84, // 50: Cast.UpdateArtistReq.artistInfo:type_name -> Cast.ArtistInfo - 84, // 51: Cast.GetArtistResp.artistInfo:type_name -> Cast.ArtistInfo - 2, // 52: Cast.UpdateWorkAnalysisStatusReq.workAction:type_name -> Cast.WorkActionENUM - 94, // 53: Cast.GetWorkAnalysisResp.fansSeries:type_name -> Cast.WorkAnalysisFansSeries - 95, // 54: Cast.GetWorkAnalysisResp.viewsSeries:type_name -> Cast.WorkAnalysisViewsSeries - 96, // 55: Cast.GetWorkAnalysisResp.likesSeries:type_name -> Cast.WorkAnalysisLikesSeries - 97, // 56: Cast.GetWorkAnalysisResp.commentsSeries:type_name -> Cast.WorkAnalysisCommentsSeries - 98, // 57: Cast.GetWorkAnalysisResp.sharesSeries:type_name -> Cast.WorkAnalysisSharesSeries - 99, // 58: Cast.GetWorkAnalysisResp.topCitiesSeries:type_name -> Cast.WorkAnalysisTopCities - 100, // 59: Cast.GetWorkAnalysisResp.mostActiveDaySeries:type_name -> Cast.WorkAnalysisMostActiveDay - 101, // 60: Cast.GetWorkAnalysisResp.bestPostTimeSeries:type_name -> Cast.WorkAnalysisBestPostTime - 93, // 61: Cast.GetWorkAnalysisDetailResp.WorkAnalysisLogData:type_name -> Cast.WorkAnalysisLogInfo - 94, // 62: Cast.GetWorkAnalysisDetailResp.fansSeries:type_name -> Cast.WorkAnalysisFansSeries - 95, // 63: Cast.GetWorkAnalysisDetailResp.viewsSeries:type_name -> Cast.WorkAnalysisViewsSeries - 96, // 64: Cast.GetWorkAnalysisDetailResp.likesSeries:type_name -> Cast.WorkAnalysisLikesSeries - 97, // 65: Cast.GetWorkAnalysisDetailResp.commentsSeries:type_name -> Cast.WorkAnalysisCommentsSeries - 98, // 66: Cast.GetWorkAnalysisDetailResp.sharesSeries:type_name -> Cast.WorkAnalysisSharesSeries - 99, // 67: Cast.GetWorkAnalysisDetailResp.topCitiesSeries:type_name -> Cast.WorkAnalysisTopCities - 100, // 68: Cast.GetWorkAnalysisDetailResp.mostActiveDaySeries:type_name -> Cast.WorkAnalysisMostActiveDay - 101, // 69: Cast.GetWorkAnalysisDetailResp.bestPostTimeSeries:type_name -> Cast.WorkAnalysisBestPostTime - 102, // 70: Cast.GetWorkAnalysisDetailResp.extra:type_name -> Cast.WorkAnalysisExtra - 108, // 71: Cast.ListWorkAnalysisResp.data:type_name -> Cast.WorkAnalysisInfo - 112, // 72: Cast.ArtistDataListResp.data:type_name -> Cast.ArtistDataRespItem - 115, // 73: Cast.MediaDataListResp.data:type_name -> Cast.MediaDataListItem - 94, // 74: Cast.ArtistMetricsSeriesResp.fansSeries:type_name -> Cast.WorkAnalysisFansSeries - 95, // 75: Cast.ArtistMetricsSeriesResp.viewsSeries:type_name -> Cast.WorkAnalysisViewsSeries - 96, // 76: Cast.ArtistMetricsSeriesResp.likesSeries:type_name -> Cast.WorkAnalysisLikesSeries - 97, // 77: Cast.ArtistMetricsSeriesResp.commentsSeries:type_name -> Cast.WorkAnalysisCommentsSeries - 98, // 78: Cast.ArtistMetricsSeriesResp.sharesSeries:type_name -> Cast.WorkAnalysisSharesSeries - 101, // 79: Cast.ArtistMetricsSeriesResp.bestPostTime:type_name -> Cast.WorkAnalysisBestPostTime - 100, // 80: Cast.ArtistMetricsSeriesResp.mostActiveDay:type_name -> Cast.WorkAnalysisMostActiveDay - 122, // 81: Cast.ArtistMetricsDailyWindowResp.fans:type_name -> Cast.SimplePoint - 122, // 82: Cast.ArtistMetricsDailyWindowResp.views:type_name -> Cast.SimplePoint - 122, // 83: Cast.ArtistMetricsDailyWindowResp.likes:type_name -> Cast.SimplePoint - 122, // 84: Cast.ArtistMetricsDailyWindowResp.comments:type_name -> Cast.SimplePoint - 122, // 85: Cast.ArtistMetricsDailyWindowResp.shares:type_name -> Cast.SimplePoint - 123, // 86: Cast.ArtistMetricsDailyWindowResp.bestPostTime:type_name -> Cast.BestPostTimePoint - 124, // 87: Cast.ArtistMetricsDailyWindowResp.mostActiveDay:type_name -> Cast.MostActiveDayPoint - 127, // 88: Cast.TobeConfirmedListResp.data:type_name -> Cast.TobeConfirmedItem - 130, // 89: Cast.UpsertMediaMetricsDailyBatchReq.data:type_name -> Cast.MediaMetricsDailyItem - 133, // 90: Cast.UpsertWorkMetricsDailyBatchReq.data:type_name -> Cast.WorkMetricsDailyItem - 137, // 91: Cast.GetArtistAyrShareInfoResp.data:type_name -> Cast.ArtistAyrShareInfo - 140, // 92: Cast.ListWorkPlatformInfoResp.data:type_name -> Cast.WorkPlatformInfo - 7, // 93: Cast.WorkDetailResp.MediaAccDataEntry.value:type_name -> Cast.MediaUserInfo - 148, // 94: Cast.RefreshWorkListResp.Info.PlatformInfoData:type_name -> Cast.RefreshWorkListResp.Info.PlatformInfo - 0, // 95: Cast.RefreshWorkListResp.Info.PlatformInfo.platformID:type_name -> Cast.PlatformIDENUM - 0, // 96: Cast.UpdateOAuthReq.Info.platformID:type_name -> Cast.PlatformIDENUM - 6, // 97: Cast.Cast.MediaUserList:input_type -> Cast.MediaUserListReq - 9, // 98: Cast.Cast.UpdateMediaAccount:input_type -> Cast.UpdateMediaAccountReq - 11, // 99: Cast.Cast.UnbindManager:input_type -> Cast.UnbindManagerReq - 13, // 100: Cast.Cast.BindManager:input_type -> Cast.BindManagerReq - 14, // 101: Cast.Cast.UpdateWorkImage:input_type -> Cast.UpdateWorkImageReq - 17, // 102: Cast.Cast.UpdateWorkVideo:input_type -> Cast.UpdateWorkVideoReq - 19, // 103: Cast.Cast.MediaInfo:input_type -> Cast.MediaInfoReq - 21, // 104: Cast.Cast.WorkList:input_type -> Cast.WorkListReq - 23, // 105: Cast.Cast.WorkDetail:input_type -> Cast.WorkDetailReq - 26, // 106: Cast.Cast.UpdateStatus:input_type -> Cast.UpdateStatusReq - 27, // 107: Cast.Cast.MediaAccounts:input_type -> Cast.MediaAccountsReq - 29, // 108: Cast.Cast.MediaWorks:input_type -> Cast.MediaWorksReq - 31, // 109: Cast.Cast.Publish:input_type -> Cast.PublishReq - 33, // 110: Cast.Cast.RePublish:input_type -> Cast.RePublishReq - 35, // 111: Cast.Cast.DelWork:input_type -> Cast.DelWorkReq - 36, // 112: Cast.Cast.WorkInfo:input_type -> Cast.WorkInfoReq - 38, // 113: Cast.Cast.ArtistInfo:input_type -> Cast.ArtistInfoReq - 40, // 114: Cast.Cast.ImportWorkBatch:input_type -> Cast.ImportWorkBatchReq - 43, // 115: Cast.Cast.UpdateWorkPlatformInfo:input_type -> Cast.UpdateWorkPlatformInfoReq - 45, // 116: Cast.Cast.UpdateWorkPublishLog:input_type -> Cast.UpdateWorkPublishLogReq - 46, // 117: Cast.Cast.RefreshWorkList:input_type -> Cast.RefreshWorkListReq - 48, // 118: Cast.Cast.OAuthAccount:input_type -> Cast.OAuthAccountReq - 50, // 119: Cast.Cast.OAuthAccountV2:input_type -> Cast.OAuthAccountV2Req - 54, // 120: Cast.Cast.OAuthCodeToToken:input_type -> Cast.OAuthCodeToTokenReq - 56, // 121: Cast.Cast.UpdateOAuth:input_type -> Cast.UpdateOAuthReq - 57, // 122: Cast.Cast.RefreshToken:input_type -> Cast.RefreshTokenReq - 59, // 123: Cast.Cast.PublishMediaInfo:input_type -> Cast.PublishMediaInfoReq - 150, // 124: Cast.Cast.Test:input_type -> google.protobuf.Empty - 61, // 125: Cast.Cast.UpdateVideoScript:input_type -> Cast.UpdateVideoScriptReq - 63, // 126: Cast.Cast.GetVideoScript:input_type -> Cast.GetVideoScriptReq - 65, // 127: Cast.Cast.ListVideoScripts:input_type -> Cast.ListVideoScriptsReq - 68, // 128: Cast.Cast.DeleteVideoScript:input_type -> Cast.DeleteVideoScriptReq - 69, // 129: Cast.Cast.UpdateVideoScriptBatch:input_type -> Cast.UpdateVideoScriptBatchReq - 71, // 130: Cast.Cast.UpdateScriptStatus:input_type -> Cast.UpdateScriptStatusReq - 73, // 131: Cast.Cast.GetLayout:input_type -> Cast.GetLayoutReq - 72, // 132: Cast.Cast.SetLayout:input_type -> Cast.SetLayoutReq - 75, // 133: Cast.Cast.UpdatePrompt:input_type -> Cast.UpdatePromptReq - 76, // 134: Cast.Cast.DeletePrompt:input_type -> Cast.DeletePromptReq - 77, // 135: Cast.Cast.GetPrompt:input_type -> Cast.GetPromptReq - 79, // 136: Cast.Cast.ListPrompts:input_type -> Cast.ListPromptsReq - 82, // 137: Cast.Cast.UpdatePromptBatch:input_type -> Cast.UpdatePromptBatchReq - 85, // 138: Cast.Cast.UpdateArtist:input_type -> Cast.UpdateArtistReq - 87, // 139: Cast.Cast.GetArtist:input_type -> Cast.GetArtistReq - 89, // 140: Cast.Cast.CreateWorkAnalysis:input_type -> Cast.CreateWorkAnalysisReq - 91, // 141: Cast.Cast.UpdateWorkAnalysis:input_type -> Cast.UpdateWorkAnalysisReq - 92, // 142: Cast.Cast.UpdateWorkAnalysisStatus:input_type -> Cast.UpdateWorkAnalysisStatusReq - 103, // 143: Cast.Cast.GetWorkAnalysis:input_type -> Cast.GetWorkAnalysisDetailReq - 104, // 144: Cast.Cast.GetLatestWorkAnalysis:input_type -> Cast.GetLatestWorkAnalysisReq - 107, // 145: Cast.Cast.ListWorkAnalysis:input_type -> Cast.ListWorkAnalysisReq - 110, // 146: Cast.Cast.DeleteWorkAnalysis:input_type -> Cast.DeleteWorkAnalysisReq - 129, // 147: Cast.Cast.UpdateWorkAnalysisApprovalID:input_type -> Cast.UpdateWorkAnalysisApprovalIDReq - 111, // 148: Cast.Cast.ArtistDataList:input_type -> Cast.ArtistDataListReq - 114, // 149: Cast.Cast.MediaDataList:input_type -> Cast.MediaDataListReq - 117, // 150: Cast.Cast.DataOverview:input_type -> Cast.DataOverviewReq - 119, // 151: Cast.Cast.ArtistMetricsSeries:input_type -> Cast.ArtistMetricsSeriesReq - 121, // 152: Cast.Cast.ArtistMetricsDailyWindow:input_type -> Cast.ArtistMetricsDailyWindowReq - 126, // 153: Cast.Cast.TobeConfirmedList:input_type -> Cast.TobeConfirmedListReq - 131, // 154: Cast.Cast.UpsertMediaMetricsDailyBatch:input_type -> Cast.UpsertMediaMetricsDailyBatchReq - 134, // 155: Cast.Cast.UpsertWorkMetricsDailyBatch:input_type -> Cast.UpsertWorkMetricsDailyBatchReq - 136, // 156: Cast.Cast.GetArtistAyrShareInfo:input_type -> Cast.GetArtistAyrShareInfoReq - 139, // 157: Cast.Cast.ListWorkPlatformInfo:input_type -> Cast.ListWorkPlatformInfoReq - 8, // 158: Cast.Cast.MediaUserList:output_type -> Cast.MediaUserListResp - 10, // 159: Cast.Cast.UpdateMediaAccount:output_type -> Cast.UpdateMediaAccountResp - 12, // 160: Cast.Cast.UnbindManager:output_type -> Cast.UnbindManagerResp - 150, // 161: Cast.Cast.BindManager:output_type -> google.protobuf.Empty - 15, // 162: Cast.Cast.UpdateWorkImage:output_type -> Cast.UpdateWorkImageResp - 18, // 163: Cast.Cast.UpdateWorkVideo:output_type -> Cast.UpdateWorkVideoResp - 20, // 164: Cast.Cast.MediaInfo:output_type -> Cast.MediaInfoResp - 22, // 165: Cast.Cast.WorkList:output_type -> Cast.WorkListResp - 25, // 166: Cast.Cast.WorkDetail:output_type -> Cast.WorkDetailResp - 150, // 167: Cast.Cast.UpdateStatus:output_type -> google.protobuf.Empty - 28, // 168: Cast.Cast.MediaAccounts:output_type -> Cast.MediaAccountsResp - 30, // 169: Cast.Cast.MediaWorks:output_type -> Cast.MediaWorksResp - 32, // 170: Cast.Cast.Publish:output_type -> Cast.PublishResp - 34, // 171: Cast.Cast.RePublish:output_type -> Cast.RePublishResp - 150, // 172: Cast.Cast.DelWork:output_type -> google.protobuf.Empty - 37, // 173: Cast.Cast.WorkInfo:output_type -> Cast.WorkInfoResp - 39, // 174: Cast.Cast.ArtistInfo:output_type -> Cast.ArtistInfoResp - 41, // 175: Cast.Cast.ImportWorkBatch:output_type -> Cast.ImportWorkBatchResp - 44, // 176: Cast.Cast.UpdateWorkPlatformInfo:output_type -> Cast.UpdateWorkPlatformInfoResp - 150, // 177: Cast.Cast.UpdateWorkPublishLog:output_type -> google.protobuf.Empty - 47, // 178: Cast.Cast.RefreshWorkList:output_type -> Cast.RefreshWorkListResp - 49, // 179: Cast.Cast.OAuthAccount:output_type -> Cast.OAuthAccountResp - 51, // 180: Cast.Cast.OAuthAccountV2:output_type -> Cast.OAuthAccountV2Resp - 55, // 181: Cast.Cast.OAuthCodeToToken:output_type -> Cast.OAuthCodeToTokenResp - 150, // 182: Cast.Cast.UpdateOAuth:output_type -> google.protobuf.Empty - 58, // 183: Cast.Cast.RefreshToken:output_type -> Cast.RefreshTokenResp - 60, // 184: Cast.Cast.PublishMediaInfo:output_type -> Cast.PublishMediaInfoResp - 150, // 185: Cast.Cast.Test:output_type -> google.protobuf.Empty - 62, // 186: Cast.Cast.UpdateVideoScript:output_type -> Cast.UpdateVideoScriptResp - 64, // 187: Cast.Cast.GetVideoScript:output_type -> Cast.GetVideoScriptResp - 67, // 188: Cast.Cast.ListVideoScripts:output_type -> Cast.ListVideoScriptsResp - 150, // 189: Cast.Cast.DeleteVideoScript:output_type -> google.protobuf.Empty - 70, // 190: Cast.Cast.UpdateVideoScriptBatch:output_type -> Cast.UpdateVideoScriptBatchResp - 150, // 191: Cast.Cast.UpdateScriptStatus:output_type -> google.protobuf.Empty - 74, // 192: Cast.Cast.GetLayout:output_type -> Cast.GetLayoutResp - 150, // 193: Cast.Cast.SetLayout:output_type -> google.protobuf.Empty - 150, // 194: Cast.Cast.UpdatePrompt:output_type -> google.protobuf.Empty - 150, // 195: Cast.Cast.DeletePrompt:output_type -> google.protobuf.Empty - 78, // 196: Cast.Cast.GetPrompt:output_type -> Cast.GetPromptResp - 81, // 197: Cast.Cast.ListPrompts:output_type -> Cast.ListPromptsResp - 83, // 198: Cast.Cast.UpdatePromptBatch:output_type -> Cast.UpdatePromptBatchResp - 86, // 199: Cast.Cast.UpdateArtist:output_type -> Cast.UpdateArtistResp - 88, // 200: Cast.Cast.GetArtist:output_type -> Cast.GetArtistResp - 90, // 201: Cast.Cast.CreateWorkAnalysis:output_type -> Cast.CreateWorkAnalysisResp - 150, // 202: Cast.Cast.UpdateWorkAnalysis:output_type -> google.protobuf.Empty - 150, // 203: Cast.Cast.UpdateWorkAnalysisStatus:output_type -> google.protobuf.Empty - 106, // 204: Cast.Cast.GetWorkAnalysis:output_type -> Cast.GetWorkAnalysisDetailResp - 105, // 205: Cast.Cast.GetLatestWorkAnalysis:output_type -> Cast.GetWorkAnalysisResp - 109, // 206: Cast.Cast.ListWorkAnalysis:output_type -> Cast.ListWorkAnalysisResp - 150, // 207: Cast.Cast.DeleteWorkAnalysis:output_type -> google.protobuf.Empty - 150, // 208: Cast.Cast.UpdateWorkAnalysisApprovalID:output_type -> google.protobuf.Empty - 113, // 209: Cast.Cast.ArtistDataList:output_type -> Cast.ArtistDataListResp - 116, // 210: Cast.Cast.MediaDataList:output_type -> Cast.MediaDataListResp - 118, // 211: Cast.Cast.DataOverview:output_type -> Cast.DataOverviewResp - 120, // 212: Cast.Cast.ArtistMetricsSeries:output_type -> Cast.ArtistMetricsSeriesResp - 125, // 213: Cast.Cast.ArtistMetricsDailyWindow:output_type -> Cast.ArtistMetricsDailyWindowResp - 128, // 214: Cast.Cast.TobeConfirmedList:output_type -> Cast.TobeConfirmedListResp - 132, // 215: Cast.Cast.UpsertMediaMetricsDailyBatch:output_type -> Cast.UpsertMediaMetricsDailyBatchResp - 135, // 216: Cast.Cast.UpsertWorkMetricsDailyBatch:output_type -> Cast.UpsertWorkMetricsDailyBatchResp - 138, // 217: Cast.Cast.GetArtistAyrShareInfo:output_type -> Cast.GetArtistAyrShareInfoResp - 141, // 218: Cast.Cast.ListWorkPlatformInfo:output_type -> Cast.ListWorkPlatformInfoResp - 158, // [158:219] is the sub-list for method output_type - 97, // [97:158] is the sub-list for method input_type - 97, // [97:97] is the sub-list for extension type_name - 97, // [97:97] is the sub-list for extension extendee - 0, // [0:97] is the sub-list for field type_name + 6, // 3: Cast.MediaUserInfo.asInfo:type_name -> Cast.AsInfo + 8, // 4: Cast.MediaUserListResp.data:type_name -> Cast.MediaUserInfo + 0, // 5: Cast.UpdateMediaAccountReq.platformID:type_name -> Cast.PlatformIDENUM + 0, // 6: Cast.UpdateWorkImageReq.platformIDs:type_name -> Cast.PlatformIDENUM + 17, // 7: Cast.UpdateWorkImageReq.publishConfig1:type_name -> Cast.PublishConfig + 17, // 8: Cast.UpdateWorkImageReq.publishConfig2:type_name -> Cast.PublishConfig + 17, // 9: Cast.UpdateWorkImageReq.publishConfig3:type_name -> Cast.PublishConfig + 17, // 10: Cast.UpdateWorkImageReq.publishConfig4:type_name -> Cast.PublishConfig + 0, // 11: Cast.UpdateWorkVideoReq.platformIDs:type_name -> Cast.PlatformIDENUM + 17, // 12: Cast.UpdateWorkVideoReq.publishConfig1:type_name -> Cast.PublishConfig + 17, // 13: Cast.UpdateWorkVideoReq.publishConfig2:type_name -> Cast.PublishConfig + 17, // 14: Cast.UpdateWorkVideoReq.publishConfig3:type_name -> Cast.PublishConfig + 17, // 15: Cast.UpdateWorkVideoReq.publishConfig4:type_name -> Cast.PublishConfig + 3, // 16: Cast.UpdateWorkVideoReq.autoPublish:type_name -> Cast.AutoPublishENUM + 0, // 17: Cast.MediaInfoReq.platformID:type_name -> Cast.PlatformIDENUM + 8, // 18: Cast.MediaInfoResp.info:type_name -> Cast.MediaUserInfo + 0, // 19: Cast.MediaInfoByPlatformReq.platformID:type_name -> Cast.PlatformIDENUM + 8, // 20: Cast.MediaInfoByPlatformResp.info:type_name -> Cast.MediaUserInfo + 145, // 21: Cast.WorkListResp.data:type_name -> Cast.WorkListResp.Info + 17, // 22: Cast.WorkDetailResp.publishConfig1:type_name -> Cast.PublishConfig + 17, // 23: Cast.WorkDetailResp.publishConfig2:type_name -> Cast.PublishConfig + 17, // 24: Cast.WorkDetailResp.publishConfig3:type_name -> Cast.PublishConfig + 17, // 25: Cast.WorkDetailResp.publishConfig4:type_name -> Cast.PublishConfig + 27, // 26: Cast.WorkDetailResp.WorkLogData:type_name -> Cast.WorkLogInfo + 146, // 27: Cast.WorkDetailResp.mediaAccData:type_name -> Cast.WorkDetailResp.MediaAccDataEntry + 2, // 28: Cast.UpdateStatusReq.workAction:type_name -> Cast.WorkActionENUM + 3, // 29: Cast.UpdateStatusReq.autoPublish:type_name -> Cast.AutoPublishENUM + 147, // 30: Cast.MediaAccountsResp.data:type_name -> Cast.MediaAccountsResp.Info + 148, // 31: Cast.MediaWorksResp.data:type_name -> Cast.MediaWorksResp.Info + 149, // 32: Cast.PublishResp.data:type_name -> Cast.PublishResp.Info + 15, // 33: Cast.ImportWorkBatchReq.imageWorks:type_name -> Cast.UpdateWorkImageReq + 15, // 34: Cast.ImportWorkBatchResp.imageWorks:type_name -> Cast.UpdateWorkImageReq + 4, // 35: Cast.PlatformInfo.publishStatus:type_name -> Cast.PublishStatusENUM + 45, // 36: Cast.UpdateWorkPlatformInfoReq.PlatformInfoData:type_name -> Cast.PlatformInfo + 0, // 37: Cast.UpdateWorkPublishLogReq.platformID:type_name -> Cast.PlatformIDENUM + 150, // 38: Cast.RefreshWorkListResp.Data:type_name -> Cast.RefreshWorkListResp.Info + 0, // 39: Cast.OAuthCodeToTokenReq.platformID:type_name -> Cast.PlatformIDENUM + 152, // 40: Cast.UpdateOAuthReq.Data:type_name -> Cast.UpdateOAuthReq.Info + 0, // 41: Cast.RefreshTokenReq.platformID:type_name -> Cast.PlatformIDENUM + 69, // 42: Cast.ListVideoScriptsResp.data:type_name -> Cast.VideoScriptInfo + 69, // 43: Cast.UpdateVideoScriptBatchReq.data:type_name -> Cast.VideoScriptInfo + 69, // 44: Cast.UpdateVideoScriptBatchResp.data:type_name -> Cast.VideoScriptInfo + 2, // 45: Cast.UpdateScriptStatusReq.workAction:type_name -> Cast.WorkActionENUM + 5, // 46: Cast.UpdatePromptReq.category:type_name -> Cast.CategoryENUM + 5, // 47: Cast.GetPromptResp.category:type_name -> Cast.CategoryENUM + 5, // 48: Cast.ListPromptsReq.category:type_name -> Cast.CategoryENUM + 5, // 49: Cast.PromptInfo.category:type_name -> Cast.CategoryENUM + 83, // 50: Cast.ListPromptsResp.data:type_name -> Cast.PromptInfo + 83, // 51: Cast.UpdatePromptBatchReq.data:type_name -> Cast.PromptInfo + 83, // 52: Cast.UpdatePromptBatchResp.data:type_name -> Cast.PromptInfo + 87, // 53: Cast.UpdateArtistReq.artistInfo:type_name -> Cast.ArtistInfo + 87, // 54: Cast.GetArtistResp.artistInfo:type_name -> Cast.ArtistInfo + 2, // 55: Cast.UpdateWorkAnalysisStatusReq.workAction:type_name -> Cast.WorkActionENUM + 97, // 56: Cast.GetWorkAnalysisResp.fansSeries:type_name -> Cast.WorkAnalysisFansSeries + 98, // 57: Cast.GetWorkAnalysisResp.viewsSeries:type_name -> Cast.WorkAnalysisViewsSeries + 99, // 58: Cast.GetWorkAnalysisResp.likesSeries:type_name -> Cast.WorkAnalysisLikesSeries + 100, // 59: Cast.GetWorkAnalysisResp.commentsSeries:type_name -> Cast.WorkAnalysisCommentsSeries + 101, // 60: Cast.GetWorkAnalysisResp.sharesSeries:type_name -> Cast.WorkAnalysisSharesSeries + 102, // 61: Cast.GetWorkAnalysisResp.topCitiesSeries:type_name -> Cast.WorkAnalysisTopCities + 103, // 62: Cast.GetWorkAnalysisResp.mostActiveDaySeries:type_name -> Cast.WorkAnalysisMostActiveDay + 104, // 63: Cast.GetWorkAnalysisResp.bestPostTimeSeries:type_name -> Cast.WorkAnalysisBestPostTime + 96, // 64: Cast.GetWorkAnalysisDetailResp.WorkAnalysisLogData:type_name -> Cast.WorkAnalysisLogInfo + 97, // 65: Cast.GetWorkAnalysisDetailResp.fansSeries:type_name -> Cast.WorkAnalysisFansSeries + 98, // 66: Cast.GetWorkAnalysisDetailResp.viewsSeries:type_name -> Cast.WorkAnalysisViewsSeries + 99, // 67: Cast.GetWorkAnalysisDetailResp.likesSeries:type_name -> Cast.WorkAnalysisLikesSeries + 100, // 68: Cast.GetWorkAnalysisDetailResp.commentsSeries:type_name -> Cast.WorkAnalysisCommentsSeries + 101, // 69: Cast.GetWorkAnalysisDetailResp.sharesSeries:type_name -> Cast.WorkAnalysisSharesSeries + 102, // 70: Cast.GetWorkAnalysisDetailResp.topCitiesSeries:type_name -> Cast.WorkAnalysisTopCities + 103, // 71: Cast.GetWorkAnalysisDetailResp.mostActiveDaySeries:type_name -> Cast.WorkAnalysisMostActiveDay + 104, // 72: Cast.GetWorkAnalysisDetailResp.bestPostTimeSeries:type_name -> Cast.WorkAnalysisBestPostTime + 105, // 73: Cast.GetWorkAnalysisDetailResp.extra:type_name -> Cast.WorkAnalysisExtra + 111, // 74: Cast.ListWorkAnalysisResp.data:type_name -> Cast.WorkAnalysisInfo + 115, // 75: Cast.ArtistDataListResp.data:type_name -> Cast.ArtistDataRespItem + 118, // 76: Cast.MediaDataListResp.data:type_name -> Cast.MediaDataListItem + 97, // 77: Cast.ArtistMetricsSeriesResp.fansSeries:type_name -> Cast.WorkAnalysisFansSeries + 98, // 78: Cast.ArtistMetricsSeriesResp.viewsSeries:type_name -> Cast.WorkAnalysisViewsSeries + 99, // 79: Cast.ArtistMetricsSeriesResp.likesSeries:type_name -> Cast.WorkAnalysisLikesSeries + 100, // 80: Cast.ArtistMetricsSeriesResp.commentsSeries:type_name -> Cast.WorkAnalysisCommentsSeries + 101, // 81: Cast.ArtistMetricsSeriesResp.sharesSeries:type_name -> Cast.WorkAnalysisSharesSeries + 104, // 82: Cast.ArtistMetricsSeriesResp.bestPostTime:type_name -> Cast.WorkAnalysisBestPostTime + 103, // 83: Cast.ArtistMetricsSeriesResp.mostActiveDay:type_name -> Cast.WorkAnalysisMostActiveDay + 125, // 84: Cast.ArtistMetricsDailyWindowResp.fans:type_name -> Cast.SimplePoint + 125, // 85: Cast.ArtistMetricsDailyWindowResp.views:type_name -> Cast.SimplePoint + 125, // 86: Cast.ArtistMetricsDailyWindowResp.likes:type_name -> Cast.SimplePoint + 125, // 87: Cast.ArtistMetricsDailyWindowResp.comments:type_name -> Cast.SimplePoint + 125, // 88: Cast.ArtistMetricsDailyWindowResp.shares:type_name -> Cast.SimplePoint + 126, // 89: Cast.ArtistMetricsDailyWindowResp.bestPostTime:type_name -> Cast.BestPostTimePoint + 127, // 90: Cast.ArtistMetricsDailyWindowResp.mostActiveDay:type_name -> Cast.MostActiveDayPoint + 130, // 91: Cast.TobeConfirmedListResp.data:type_name -> Cast.TobeConfirmedItem + 133, // 92: Cast.UpsertMediaMetricsDailyBatchReq.data:type_name -> Cast.MediaMetricsDailyItem + 136, // 93: Cast.UpsertWorkMetricsDailyBatchReq.data:type_name -> Cast.WorkMetricsDailyItem + 140, // 94: Cast.GetArtistAyrShareInfoResp.data:type_name -> Cast.ArtistAyrShareInfo + 143, // 95: Cast.ListWorkPlatformInfoResp.data:type_name -> Cast.WorkPlatformInfo + 8, // 96: Cast.WorkDetailResp.MediaAccDataEntry.value:type_name -> Cast.MediaUserInfo + 151, // 97: Cast.RefreshWorkListResp.Info.PlatformInfoData:type_name -> Cast.RefreshWorkListResp.Info.PlatformInfo + 0, // 98: Cast.RefreshWorkListResp.Info.PlatformInfo.platformID:type_name -> Cast.PlatformIDENUM + 0, // 99: Cast.UpdateOAuthReq.Info.platformID:type_name -> Cast.PlatformIDENUM + 7, // 100: Cast.Cast.MediaUserList:input_type -> Cast.MediaUserListReq + 10, // 101: Cast.Cast.UpdateMediaAccount:input_type -> Cast.UpdateMediaAccountReq + 12, // 102: Cast.Cast.UnbindManager:input_type -> Cast.UnbindManagerReq + 14, // 103: Cast.Cast.BindManager:input_type -> Cast.BindManagerReq + 15, // 104: Cast.Cast.UpdateWorkImage:input_type -> Cast.UpdateWorkImageReq + 18, // 105: Cast.Cast.UpdateWorkVideo:input_type -> Cast.UpdateWorkVideoReq + 20, // 106: Cast.Cast.MediaInfo:input_type -> Cast.MediaInfoReq + 22, // 107: Cast.Cast.MediaInfoByPlatform:input_type -> Cast.MediaInfoByPlatformReq + 24, // 108: Cast.Cast.WorkList:input_type -> Cast.WorkListReq + 26, // 109: Cast.Cast.WorkDetail:input_type -> Cast.WorkDetailReq + 29, // 110: Cast.Cast.UpdateStatus:input_type -> Cast.UpdateStatusReq + 30, // 111: Cast.Cast.MediaAccounts:input_type -> Cast.MediaAccountsReq + 32, // 112: Cast.Cast.MediaWorks:input_type -> Cast.MediaWorksReq + 34, // 113: Cast.Cast.Publish:input_type -> Cast.PublishReq + 36, // 114: Cast.Cast.RePublish:input_type -> Cast.RePublishReq + 38, // 115: Cast.Cast.DelWork:input_type -> Cast.DelWorkReq + 39, // 116: Cast.Cast.WorkInfo:input_type -> Cast.WorkInfoReq + 41, // 117: Cast.Cast.ArtistInfo:input_type -> Cast.ArtistInfoReq + 43, // 118: Cast.Cast.ImportWorkBatch:input_type -> Cast.ImportWorkBatchReq + 46, // 119: Cast.Cast.UpdateWorkPlatformInfo:input_type -> Cast.UpdateWorkPlatformInfoReq + 48, // 120: Cast.Cast.UpdateWorkPublishLog:input_type -> Cast.UpdateWorkPublishLogReq + 49, // 121: Cast.Cast.RefreshWorkList:input_type -> Cast.RefreshWorkListReq + 51, // 122: Cast.Cast.OAuthAccount:input_type -> Cast.OAuthAccountReq + 53, // 123: Cast.Cast.OAuthAccountV2:input_type -> Cast.OAuthAccountV2Req + 57, // 124: Cast.Cast.OAuthCodeToToken:input_type -> Cast.OAuthCodeToTokenReq + 59, // 125: Cast.Cast.UpdateOAuth:input_type -> Cast.UpdateOAuthReq + 60, // 126: Cast.Cast.RefreshToken:input_type -> Cast.RefreshTokenReq + 62, // 127: Cast.Cast.PublishMediaInfo:input_type -> Cast.PublishMediaInfoReq + 153, // 128: Cast.Cast.Test:input_type -> google.protobuf.Empty + 64, // 129: Cast.Cast.UpdateVideoScript:input_type -> Cast.UpdateVideoScriptReq + 66, // 130: Cast.Cast.GetVideoScript:input_type -> Cast.GetVideoScriptReq + 68, // 131: Cast.Cast.ListVideoScripts:input_type -> Cast.ListVideoScriptsReq + 71, // 132: Cast.Cast.DeleteVideoScript:input_type -> Cast.DeleteVideoScriptReq + 72, // 133: Cast.Cast.UpdateVideoScriptBatch:input_type -> Cast.UpdateVideoScriptBatchReq + 74, // 134: Cast.Cast.UpdateScriptStatus:input_type -> Cast.UpdateScriptStatusReq + 76, // 135: Cast.Cast.GetLayout:input_type -> Cast.GetLayoutReq + 75, // 136: Cast.Cast.SetLayout:input_type -> Cast.SetLayoutReq + 78, // 137: Cast.Cast.UpdatePrompt:input_type -> Cast.UpdatePromptReq + 79, // 138: Cast.Cast.DeletePrompt:input_type -> Cast.DeletePromptReq + 80, // 139: Cast.Cast.GetPrompt:input_type -> Cast.GetPromptReq + 82, // 140: Cast.Cast.ListPrompts:input_type -> Cast.ListPromptsReq + 85, // 141: Cast.Cast.UpdatePromptBatch:input_type -> Cast.UpdatePromptBatchReq + 88, // 142: Cast.Cast.UpdateArtist:input_type -> Cast.UpdateArtistReq + 90, // 143: Cast.Cast.GetArtist:input_type -> Cast.GetArtistReq + 92, // 144: Cast.Cast.CreateWorkAnalysis:input_type -> Cast.CreateWorkAnalysisReq + 94, // 145: Cast.Cast.UpdateWorkAnalysis:input_type -> Cast.UpdateWorkAnalysisReq + 95, // 146: Cast.Cast.UpdateWorkAnalysisStatus:input_type -> Cast.UpdateWorkAnalysisStatusReq + 106, // 147: Cast.Cast.GetWorkAnalysis:input_type -> Cast.GetWorkAnalysisDetailReq + 107, // 148: Cast.Cast.GetLatestWorkAnalysis:input_type -> Cast.GetLatestWorkAnalysisReq + 110, // 149: Cast.Cast.ListWorkAnalysis:input_type -> Cast.ListWorkAnalysisReq + 113, // 150: Cast.Cast.DeleteWorkAnalysis:input_type -> Cast.DeleteWorkAnalysisReq + 132, // 151: Cast.Cast.UpdateWorkAnalysisApprovalID:input_type -> Cast.UpdateWorkAnalysisApprovalIDReq + 114, // 152: Cast.Cast.ArtistDataList:input_type -> Cast.ArtistDataListReq + 117, // 153: Cast.Cast.MediaDataList:input_type -> Cast.MediaDataListReq + 120, // 154: Cast.Cast.DataOverview:input_type -> Cast.DataOverviewReq + 122, // 155: Cast.Cast.ArtistMetricsSeries:input_type -> Cast.ArtistMetricsSeriesReq + 124, // 156: Cast.Cast.ArtistMetricsDailyWindow:input_type -> Cast.ArtistMetricsDailyWindowReq + 129, // 157: Cast.Cast.TobeConfirmedList:input_type -> Cast.TobeConfirmedListReq + 134, // 158: Cast.Cast.UpsertMediaMetricsDailyBatch:input_type -> Cast.UpsertMediaMetricsDailyBatchReq + 137, // 159: Cast.Cast.UpsertWorkMetricsDailyBatch:input_type -> Cast.UpsertWorkMetricsDailyBatchReq + 139, // 160: Cast.Cast.GetArtistAyrShareInfo:input_type -> Cast.GetArtistAyrShareInfoReq + 142, // 161: Cast.Cast.ListWorkPlatformInfo:input_type -> Cast.ListWorkPlatformInfoReq + 9, // 162: Cast.Cast.MediaUserList:output_type -> Cast.MediaUserListResp + 11, // 163: Cast.Cast.UpdateMediaAccount:output_type -> Cast.UpdateMediaAccountResp + 13, // 164: Cast.Cast.UnbindManager:output_type -> Cast.UnbindManagerResp + 153, // 165: Cast.Cast.BindManager:output_type -> google.protobuf.Empty + 16, // 166: Cast.Cast.UpdateWorkImage:output_type -> Cast.UpdateWorkImageResp + 19, // 167: Cast.Cast.UpdateWorkVideo:output_type -> Cast.UpdateWorkVideoResp + 21, // 168: Cast.Cast.MediaInfo:output_type -> Cast.MediaInfoResp + 23, // 169: Cast.Cast.MediaInfoByPlatform:output_type -> Cast.MediaInfoByPlatformResp + 25, // 170: Cast.Cast.WorkList:output_type -> Cast.WorkListResp + 28, // 171: Cast.Cast.WorkDetail:output_type -> Cast.WorkDetailResp + 153, // 172: Cast.Cast.UpdateStatus:output_type -> google.protobuf.Empty + 31, // 173: Cast.Cast.MediaAccounts:output_type -> Cast.MediaAccountsResp + 33, // 174: Cast.Cast.MediaWorks:output_type -> Cast.MediaWorksResp + 35, // 175: Cast.Cast.Publish:output_type -> Cast.PublishResp + 37, // 176: Cast.Cast.RePublish:output_type -> Cast.RePublishResp + 153, // 177: Cast.Cast.DelWork:output_type -> google.protobuf.Empty + 40, // 178: Cast.Cast.WorkInfo:output_type -> Cast.WorkInfoResp + 42, // 179: Cast.Cast.ArtistInfo:output_type -> Cast.ArtistInfoResp + 44, // 180: Cast.Cast.ImportWorkBatch:output_type -> Cast.ImportWorkBatchResp + 47, // 181: Cast.Cast.UpdateWorkPlatformInfo:output_type -> Cast.UpdateWorkPlatformInfoResp + 153, // 182: Cast.Cast.UpdateWorkPublishLog:output_type -> google.protobuf.Empty + 50, // 183: Cast.Cast.RefreshWorkList:output_type -> Cast.RefreshWorkListResp + 52, // 184: Cast.Cast.OAuthAccount:output_type -> Cast.OAuthAccountResp + 54, // 185: Cast.Cast.OAuthAccountV2:output_type -> Cast.OAuthAccountV2Resp + 58, // 186: Cast.Cast.OAuthCodeToToken:output_type -> Cast.OAuthCodeToTokenResp + 153, // 187: Cast.Cast.UpdateOAuth:output_type -> google.protobuf.Empty + 61, // 188: Cast.Cast.RefreshToken:output_type -> Cast.RefreshTokenResp + 63, // 189: Cast.Cast.PublishMediaInfo:output_type -> Cast.PublishMediaInfoResp + 153, // 190: Cast.Cast.Test:output_type -> google.protobuf.Empty + 65, // 191: Cast.Cast.UpdateVideoScript:output_type -> Cast.UpdateVideoScriptResp + 67, // 192: Cast.Cast.GetVideoScript:output_type -> Cast.GetVideoScriptResp + 70, // 193: Cast.Cast.ListVideoScripts:output_type -> Cast.ListVideoScriptsResp + 153, // 194: Cast.Cast.DeleteVideoScript:output_type -> google.protobuf.Empty + 73, // 195: Cast.Cast.UpdateVideoScriptBatch:output_type -> Cast.UpdateVideoScriptBatchResp + 153, // 196: Cast.Cast.UpdateScriptStatus:output_type -> google.protobuf.Empty + 77, // 197: Cast.Cast.GetLayout:output_type -> Cast.GetLayoutResp + 153, // 198: Cast.Cast.SetLayout:output_type -> google.protobuf.Empty + 153, // 199: Cast.Cast.UpdatePrompt:output_type -> google.protobuf.Empty + 153, // 200: Cast.Cast.DeletePrompt:output_type -> google.protobuf.Empty + 81, // 201: Cast.Cast.GetPrompt:output_type -> Cast.GetPromptResp + 84, // 202: Cast.Cast.ListPrompts:output_type -> Cast.ListPromptsResp + 86, // 203: Cast.Cast.UpdatePromptBatch:output_type -> Cast.UpdatePromptBatchResp + 89, // 204: Cast.Cast.UpdateArtist:output_type -> Cast.UpdateArtistResp + 91, // 205: Cast.Cast.GetArtist:output_type -> Cast.GetArtistResp + 93, // 206: Cast.Cast.CreateWorkAnalysis:output_type -> Cast.CreateWorkAnalysisResp + 153, // 207: Cast.Cast.UpdateWorkAnalysis:output_type -> google.protobuf.Empty + 153, // 208: Cast.Cast.UpdateWorkAnalysisStatus:output_type -> google.protobuf.Empty + 109, // 209: Cast.Cast.GetWorkAnalysis:output_type -> Cast.GetWorkAnalysisDetailResp + 108, // 210: Cast.Cast.GetLatestWorkAnalysis:output_type -> Cast.GetWorkAnalysisResp + 112, // 211: Cast.Cast.ListWorkAnalysis:output_type -> Cast.ListWorkAnalysisResp + 153, // 212: Cast.Cast.DeleteWorkAnalysis:output_type -> google.protobuf.Empty + 153, // 213: Cast.Cast.UpdateWorkAnalysisApprovalID:output_type -> google.protobuf.Empty + 116, // 214: Cast.Cast.ArtistDataList:output_type -> Cast.ArtistDataListResp + 119, // 215: Cast.Cast.MediaDataList:output_type -> Cast.MediaDataListResp + 121, // 216: Cast.Cast.DataOverview:output_type -> Cast.DataOverviewResp + 123, // 217: Cast.Cast.ArtistMetricsSeries:output_type -> Cast.ArtistMetricsSeriesResp + 128, // 218: Cast.Cast.ArtistMetricsDailyWindow:output_type -> Cast.ArtistMetricsDailyWindowResp + 131, // 219: Cast.Cast.TobeConfirmedList:output_type -> Cast.TobeConfirmedListResp + 135, // 220: Cast.Cast.UpsertMediaMetricsDailyBatch:output_type -> Cast.UpsertMediaMetricsDailyBatchResp + 138, // 221: Cast.Cast.UpsertWorkMetricsDailyBatch:output_type -> Cast.UpsertWorkMetricsDailyBatchResp + 141, // 222: Cast.Cast.GetArtistAyrShareInfo:output_type -> Cast.GetArtistAyrShareInfoResp + 144, // 223: Cast.Cast.ListWorkPlatformInfo:output_type -> Cast.ListWorkPlatformInfoResp + 162, // [162:224] is the sub-list for method output_type + 100, // [100:162] is the sub-list for method input_type + 100, // [100:100] is the sub-list for extension type_name + 100, // [100:100] is the sub-list for extension extendee + 0, // [0:100] is the sub-list for field type_name } func init() { file_pb_fiee_cast_proto_init() } @@ -14070,7 +14281,7 @@ func file_pb_fiee_cast_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_pb_fiee_cast_proto_rawDesc), len(file_pb_fiee_cast_proto_rawDesc)), NumEnums: 6, - NumMessages: 144, + NumMessages: 147, NumExtensions: 0, NumServices: 1, }, diff --git a/api/cast/cast.pb.validate.go b/api/cast/cast.pb.validate.go index 2a87bb6..d062716 100644 --- a/api/cast/cast.pb.validate.go +++ b/api/cast/cast.pb.validate.go @@ -35,6 +35,108 @@ var ( _ = sort.Sort ) +// Validate checks the field values on AsInfo with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *AsInfo) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AsInfo with the rules defined in the +// proto definition for this message. If any rules are violated, the result is +// a list of violation errors wrapped in AsInfoMultiError, or nil if none found. +func (m *AsInfo) ValidateAll() error { + return m.validate(true) +} + +func (m *AsInfo) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ProfileKey + + // no validation rules for AsID + + if len(errors) > 0 { + return AsInfoMultiError(errors) + } + + return nil +} + +// AsInfoMultiError is an error wrapping multiple validation errors returned by +// AsInfo.ValidateAll() if the designated constraints aren't met. +type AsInfoMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AsInfoMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AsInfoMultiError) AllErrors() []error { return m } + +// AsInfoValidationError is the validation error returned by AsInfo.Validate if +// the designated constraints aren't met. +type AsInfoValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AsInfoValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AsInfoValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AsInfoValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AsInfoValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AsInfoValidationError) ErrorName() string { return "AsInfoValidationError" } + +// Error satisfies the builtin error interface +func (e AsInfoValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAsInfo.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AsInfoValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AsInfoValidationError{} + // Validate checks the field values on MediaUserListReq with the rules defined // in the proto definition for this message. If any rules are violated, the // first error encountered is returned, or nil if there are no violations. @@ -81,6 +183,8 @@ func (m *MediaUserListReq) validate(all bool) error { // no validation rules for NeedStats + // no validation rules for NeedAsInfo + if len(errors) > 0 { return MediaUserListReqMultiError(errors) } @@ -213,6 +317,35 @@ func (m *MediaUserInfo) validate(all bool) error { // no validation rules for ReleasedPostTotal + if all { + switch v := interface{}(m.GetAsInfo()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, MediaUserInfoValidationError{ + field: "AsInfo", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, MediaUserInfoValidationError{ + field: "AsInfo", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetAsInfo()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return MediaUserInfoValidationError{ + field: "AsInfo", + reason: "embedded message failed validation", + cause: err, + } + } + } + if len(errors) > 0 { return MediaUserInfoMultiError(errors) } @@ -2017,6 +2150,243 @@ var _ interface { ErrorName() string } = MediaInfoRespValidationError{} +// Validate checks the field values on MediaInfoByPlatformReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *MediaInfoByPlatformReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on MediaInfoByPlatformReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// MediaInfoByPlatformReqMultiError, or nil if none found. +func (m *MediaInfoByPlatformReq) ValidateAll() error { + return m.validate(true) +} + +func (m *MediaInfoByPlatformReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ArtistUuid + + // no validation rules for PlatformID + + if len(errors) > 0 { + return MediaInfoByPlatformReqMultiError(errors) + } + + return nil +} + +// MediaInfoByPlatformReqMultiError is an error wrapping multiple validation +// errors returned by MediaInfoByPlatformReq.ValidateAll() if the designated +// constraints aren't met. +type MediaInfoByPlatformReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MediaInfoByPlatformReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m MediaInfoByPlatformReqMultiError) AllErrors() []error { return m } + +// MediaInfoByPlatformReqValidationError is the validation error returned by +// MediaInfoByPlatformReq.Validate if the designated constraints aren't met. +type MediaInfoByPlatformReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MediaInfoByPlatformReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MediaInfoByPlatformReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MediaInfoByPlatformReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MediaInfoByPlatformReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MediaInfoByPlatformReqValidationError) ErrorName() string { + return "MediaInfoByPlatformReqValidationError" +} + +// Error satisfies the builtin error interface +func (e MediaInfoByPlatformReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMediaInfoByPlatformReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MediaInfoByPlatformReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MediaInfoByPlatformReqValidationError{} + +// Validate checks the field values on MediaInfoByPlatformResp with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *MediaInfoByPlatformResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on MediaInfoByPlatformResp with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// MediaInfoByPlatformRespMultiError, or nil if none found. +func (m *MediaInfoByPlatformResp) ValidateAll() error { + return m.validate(true) +} + +func (m *MediaInfoByPlatformResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetInfo()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, MediaInfoByPlatformRespValidationError{ + field: "Info", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, MediaInfoByPlatformRespValidationError{ + field: "Info", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetInfo()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return MediaInfoByPlatformRespValidationError{ + field: "Info", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return MediaInfoByPlatformRespMultiError(errors) + } + + return nil +} + +// MediaInfoByPlatformRespMultiError is an error wrapping multiple validation +// errors returned by MediaInfoByPlatformResp.ValidateAll() if the designated +// constraints aren't met. +type MediaInfoByPlatformRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MediaInfoByPlatformRespMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m MediaInfoByPlatformRespMultiError) AllErrors() []error { return m } + +// MediaInfoByPlatformRespValidationError is the validation error returned by +// MediaInfoByPlatformResp.Validate if the designated constraints aren't met. +type MediaInfoByPlatformRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MediaInfoByPlatformRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MediaInfoByPlatformRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MediaInfoByPlatformRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MediaInfoByPlatformRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MediaInfoByPlatformRespValidationError) ErrorName() string { + return "MediaInfoByPlatformRespValidationError" +} + +// Error satisfies the builtin error interface +func (e MediaInfoByPlatformRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMediaInfoByPlatformResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MediaInfoByPlatformRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MediaInfoByPlatformRespValidationError{} + // Validate checks the field values on WorkListReq with the rules defined in // the proto definition for this message. If any rules are violated, the first // error encountered is returned, or nil if there are no violations. @@ -4304,6 +4674,10 @@ func (m *ArtistInfoResp) validate(all bool) error { // no validation rules for DMEffectiveCount + // no validation rules for ProfileKey + + // no validation rules for SubNum + if len(errors) > 0 { return ArtistInfoRespMultiError(errors) } diff --git a/api/cast/cast_triple.pb.go b/api/cast/cast_triple.pb.go index 40e6f77..ba348a2 100644 --- a/api/cast/cast_triple.pb.go +++ b/api/cast/cast_triple.pb.go @@ -36,6 +36,7 @@ type CastClient interface { UpdateWorkImage(ctx context.Context, in *UpdateWorkImageReq, opts ...grpc_go.CallOption) (*UpdateWorkImageResp, common.ErrorWithAttachment) UpdateWorkVideo(ctx context.Context, in *UpdateWorkVideoReq, opts ...grpc_go.CallOption) (*UpdateWorkVideoResp, common.ErrorWithAttachment) MediaInfo(ctx context.Context, in *MediaInfoReq, opts ...grpc_go.CallOption) (*MediaInfoResp, common.ErrorWithAttachment) + MediaInfoByPlatform(ctx context.Context, in *MediaInfoByPlatformReq, opts ...grpc_go.CallOption) (*MediaInfoByPlatformResp, common.ErrorWithAttachment) WorkList(ctx context.Context, in *WorkListReq, opts ...grpc_go.CallOption) (*WorkListResp, common.ErrorWithAttachment) WorkDetail(ctx context.Context, in *WorkDetailReq, opts ...grpc_go.CallOption) (*WorkDetailResp, common.ErrorWithAttachment) UpdateStatus(ctx context.Context, in *UpdateStatusReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) @@ -114,6 +115,7 @@ type CastClientImpl struct { UpdateWorkImage func(ctx context.Context, in *UpdateWorkImageReq) (*UpdateWorkImageResp, error) UpdateWorkVideo func(ctx context.Context, in *UpdateWorkVideoReq) (*UpdateWorkVideoResp, error) MediaInfo func(ctx context.Context, in *MediaInfoReq) (*MediaInfoResp, error) + MediaInfoByPlatform func(ctx context.Context, in *MediaInfoByPlatformReq) (*MediaInfoByPlatformResp, error) WorkList func(ctx context.Context, in *WorkListReq) (*WorkListResp, error) WorkDetail func(ctx context.Context, in *WorkDetailReq) (*WorkDetailResp, error) UpdateStatus func(ctx context.Context, in *UpdateStatusReq) (*emptypb.Empty, error) @@ -224,6 +226,12 @@ func (c *castClient) MediaInfo(ctx context.Context, in *MediaInfoReq, opts ...gr return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/MediaInfo", in, out) } +func (c *castClient) MediaInfoByPlatform(ctx context.Context, in *MediaInfoByPlatformReq, opts ...grpc_go.CallOption) (*MediaInfoByPlatformResp, common.ErrorWithAttachment) { + out := new(MediaInfoByPlatformResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/MediaInfoByPlatform", in, out) +} + func (c *castClient) WorkList(ctx context.Context, in *WorkListReq, opts ...grpc_go.CallOption) (*WorkListResp, common.ErrorWithAttachment) { out := new(WorkListResp) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -559,6 +567,7 @@ type CastServer interface { UpdateWorkImage(context.Context, *UpdateWorkImageReq) (*UpdateWorkImageResp, error) UpdateWorkVideo(context.Context, *UpdateWorkVideoReq) (*UpdateWorkVideoResp, error) MediaInfo(context.Context, *MediaInfoReq) (*MediaInfoResp, error) + MediaInfoByPlatform(context.Context, *MediaInfoByPlatformReq) (*MediaInfoByPlatformResp, error) WorkList(context.Context, *WorkListReq) (*WorkListResp, error) WorkDetail(context.Context, *WorkDetailReq) (*WorkDetailResp, error) UpdateStatus(context.Context, *UpdateStatusReq) (*emptypb.Empty, error) @@ -652,6 +661,9 @@ func (UnimplementedCastServer) UpdateWorkVideo(context.Context, *UpdateWorkVideo func (UnimplementedCastServer) MediaInfo(context.Context, *MediaInfoReq) (*MediaInfoResp, error) { return nil, status.Errorf(codes.Unimplemented, "method MediaInfo not implemented") } +func (UnimplementedCastServer) MediaInfoByPlatform(context.Context, *MediaInfoByPlatformReq) (*MediaInfoByPlatformResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method MediaInfoByPlatform not implemented") +} func (UnimplementedCastServer) WorkList(context.Context, *WorkListReq) (*WorkListResp, error) { return nil, status.Errorf(codes.Unimplemented, "method WorkList not implemented") } @@ -1045,6 +1057,35 @@ func _Cast_MediaInfo_Handler(srv interface{}, ctx context.Context, dec func(inte return interceptor(ctx, in, info, handler) } +func _Cast_MediaInfoByPlatform_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(MediaInfoByPlatformReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("MediaInfoByPlatform", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + func _Cast_WorkList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(WorkListReq) if err := dec(in); err != nil { @@ -2646,6 +2687,10 @@ var Cast_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "MediaInfo", Handler: _Cast_MediaInfo_Handler, }, + { + MethodName: "MediaInfoByPlatform", + Handler: _Cast_MediaInfoByPlatform_Handler, + }, { MethodName: "WorkList", Handler: _Cast_WorkList_Handler, diff --git a/pkg/model/cast/ayrshare.go b/pkg/model/cast/ayrshare.go index 4e6c8aa..af4a77e 100644 --- a/pkg/model/cast/ayrshare.go +++ b/pkg/model/cast/ayrshare.go @@ -1 +1,28 @@ package cast + +type SendMessageReq struct { + MediaUserID string `json:"mediaUserId"` + Message string `json:"message"` +} + +type PostCommentReq struct { + PublishMediaID string `json:"publishMediaID"` + Comment string `json:"comment"` + PlatformID int `json:"platformID"` + ArtistUuid string `json:"artistUuid"` +} +type GetCommentReq struct { + ArtistUuid string `json:"artistUuid"` + PublishMediaID string `json:"publishMediaID"` +} +type DeleteCommentReq struct { + ArtistUuid string `json:"artistUuid"` + CommentId string `json:"commentId"` + PlatformID int `json:"platformID"` +} +type ReplyCommentReq struct { + ArtistUuid string `json:"artistUuid"` + CommentId string `json:"commentId"` + Comment string `json:"comment"` + PlatformID int `json:"platformID"` +} diff --git a/pkg/router/media.go b/pkg/router/media.go index dc5b366..f073583 100644 --- a/pkg/router/media.go +++ b/pkg/router/media.go @@ -89,4 +89,13 @@ func MediaRouter(r *gin.RouterGroup) { { social.GET("tiktok-redirect", serviceCast.TikTokRedirect) } + interact := auth.Group("interact") + { + interact.POST("send-message", serviceCast.SendMessage) + interact.POST("get-message", serviceCast.GetMessage) + interact.POST("post-comment", serviceCast.PostComment) + interact.POST("get-comment", serviceCast.GetComment) + interact.POST("delete-comment", serviceCast.DeleteComment) + interact.POST("replay-comment", serviceCast.ReplyComment) + } } diff --git a/pkg/service/cast/ayrshare.go b/pkg/service/cast/ayrshare.go index 1f76291..35e5602 100644 --- a/pkg/service/cast/ayrshare.go +++ b/pkg/service/cast/ayrshare.go @@ -6,6 +6,10 @@ import ( "encoding/json" "errors" "fmt" + "fonchain-fiee/api/aryshare" + "fonchain-fiee/api/cast" + modelCast "fonchain-fiee/pkg/model/cast" + "fonchain-fiee/pkg/service" "fonchain-fiee/pkg/utils" "io" "mime/multipart" @@ -14,6 +18,7 @@ import ( "path/filepath" "time" + "github.com/gin-gonic/gin" "go.uber.org/zap" ) @@ -313,3 +318,210 @@ func VerifyMediaURL(ctx context.Context, mediaURL string) (bool, error) { } return true, nil } + +func SendMessage(ctx *gin.Context) { + var req modelCast.SendMessageReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + mediaUserInfo, err := GetMediaInfo(req.MediaUserID) + if err != nil { + service.Error(ctx, err) + return + } + var platformName = modelCast.PlatformNameKv[mediaUserInfo.PlatformID] + if platformName != "facebook" && platformName != "instagram" && platformName != "twitter" { + service.Error(ctx, errors.New("不支持的媒体")) + return + } + sendResp, err := service.AyrshareProvider.SendMessage(context.Background(), &aryshare.SendMessageRequest{ + Platform: platformName, + RecipientId: mediaUserInfo.AsInfo.AsID, + Message: req.Message, + MediaUrls: []string{}, + ProfileKey: mediaUserInfo.AsInfo.ProfileKey, + }) + if err != nil { + zap.L().Error("发送消息失败", zap.Error(err), zap.Any("mediaInfo", mediaUserInfo)) + service.Error(ctx, errors.New("发送消息异常")) + return + } + if sendResp.Status != "success" { + zap.L().Error("发送消息失败", zap.Any("sendResp", sendResp)) + service.Error(ctx, errors.New("发送消息失败")) + return + } + service.Success(ctx, sendResp) + return +} + +func GetMessage(ctx *gin.Context) { + var req modelCast.SendMessageReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + mediaUserInfo, err := GetMediaInfo(req.MediaUserID) + if err != nil { + service.Error(ctx, err) + return + } + var platformName = modelCast.PlatformNameKv[mediaUserInfo.PlatformID] + messageResp, err := service.AyrshareProvider.GetMessages(context.Background(), &aryshare.GetMessagesRequest{ + Platform: platformName, + Status: "active", // active 主动 archived 已存档 + ConversationId: "", + ConversationsOnly: false, + ProfileKey: mediaUserInfo.AsInfo.ProfileKey, + }) + if err != nil { + zap.L().Error("获取消息失败", zap.Error(err), zap.Any("mediaInfo", mediaUserInfo)) + service.Error(ctx, errors.New("获取消息异常")) + return + } + if messageResp.Status != "success" { + zap.L().Error("获取消息失败", zap.Any("messageResp", messageResp)) + service.Error(ctx, errors.New("获取消息失败")) + return + } + service.Success(ctx, messageResp) + return +} + +// GetMediaInfo 根据自媒体ID查询信息 +func GetMediaInfo(mediaUserID string) (*cast.MediaUserInfo, error) { + userListResp, err := service.CastProvider.MediaUserList(context.Background(), &cast.MediaUserListReq{ + MediaUserID: mediaUserID, + NeedAsInfo: true, + PageSize: 1, + }) + if err != nil { + return nil, err + } + if userListResp == nil || len(userListResp.Data) == 0 { + return nil, errors.New("未找到该自媒体") + } + return userListResp.Data[0], nil +} + +func PostComment(ctx *gin.Context) { + var req modelCast.PostCommentReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + artistInfo, err := service.CastProvider.ArtistInfo(context.Background(), &cast.ArtistInfoReq{ + ArtistUuid: req.ArtistUuid, + }) + if err != nil { + service.Error(ctx, err) + return + } + + commentResp, err := service.AyrshareProvider.PostComment(context.Background(), &aryshare.PostCommentRequest{ + Id: req.PublishMediaID, + Comment: req.Comment, + Platforms: []string{modelCast.PlatformNameKv[uint32(req.PlatformID)]}, + SearchPlatformId: true, + MediaUrls: nil, + ProfileKey: artistInfo.ProfileKey, + }) + if err != nil { + zap.L().Error("发布评论异常", zap.Error(err), zap.Any("artistInfo", artistInfo)) + service.Error(ctx, errors.New("发布评论异常")) + return + } + if commentResp.Status != "success" { + service.Error(ctx, errors.New("发布评论失败")) + return + } + service.Success(ctx, commentResp) + return +} + +func GetComment(ctx *gin.Context) { + var req modelCast.GetCommentReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + artistInfo, err := service.CastProvider.ArtistInfo(context.Background(), &cast.ArtistInfoReq{ + ArtistUuid: req.ArtistUuid, + }) + if err != nil { + service.Error(ctx, err) + return + } + commentResp, err := service.AyrshareProvider.GetComment(context.Background(), &aryshare.GetCommentRequest{ + Id: req.PublishMediaID, + ProfileKey: artistInfo.ProfileKey, + }) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, commentResp) + return +} + +func DeleteComment(ctx *gin.Context) { + var req modelCast.DeleteCommentReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + artistInfo, err := service.CastProvider.ArtistInfo(context.Background(), &cast.ArtistInfoReq{ + ArtistUuid: req.ArtistUuid, + }) + if err != nil { + service.Error(ctx, err) + return + } + commentResp, err := service.AyrshareProvider.DeleteComment(context.Background(), &aryshare.DeleteCommentRequest{ + Id: req.CommentId, + Platforms: nil, + Platform: modelCast.PlatformNameKv[uint32(req.PlatformID)], + SearchPlatformId: true, + ProfileKey: artistInfo.ProfileKey, + }) + if err != nil { + zap.L().Error("删除评论异常", zap.Error(err), zap.Any("artistInfo", artistInfo)) + service.Error(ctx, errors.New("删除评论异常")) + return + } + if commentResp.Status != "success" { + service.Error(ctx, errors.New("删除评论失败")) + return + } + service.Success(ctx, commentResp) + return +} + +func ReplyComment(ctx *gin.Context) { + var req modelCast.ReplyCommentReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + artistInfo, err := service.CastProvider.ArtistInfo(context.Background(), &cast.ArtistInfoReq{ + ArtistUuid: req.ArtistUuid, + }) + if err != nil { + service.Error(ctx, err) + return + } + commentResp, err := service.AyrshareProvider.ReplyComment(context.Background(), &aryshare.ReplyCommentRequest{ + Id: req.CommentId, + Comment: req.Comment, + Platforms: []string{modelCast.PlatformNameKv[uint32(req.PlatformID)]}, + ProfileKey: artistInfo.ProfileKey, + }) + if err != nil { + zap.L().Error("回复评论异常", zap.Error(err), zap.Any("artistInfo", artistInfo)) + service.Error(ctx, errors.New("回复评论异常")) + return + } + service.Success(ctx, commentResp) + return +}