diff --git a/internal/controller/aryshare_profile.go b/internal/controller/aryshare_profile.go index b6ee85f..22908cb 100644 --- a/internal/controller/aryshare_profile.go +++ b/internal/controller/aryshare_profile.go @@ -184,3 +184,26 @@ func (a *AyrshareProvider) GenerateJWT(_ context.Context, req *aryshare.Generate return } + +// UnlinkSocialNetwork 解除社交网络连接 +func (a *AyrshareProvider) UnlinkSocialNetwork(_ context.Context, req *aryshare.UnlinkSocialNetworkRequest) (res *aryshare.UnlinkSocialNetworkResponse, err error) { + res = new(aryshare.UnlinkSocialNetworkResponse) + + // 将 proto 请求转换为 DTO + dtoReq := &dto.UnlinkSocialNetworkRequest{ + Platform: req.Platform, + } + + // 调用 logic 层 + dtoRes, err := a.aryshareProfileLogic.UnlinkSocialNetwork(dtoReq, req.ProfileKey) + if err != nil { + return nil, err + } + + // 将 DTO 响应转换为 proto 响应 + res.Status = dtoRes.Status + res.Platform = dtoRes.Platform + res.RefId = dtoRes.RefId + + return +} diff --git a/internal/dto/aryshare_profile.go b/internal/dto/aryshare_profile.go index 161a300..73d585e 100644 --- a/internal/dto/aryshare_profile.go +++ b/internal/dto/aryshare_profile.go @@ -85,3 +85,15 @@ type GenerateJWTResponse struct { EmailSent bool `json:"emailSent"` ExpiresIn string `json:"expiresIn"` } + +// UnlinkSocialNetworkRequest 解除社交网络连接请求 +type UnlinkSocialNetworkRequest struct { + Platform string `json:"platform"` +} + +// UnlinkSocialNetworkResponse 解除社交网络连接响应 +type UnlinkSocialNetworkResponse struct { + Status string `json:"status"` + Platform string `json:"platform"` + RefId string `json:"refId"` +} \ No newline at end of file diff --git a/internal/logic/aryshare_profile.go b/internal/logic/aryshare_profile.go index ff9aeae..92ed74b 100644 --- a/internal/logic/aryshare_profile.go +++ b/internal/logic/aryshare_profile.go @@ -19,6 +19,7 @@ type IAryshareProfile interface { CreateProfile(req *dto.CreateProfileRequest) (res *dto.CreateProfileResponse, err error) GetProfiles(req *dto.GetProfilesRequest) (res *dto.GetProfilesResponse, err error) GenerateJWT(req *dto.GenerateJWTRequest) (res *dto.GenerateJWTResponse, err error) + UnlinkSocialNetwork(req *dto.UnlinkSocialNetworkRequest, profileKey string) (res *dto.UnlinkSocialNetworkResponse, err error) } type AyrshareProfile struct { @@ -209,3 +210,57 @@ func (a *AyrshareProfile) GenerateJWT(req *dto.GenerateJWTRequest) (res *dto.Gen return } + +// UnlinkSocialNetwork 解除社交网络连接 +func (a *AyrshareProfile) UnlinkSocialNetwork(req *dto.UnlinkSocialNetworkRequest, profileKey string) (res *dto.UnlinkSocialNetworkResponse, err error) { + errCommon.NoReturnInfo(req, "解除社交网络连接 参数信息: ") + + res = new(dto.UnlinkSocialNetworkResponse) + + // 验证必填参数 + if req.Platform == "" { + return nil, errCommon.ReturnError(fmt.Errorf(msg.ErrPlatformEmpty), msg.ErrPlatformEmpty, "解除社交网络连接 失败: ") + } + + // 构建请求URL + url := fmt.Sprintf("%s/api/profiles/social", app.ModuleClients.AryshareClient.Config.Endpoint) + + // 准备请求体 + reqBody, err := json.Marshal(req) + if err != nil { + return nil, errCommon.ReturnError(err, msg.ErrorJSONMarshal, "解除社交网络连接失败: ") + } + + // 准备请求头 + headers := make(map[string]string) + headers["Authorization"] = fmt.Sprintf("Bearer %s", app.ModuleClients.AryshareClient.Config.ApiKey) + headers["Content-Type"] = "application/json" + + // 如果提供了 profileKey,添加到请求头 + if profileKey != "" { + headers["Profile-Key"] = profileKey + } + + // 调用 HTTP DELETE 方法 + statusCode, result, err := utils.DeleteWithHeaders(url, reqBody, headers) + if err != nil { + return nil, errCommon.ReturnError(err, "解除社交网络连接失败", "解除社交网络连接失败: ") + } + + // 检查状态码 + if statusCode != http.StatusOK { + return nil, errCommon.ReturnError(fmt.Errorf("接口返回状态码: %d, 响应结果: %s", statusCode, result), "解除社交网络连接失败", "解除社交网络连接 失败: ") + } + + // 解析响应 + var unlinkResp dto.UnlinkSocialNetworkResponse + if err := json.Unmarshal([]byte(result), &unlinkResp); err != nil { + return nil, errCommon.ReturnError(err, msg.ErrorJSONParse, "解除社交网络连接失败: ") + } + + errCommon.NoReturnInfo(&unlinkResp, "解除社交网络连接 成功: ") + + res = &unlinkResp + + return +} diff --git a/pb/aryshare/ayrshare.pb.go b/pb/aryshare/ayrshare.pb.go index a985148..ce925c8 100644 --- a/pb/aryshare/ayrshare.pb.go +++ b/pb/aryshare/ayrshare.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 -// protoc v3.21.1 +// protoc-gen-go v1.36.11 +// protoc v6.32.0--rc2 // source: pb/ayrshare.proto package aryshare @@ -13,6 +13,7 @@ import ( _ "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -24,22 +25,19 @@ const ( // Instagram 用户标签(带坐标) type UserTag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username"` + X float64 `protobuf:"fixed64,2,opt,name=x,proto3" json:"x"` // Required for images, cannot be used with Reels + Y float64 `protobuf:"fixed64,3,opt,name=y,proto3" json:"y"` // Required for images, cannot be used with Reels unknownFields protoimpl.UnknownFields - - Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username"` - X float64 `protobuf:"fixed64,2,opt,name=x,proto3" json:"x"` // Required for images, cannot be used with Reels - Y float64 `protobuf:"fixed64,3,opt,name=y,proto3" json:"y"` // Required for images, cannot be used with Reels + sizeCache protoimpl.SizeCache } func (x *UserTag) Reset() { *x = UserTag{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UserTag) String() string { @@ -50,7 +48,7 @@ func (*UserTag) ProtoMessage() {} func (x *UserTag) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -88,30 +86,27 @@ func (x *UserTag) GetY() float64 { // Instagram 特定发布选项 type InstagramOptions struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ShareReelsFeed bool `protobuf:"varint,1,opt,name=shareReelsFeed,proto3" json:"shareReelsFeed"` // Whether Reel can appear in both Feed and Reels tabs - AudioName string `protobuf:"bytes,2,opt,name=audioName,proto3" json:"audioName"` // Name of the audio music for Reels - ThumbNail string `protobuf:"bytes,3,opt,name=thumbNail,proto3" json:"thumbNail"` // URL of the Reel cover image (thumbnail) - ThumbNailOffset int32 `protobuf:"varint,4,opt,name=thumbNailOffset,proto3" json:"thumbNailOffset"` // Offset in milliseconds of the thumbnail frame - Stories bool `protobuf:"varint,5,opt,name=stories,proto3" json:"stories"` // Whether to post as Instagram Story - AltText []string `protobuf:"bytes,6,rep,name=altText,proto3" json:"altText"` // Array of alternative text for images (up to 1000 chars per image) - LocationId string `protobuf:"bytes,7,opt,name=locationId,proto3" json:"locationId"` // Facebook Page ID or Page name - UserTags []*UserTag `protobuf:"bytes,8,rep,name=userTags,proto3" json:"userTags"` // Array of user tags with username and coordinates - Collaborators []string `protobuf:"bytes,9,rep,name=collaborators,proto3" json:"collaborators"` // Array of Instagram usernames (up to 3) - AutoResize bool `protobuf:"varint,10,opt,name=autoResize,proto3" json:"autoResize"` // Auto resize images to 1080x1080px (Max Pack required) - DisableComments bool `protobuf:"varint,11,opt,name=disableComments,proto3" json:"disableComments"` // Disable comments on the published post + state protoimpl.MessageState `protogen:"open.v1"` + ShareReelsFeed bool `protobuf:"varint,1,opt,name=shareReelsFeed,proto3" json:"shareReelsFeed"` // Whether Reel can appear in both Feed and Reels tabs + AudioName string `protobuf:"bytes,2,opt,name=audioName,proto3" json:"audioName"` // Name of the audio music for Reels + ThumbNail string `protobuf:"bytes,3,opt,name=thumbNail,proto3" json:"thumbNail"` // URL of the Reel cover image (thumbnail) + ThumbNailOffset int32 `protobuf:"varint,4,opt,name=thumbNailOffset,proto3" json:"thumbNailOffset"` // Offset in milliseconds of the thumbnail frame + Stories bool `protobuf:"varint,5,opt,name=stories,proto3" json:"stories"` // Whether to post as Instagram Story + AltText []string `protobuf:"bytes,6,rep,name=altText,proto3" json:"altText"` // Array of alternative text for images (up to 1000 chars per image) + LocationId string `protobuf:"bytes,7,opt,name=locationId,proto3" json:"locationId"` // Facebook Page ID or Page name + UserTags []*UserTag `protobuf:"bytes,8,rep,name=userTags,proto3" json:"userTags"` // Array of user tags with username and coordinates + Collaborators []string `protobuf:"bytes,9,rep,name=collaborators,proto3" json:"collaborators"` // Array of Instagram usernames (up to 3) + AutoResize bool `protobuf:"varint,10,opt,name=autoResize,proto3" json:"autoResize"` // Auto resize images to 1080x1080px (Max Pack required) + DisableComments bool `protobuf:"varint,11,opt,name=disableComments,proto3" json:"disableComments"` // Disable comments on the published post + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *InstagramOptions) Reset() { *x = InstagramOptions{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InstagramOptions) String() string { @@ -122,7 +117,7 @@ func (*InstagramOptions) ProtoMessage() {} func (x *InstagramOptions) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -216,32 +211,29 @@ func (x *InstagramOptions) GetDisableComments() bool { // TikTok 特定发布选项 type TikTokOptions struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AutoAddMusic bool `protobuf:"varint,1,opt,name=autoAddMusic,proto3" json:"autoAddMusic"` // Whether to automatically add recommended music (image only) - DisableComments bool `protobuf:"varint,2,opt,name=disableComments,proto3" json:"disableComments"` // Whether to disable comments on the published post - DisableDuet bool `protobuf:"varint,3,opt,name=disableDuet,proto3" json:"disableDuet"` // Disable duets on the published video (video only) - DisableStitch bool `protobuf:"varint,4,opt,name=disableStitch,proto3" json:"disableStitch"` // Disable stitch on the published video (video only) - Draft bool `protobuf:"varint,5,opt,name=draft,proto3" json:"draft"` // Whether to create a draft post - IsAIGenerated bool `protobuf:"varint,6,opt,name=isAIGenerated,proto3" json:"isAIGenerated"` // Whether to enable AI-generated content toggle (video only) - IsBrandedContent bool `protobuf:"varint,7,opt,name=isBrandedContent,proto3" json:"isBrandedContent"` // Whether to enable Branded Content toggle - IsBrandOrganic bool `protobuf:"varint,8,opt,name=isBrandOrganic,proto3" json:"isBrandOrganic"` // Whether to enable Brand Organic Content toggle - ImageCoverIndex int32 `protobuf:"varint,9,opt,name=imageCoverIndex,proto3" json:"imageCoverIndex"` // Index of mediaUrls to be used as cover (image only, default 0) - Title string `protobuf:"bytes,10,opt,name=title,proto3" json:"title"` // Title of the post (image only) - ThumbNailOffset int32 `protobuf:"varint,11,opt,name=thumbNailOffset,proto3" json:"thumbNailOffset"` // Frame to use for video cover in milliseconds (video only) - ThumbNail string `protobuf:"bytes,12,opt,name=thumbNail,proto3" json:"thumbNail"` // URL of thumbnail image for video (video only) - Visibility string `protobuf:"bytes,13,opt,name=visibility,proto3" json:"visibility"` // How the post is shared: "public", "private", "followers", "friends" (image only, default "public") + state protoimpl.MessageState `protogen:"open.v1"` + AutoAddMusic bool `protobuf:"varint,1,opt,name=autoAddMusic,proto3" json:"autoAddMusic"` // Whether to automatically add recommended music (image only) + DisableComments bool `protobuf:"varint,2,opt,name=disableComments,proto3" json:"disableComments"` // Whether to disable comments on the published post + DisableDuet bool `protobuf:"varint,3,opt,name=disableDuet,proto3" json:"disableDuet"` // Disable duets on the published video (video only) + DisableStitch bool `protobuf:"varint,4,opt,name=disableStitch,proto3" json:"disableStitch"` // Disable stitch on the published video (video only) + Draft bool `protobuf:"varint,5,opt,name=draft,proto3" json:"draft"` // Whether to create a draft post + IsAIGenerated bool `protobuf:"varint,6,opt,name=isAIGenerated,proto3" json:"isAIGenerated"` // Whether to enable AI-generated content toggle (video only) + IsBrandedContent bool `protobuf:"varint,7,opt,name=isBrandedContent,proto3" json:"isBrandedContent"` // Whether to enable Branded Content toggle + IsBrandOrganic bool `protobuf:"varint,8,opt,name=isBrandOrganic,proto3" json:"isBrandOrganic"` // Whether to enable Brand Organic Content toggle + ImageCoverIndex int32 `protobuf:"varint,9,opt,name=imageCoverIndex,proto3" json:"imageCoverIndex"` // Index of mediaUrls to be used as cover (image only, default 0) + Title string `protobuf:"bytes,10,opt,name=title,proto3" json:"title"` // Title of the post (image only) + ThumbNailOffset int32 `protobuf:"varint,11,opt,name=thumbNailOffset,proto3" json:"thumbNailOffset"` // Frame to use for video cover in milliseconds (video only) + ThumbNail string `protobuf:"bytes,12,opt,name=thumbNail,proto3" json:"thumbNail"` // URL of thumbnail image for video (video only) + Visibility string `protobuf:"bytes,13,opt,name=visibility,proto3" json:"visibility"` // How the post is shared: "public", "private", "followers", "friends" (image only, default "public") + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TikTokOptions) Reset() { *x = TikTokOptions{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TikTokOptions) String() string { @@ -252,7 +244,7 @@ func (*TikTokOptions) ProtoMessage() {} func (x *TikTokOptions) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -360,33 +352,30 @@ func (x *TikTokOptions) GetVisibility() string { // YouTube 特定发布选项 type YouTubeOptions struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"` // Video title (required for YouTube, max 100 characters) - Visibility string `protobuf:"bytes,2,opt,name=visibility,proto3" json:"visibility"` // Visibility: "public", "unlisted", or "private" (default: "private") - Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags"` // Video tags (400 chars total, 2+ chars each) - CategoryId int32 `protobuf:"varint,4,opt,name=categoryId,proto3" json:"categoryId"` // YouTube category ID (e.g., 24 = Entertainment) - MadeForKids bool `protobuf:"varint,5,opt,name=madeForKids,proto3" json:"madeForKids"` // Whether the video is made for kids (default: false) - ThumbNail string `protobuf:"bytes,6,opt,name=thumbNail,proto3" json:"thumbNail"` // URL of custom thumbnail image (JPEG/PNG under 2MB, must end in png/jpg/jpeg) - PlaylistId string `protobuf:"bytes,7,opt,name=playlistId,proto3" json:"playlistId"` // Playlist ID to add the video to - NotifySubscribers bool `protobuf:"varint,8,opt,name=notifySubscribers,proto3" json:"notifySubscribers"` // Whether to notify subscribers (default: true) - Shorts bool `protobuf:"varint,9,opt,name=shorts,proto3" json:"shorts"` // Post as YouTube Short (max 3 minutes, adds #shorts) - ContainsSyntheticMedia bool `protobuf:"varint,10,opt,name=containsSyntheticMedia,proto3" json:"containsSyntheticMedia"` // Disclose that a video contains realistic Altered or Synthetic (A/S) content - PublishAt string `protobuf:"bytes,11,opt,name=publishAt,proto3" json:"publishAt"` // UTC publish time (YouTube controlled publishing) - SubTitleUrl string `protobuf:"bytes,12,opt,name=subTitleUrl,proto3" json:"subTitleUrl"` // URL to SRT or SBV subtitle file (must start with https:// and end in .srt or .sbv, under 100 MB) - SubTitleLanguage string `protobuf:"bytes,13,opt,name=subTitleLanguage,proto3" json:"subTitleLanguage"` // Language code of subtitles (default: "en") - SubTitleName string `protobuf:"bytes,14,opt,name=subTitleName,proto3" json:"subTitleName"` // Name of the caption track (max 150 chars, default: "English") + state protoimpl.MessageState `protogen:"open.v1"` + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"` // Video title (required for YouTube, max 100 characters) + Visibility string `protobuf:"bytes,2,opt,name=visibility,proto3" json:"visibility"` // Visibility: "public", "unlisted", or "private" (default: "private") + Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags"` // Video tags (400 chars total, 2+ chars each) + CategoryId int32 `protobuf:"varint,4,opt,name=categoryId,proto3" json:"categoryId"` // YouTube category ID (e.g., 24 = Entertainment) + MadeForKids bool `protobuf:"varint,5,opt,name=madeForKids,proto3" json:"madeForKids"` // Whether the video is made for kids (default: false) + ThumbNail string `protobuf:"bytes,6,opt,name=thumbNail,proto3" json:"thumbNail"` // URL of custom thumbnail image (JPEG/PNG under 2MB, must end in png/jpg/jpeg) + PlaylistId string `protobuf:"bytes,7,opt,name=playlistId,proto3" json:"playlistId"` // Playlist ID to add the video to + NotifySubscribers bool `protobuf:"varint,8,opt,name=notifySubscribers,proto3" json:"notifySubscribers"` // Whether to notify subscribers (default: true) + Shorts bool `protobuf:"varint,9,opt,name=shorts,proto3" json:"shorts"` // Post as YouTube Short (max 3 minutes, adds #shorts) + ContainsSyntheticMedia bool `protobuf:"varint,10,opt,name=containsSyntheticMedia,proto3" json:"containsSyntheticMedia"` // Disclose that a video contains realistic Altered or Synthetic (A/S) content + PublishAt string `protobuf:"bytes,11,opt,name=publishAt,proto3" json:"publishAt"` // UTC publish time (YouTube controlled publishing) + SubTitleUrl string `protobuf:"bytes,12,opt,name=subTitleUrl,proto3" json:"subTitleUrl"` // URL to SRT or SBV subtitle file (must start with https:// and end in .srt or .sbv, under 100 MB) + SubTitleLanguage string `protobuf:"bytes,13,opt,name=subTitleLanguage,proto3" json:"subTitleLanguage"` // Language code of subtitles (default: "en") + SubTitleName string `protobuf:"bytes,14,opt,name=subTitleName,proto3" json:"subTitleName"` // Name of the caption track (max 150 chars, default: "English") + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *YouTubeOptions) Reset() { *x = YouTubeOptions{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *YouTubeOptions) String() string { @@ -397,7 +386,7 @@ func (*YouTubeOptions) ProtoMessage() {} func (x *YouTubeOptions) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -512,20 +501,17 @@ func (x *YouTubeOptions) GetSubTitleName() string { // Bluesky 特定发布选项 type BlueskyOptions struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + AltText []string `protobuf:"bytes,6,rep,name=altText,proto3" json:"altText"` // Array of alternative text for images or videos (accessibility feature for screen readers) unknownFields protoimpl.UnknownFields - - AltText []string `protobuf:"bytes,6,rep,name=altText,proto3" json:"altText"` // Array of alternative text for images or videos (accessibility feature for screen readers) + sizeCache protoimpl.SizeCache } func (x *BlueskyOptions) Reset() { *x = BlueskyOptions{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BlueskyOptions) String() string { @@ -536,7 +522,7 @@ func (*BlueskyOptions) ProtoMessage() {} func (x *BlueskyOptions) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -560,32 +546,29 @@ func (x *BlueskyOptions) GetAltText() []string { // 发布帖子到社交媒体平台 type PostRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Post string `protobuf:"bytes,1,opt,name=post,proto3" json:"post"` - Platforms []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms"` - MediaUrls []string `protobuf:"bytes,3,rep,name=mediaUrls,proto3" json:"mediaUrls"` - IsVideo bool `protobuf:"varint,4,opt,name=isVideo,proto3" json:"isVideo"` - ScheduleDate string `protobuf:"bytes,5,opt,name=scheduleDate,proto3" json:"scheduleDate"` - ValidateScheduled bool `protobuf:"varint,6,opt,name=validateScheduled,proto3" json:"validateScheduled"` - ShortenLinks bool `protobuf:"varint,7,opt,name=shortenLinks,proto3" json:"shortenLinks"` - DisableComments bool `protobuf:"varint,8,opt,name=disableComments,proto3" json:"disableComments"` - InstagramOptions *InstagramOptions `protobuf:"bytes,9,opt,name=instagramOptions,proto3" json:"instagramOptions"` - TikTokOptions *TikTokOptions `protobuf:"bytes,10,opt,name=tikTokOptions,proto3" json:"tikTokOptions"` - ProfileKey string `protobuf:"bytes,11,opt,name=profileKey,proto3" json:"profileKey"` - YouTubeOptions *YouTubeOptions `protobuf:"bytes,12,opt,name=youTubeOptions,proto3" json:"youTubeOptions"` - BlueskyOptions *BlueskyOptions `protobuf:"bytes,13,opt,name=blueskyOptions,proto3" json:"blueskyOptions"` + state protoimpl.MessageState `protogen:"open.v1"` + Post string `protobuf:"bytes,1,opt,name=post,proto3" json:"post"` + Platforms []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms"` + MediaUrls []string `protobuf:"bytes,3,rep,name=mediaUrls,proto3" json:"mediaUrls"` + IsVideo bool `protobuf:"varint,4,opt,name=isVideo,proto3" json:"isVideo"` + ScheduleDate string `protobuf:"bytes,5,opt,name=scheduleDate,proto3" json:"scheduleDate"` + ValidateScheduled bool `protobuf:"varint,6,opt,name=validateScheduled,proto3" json:"validateScheduled"` + ShortenLinks bool `protobuf:"varint,7,opt,name=shortenLinks,proto3" json:"shortenLinks"` + DisableComments bool `protobuf:"varint,8,opt,name=disableComments,proto3" json:"disableComments"` + InstagramOptions *InstagramOptions `protobuf:"bytes,9,opt,name=instagramOptions,proto3" json:"instagramOptions"` + TikTokOptions *TikTokOptions `protobuf:"bytes,10,opt,name=tikTokOptions,proto3" json:"tikTokOptions"` + ProfileKey string `protobuf:"bytes,11,opt,name=profileKey,proto3" json:"profileKey"` + YouTubeOptions *YouTubeOptions `protobuf:"bytes,12,opt,name=youTubeOptions,proto3" json:"youTubeOptions"` + BlueskyOptions *BlueskyOptions `protobuf:"bytes,13,opt,name=blueskyOptions,proto3" json:"blueskyOptions"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PostRequest) Reset() { *x = PostRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PostRequest) String() string { @@ -596,7 +579,7 @@ func (*PostRequest) ProtoMessage() {} func (x *PostRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -704,31 +687,28 @@ func (x *PostRequest) GetBlueskyOptions() *BlueskyOptions { // 单个平台的帖子ID响应 type PostId struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` + Cid string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid"` + PostUrl string `protobuf:"bytes,4,opt,name=postUrl,proto3" json:"postUrl"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` + Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type"` + Owner string `protobuf:"bytes,7,opt,name=owner,proto3" json:"owner"` + MediaId string `protobuf:"bytes,8,opt,name=mediaId,proto3" json:"mediaId"` + Ended string `protobuf:"bytes,9,opt,name=ended,proto3" json:"ended"` + IdShare string `protobuf:"bytes,10,opt,name=idShare,proto3" json:"idShare"` + IsVideo bool `protobuf:"varint,11,opt,name=isVideo,proto3" json:"isVideo"` + UsedQuota int32 `protobuf:"varint,12,opt,name=usedQuota,proto3" json:"usedQuota"` 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"` - Cid string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid"` - PostUrl string `protobuf:"bytes,4,opt,name=postUrl,proto3" json:"postUrl"` - Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` - Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type"` - Owner string `protobuf:"bytes,7,opt,name=owner,proto3" json:"owner"` - MediaId string `protobuf:"bytes,8,opt,name=mediaId,proto3" json:"mediaId"` - Ended string `protobuf:"bytes,9,opt,name=ended,proto3" json:"ended"` - IdShare string `protobuf:"bytes,10,opt,name=idShare,proto3" json:"idShare"` - IsVideo bool `protobuf:"varint,11,opt,name=isVideo,proto3" json:"isVideo"` - UsedQuota int32 `protobuf:"varint,12,opt,name=usedQuota,proto3" json:"usedQuota"` + sizeCache protoimpl.SizeCache } func (x *PostId) Reset() { *x = PostId{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PostId) String() string { @@ -739,7 +719,7 @@ func (*PostId) ProtoMessage() {} func (x *PostId) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -840,27 +820,24 @@ func (x *PostId) GetUsedQuota() int32 { // 帖子项(使用 profile key 时的响应格式) type PostItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Errors []string `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors"` + PostIds []*PostId `protobuf:"bytes,3,rep,name=postIds,proto3" json:"postIds"` + Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"` + RefId string `protobuf:"bytes,5,opt,name=refId,proto3" json:"refId"` + ProfileTitle string `protobuf:"bytes,6,opt,name=profileTitle,proto3" json:"profileTitle"` + Post string `protobuf:"bytes,7,opt,name=post,proto3" json:"post"` + TikTokId string `protobuf:"bytes,8,opt,name=tikTokId,proto3" json:"tikTokId"` // TikTok 特定的 ID unknownFields protoimpl.UnknownFields - - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` - Errors []string `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors"` - PostIds []*PostId `protobuf:"bytes,3,rep,name=postIds,proto3" json:"postIds"` - Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"` - RefId string `protobuf:"bytes,5,opt,name=refId,proto3" json:"refId"` - ProfileTitle string `protobuf:"bytes,6,opt,name=profileTitle,proto3" json:"profileTitle"` - Post string `protobuf:"bytes,7,opt,name=post,proto3" json:"post"` - TikTokId string `protobuf:"bytes,8,opt,name=tikTokId,proto3" json:"tikTokId"` // TikTok 特定的 ID + sizeCache protoimpl.SizeCache } func (x *PostItem) Reset() { *x = PostItem{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PostItem) String() string { @@ -871,7 +848,7 @@ func (*PostItem) ProtoMessage() {} func (x *PostItem) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -944,26 +921,23 @@ func (x *PostItem) GetTikTokId() string { // 发布帖子响应 type PostResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` - Posts []*PostItem `protobuf:"bytes,2,rep,name=posts,proto3" json:"posts"` + state protoimpl.MessageState `protogen:"open.v1"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Posts []*PostItem `protobuf:"bytes,2,rep,name=posts,proto3" json:"posts"` // 兼容旧版本响应格式(不使用 profile key 时) - Errors []string `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors"` - PostIds []*PostId `protobuf:"bytes,4,rep,name=postIds,proto3" json:"postIds"` - Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id"` - IsValidated bool `protobuf:"varint,6,opt,name=isValidated,json=validate,proto3" json:"isValidated"` // validateScheduled 请求的验证结果 + Errors []string `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors"` + PostIds []*PostId `protobuf:"bytes,4,rep,name=postIds,proto3" json:"postIds"` + Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id"` + IsValidated bool `protobuf:"varint,6,opt,name=isValidated,json=validate,proto3" json:"isValidated"` // validateScheduled 请求的验证结果 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PostResponse) Reset() { *x = PostResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PostResponse) String() string { @@ -974,7 +948,7 @@ func (*PostResponse) ProtoMessage() {} func (x *PostResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1033,21 +1007,18 @@ func (x *PostResponse) GetIsValidated() bool { // 获取帖子请求 type GetPostRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` 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"` + sizeCache protoimpl.SizeCache } func (x *GetPostRequest) Reset() { *x = GetPostRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetPostRequest) String() string { @@ -1058,7 +1029,7 @@ func (*GetPostRequest) ProtoMessage() {} func (x *GetPostRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1089,32 +1060,29 @@ func (x *GetPostRequest) GetProfileKey() string { // 获取帖子响应 type GetPostResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Created string `protobuf:"bytes,1,opt,name=created,proto3" json:"created"` + Errors []string `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors"` + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` + MediaUrls []string `protobuf:"bytes,4,rep,name=mediaUrls,proto3" json:"mediaUrls"` + Platforms []string `protobuf:"bytes,5,rep,name=platforms,proto3" json:"platforms"` + Post string `protobuf:"bytes,6,opt,name=post,proto3" json:"post"` + PostIds []*PostId `protobuf:"bytes,7,rep,name=postIds,proto3" json:"postIds"` + ProfileTitle string `protobuf:"bytes,8,opt,name=profileTitle,proto3" json:"profileTitle"` + RefId string `protobuf:"bytes,9,opt,name=refId,proto3" json:"refId"` + ScheduleDate string `protobuf:"bytes,10,opt,name=scheduleDate,proto3" json:"scheduleDate"` + ShortenLinks bool `protobuf:"varint,11,opt,name=shortenLinks,proto3" json:"shortenLinks"` + Status string `protobuf:"bytes,12,opt,name=status,proto3" json:"status"` + Type string `protobuf:"bytes,13,opt,name=type,proto3" json:"type"` unknownFields protoimpl.UnknownFields - - Created string `protobuf:"bytes,1,opt,name=created,proto3" json:"created"` - Errors []string `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors"` - Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` - MediaUrls []string `protobuf:"bytes,4,rep,name=mediaUrls,proto3" json:"mediaUrls"` - Platforms []string `protobuf:"bytes,5,rep,name=platforms,proto3" json:"platforms"` - Post string `protobuf:"bytes,6,opt,name=post,proto3" json:"post"` - PostIds []*PostId `protobuf:"bytes,7,rep,name=postIds,proto3" json:"postIds"` - ProfileTitle string `protobuf:"bytes,8,opt,name=profileTitle,proto3" json:"profileTitle"` - RefId string `protobuf:"bytes,9,opt,name=refId,proto3" json:"refId"` - ScheduleDate string `protobuf:"bytes,10,opt,name=scheduleDate,proto3" json:"scheduleDate"` - ShortenLinks bool `protobuf:"varint,11,opt,name=shortenLinks,proto3" json:"shortenLinks"` - Status string `protobuf:"bytes,12,opt,name=status,proto3" json:"status"` - Type string `protobuf:"bytes,13,opt,name=type,proto3" json:"type"` + sizeCache protoimpl.SizeCache } func (x *GetPostResponse) Reset() { *x = GetPostResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetPostResponse) String() string { @@ -1125,7 +1093,7 @@ func (*GetPostResponse) ProtoMessage() {} func (x *GetPostResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1233,21 +1201,18 @@ func (x *GetPostResponse) GetType() string { // 获取用户详情请求 type GetUserRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ProfileKey string `protobuf:"bytes,1,opt,name=profileKey,proto3" json:"profileKey"` - InstagramDetails bool `protobuf:"varint,2,opt,name=instagramDetails,proto3" json:"instagramDetails"` + state protoimpl.MessageState `protogen:"open.v1"` + ProfileKey string `protobuf:"bytes,1,opt,name=profileKey,proto3" json:"profileKey"` + InstagramDetails bool `protobuf:"varint,2,opt,name=instagramDetails,proto3" json:"instagramDetails"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetUserRequest) Reset() { *x = GetUserRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetUserRequest) String() string { @@ -1258,7 +1223,7 @@ func (*GetUserRequest) ProtoMessage() {} func (x *GetUserRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1289,22 +1254,19 @@ func (x *GetUserRequest) GetInstagramDetails() bool { // 时间戳 type Timestamp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Seconds int64 `protobuf:"varint,1,opt,name=seconds,json=_seconds,proto3" json:"seconds"` + Nanoseconds int64 `protobuf:"varint,2,opt,name=nanoseconds,json=_nanoseconds,proto3" json:"nanoseconds"` + Utc string `protobuf:"bytes,3,opt,name=utc,proto3" json:"utc"` unknownFields protoimpl.UnknownFields - - Seconds int64 `protobuf:"varint,1,opt,name=seconds,json=_seconds,proto3" json:"seconds"` - Nanoseconds int64 `protobuf:"varint,2,opt,name=nanoseconds,json=_nanoseconds,proto3" json:"nanoseconds"` - Utc string `protobuf:"bytes,3,opt,name=utc,proto3" json:"utc"` + sizeCache protoimpl.SizeCache } func (x *Timestamp) Reset() { *x = Timestamp{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Timestamp) String() string { @@ -1315,7 +1277,7 @@ func (*Timestamp) ProtoMessage() {} func (x *Timestamp) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1353,22 +1315,19 @@ func (x *Timestamp) GetUtc() string { // Twitter 使用情况 type TwitterUsage struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + MonthlyUsage int32 `protobuf:"varint,1,opt,name=monthlyUsage,proto3" json:"monthlyUsage"` + MonthlyLimit int32 `protobuf:"varint,2,opt,name=monthlyLimit,proto3" json:"monthlyLimit"` + MonthlyReset string `protobuf:"bytes,3,opt,name=monthlyReset,proto3" json:"monthlyReset"` unknownFields protoimpl.UnknownFields - - MonthlyUsage int32 `protobuf:"varint,1,opt,name=monthlyUsage,proto3" json:"monthlyUsage"` - MonthlyLimit int32 `protobuf:"varint,2,opt,name=monthlyLimit,proto3" json:"monthlyLimit"` - MonthlyReset string `protobuf:"bytes,3,opt,name=monthlyReset,proto3" json:"monthlyReset"` + sizeCache protoimpl.SizeCache } func (x *TwitterUsage) Reset() { *x = TwitterUsage{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TwitterUsage) String() string { @@ -1379,7 +1338,7 @@ func (*TwitterUsage) ProtoMessage() {} func (x *TwitterUsage) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1417,43 +1376,40 @@ func (x *TwitterUsage) GetMonthlyReset() string { // 社交媒体账户显示名称和详情 type DisplayName struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Created string `protobuf:"bytes,1,opt,name=created,proto3" json:"created"` - DisplayName string `protobuf:"bytes,2,opt,name=displayName,proto3" json:"displayName"` - Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` - Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"` - ProfileUrl string `protobuf:"bytes,5,opt,name=profileUrl,proto3" json:"profileUrl"` - UserImage string `protobuf:"bytes,6,opt,name=userImage,proto3" json:"userImage"` - Username string `protobuf:"bytes,7,opt,name=username,proto3" json:"username"` - Description string `protobuf:"bytes,8,opt,name=description,proto3" json:"description"` - MessagingActive bool `protobuf:"varint,9,opt,name=messagingActive,proto3" json:"messagingActive"` - PageName string `protobuf:"bytes,10,opt,name=pageName,proto3" json:"pageName"` - UserId string `protobuf:"bytes,11,opt,name=userId,proto3" json:"userId"` - MapsUrl string `protobuf:"bytes,12,opt,name=mapsUrl,proto3" json:"mapsUrl"` - PlaceId string `protobuf:"bytes,13,opt,name=placeId,proto3" json:"placeId"` - ReviewUrl string `protobuf:"bytes,14,opt,name=reviewUrl,proto3" json:"reviewUrl"` - IgId string `protobuf:"bytes,15,opt,name=igId,proto3" json:"igId"` - Type string `protobuf:"bytes,16,opt,name=type,proto3" json:"type"` - UsedQuota int32 `protobuf:"varint,17,opt,name=usedQuota,proto3" json:"usedQuota"` - RefreshDaysRemaining int32 `protobuf:"varint,18,opt,name=refreshDaysRemaining,proto3" json:"refreshDaysRemaining"` - RefreshRequired string `protobuf:"bytes,19,opt,name=refreshRequired,proto3" json:"refreshRequired"` - IsEligibleForGeoRestrictions bool `protobuf:"varint,20,opt,name=isEligibleForGeoRestrictions,proto3" json:"isEligibleForGeoRestrictions"` - IsVerified bool `protobuf:"varint,21,opt,name=isVerified,proto3" json:"isVerified"` - SubscriptionType string `protobuf:"bytes,22,opt,name=subscriptionType,proto3" json:"subscriptionType"` - TwitterUsage *TwitterUsage `protobuf:"bytes,23,opt,name=twitterUsage,proto3" json:"twitterUsage"` - VerifiedType string `protobuf:"bytes,24,opt,name=verifiedType,proto3" json:"verifiedType"` + state protoimpl.MessageState `protogen:"open.v1"` + Created string `protobuf:"bytes,1,opt,name=created,proto3" json:"created"` + DisplayName string `protobuf:"bytes,2,opt,name=displayName,proto3" json:"displayName"` + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` + Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"` + ProfileUrl string `protobuf:"bytes,5,opt,name=profileUrl,proto3" json:"profileUrl"` + UserImage string `protobuf:"bytes,6,opt,name=userImage,proto3" json:"userImage"` + Username string `protobuf:"bytes,7,opt,name=username,proto3" json:"username"` + Description string `protobuf:"bytes,8,opt,name=description,proto3" json:"description"` + MessagingActive bool `protobuf:"varint,9,opt,name=messagingActive,proto3" json:"messagingActive"` + PageName string `protobuf:"bytes,10,opt,name=pageName,proto3" json:"pageName"` + UserId string `protobuf:"bytes,11,opt,name=userId,proto3" json:"userId"` + MapsUrl string `protobuf:"bytes,12,opt,name=mapsUrl,proto3" json:"mapsUrl"` + PlaceId string `protobuf:"bytes,13,opt,name=placeId,proto3" json:"placeId"` + ReviewUrl string `protobuf:"bytes,14,opt,name=reviewUrl,proto3" json:"reviewUrl"` + IgId string `protobuf:"bytes,15,opt,name=igId,proto3" json:"igId"` + Type string `protobuf:"bytes,16,opt,name=type,proto3" json:"type"` + UsedQuota int32 `protobuf:"varint,17,opt,name=usedQuota,proto3" json:"usedQuota"` + RefreshDaysRemaining int32 `protobuf:"varint,18,opt,name=refreshDaysRemaining,proto3" json:"refreshDaysRemaining"` + RefreshRequired string `protobuf:"bytes,19,opt,name=refreshRequired,proto3" json:"refreshRequired"` + IsEligibleForGeoRestrictions bool `protobuf:"varint,20,opt,name=isEligibleForGeoRestrictions,proto3" json:"isEligibleForGeoRestrictions"` + IsVerified bool `protobuf:"varint,21,opt,name=isVerified,proto3" json:"isVerified"` + SubscriptionType string `protobuf:"bytes,22,opt,name=subscriptionType,proto3" json:"subscriptionType"` + TwitterUsage *TwitterUsage `protobuf:"bytes,23,opt,name=twitterUsage,proto3" json:"twitterUsage"` + VerifiedType string `protobuf:"bytes,24,opt,name=verifiedType,proto3" json:"verifiedType"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DisplayName) Reset() { *x = DisplayName{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DisplayName) String() string { @@ -1464,7 +1420,7 @@ func (*DisplayName) ProtoMessage() {} func (x *DisplayName) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1649,34 +1605,31 @@ func (x *DisplayName) GetVerifiedType() string { // 获取用户详情响应 type GetUserResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ActiveSocialAccounts []string `protobuf:"bytes,1,rep,name=activeSocialAccounts,proto3" json:"activeSocialAccounts"` - Created *Timestamp `protobuf:"bytes,2,opt,name=created,proto3" json:"created"` - DisplayNames []*DisplayName `protobuf:"bytes,3,rep,name=displayNames,proto3" json:"displayNames"` - Email string `protobuf:"bytes,4,opt,name=email,proto3" json:"email"` - LastApiCall string `protobuf:"bytes,5,opt,name=lastApiCall,proto3" json:"lastApiCall"` - MessagingConversationMonthlyCount int32 `protobuf:"varint,6,opt,name=messagingConversationMonthlyCount,proto3" json:"messagingConversationMonthlyCount"` - MessagingEnabled bool `protobuf:"varint,7,opt,name=messagingEnabled,proto3" json:"messagingEnabled"` - MonthlyApiCalls int32 `protobuf:"varint,8,opt,name=monthlyApiCalls,proto3" json:"monthlyApiCalls"` - MonthlyPostCount int32 `protobuf:"varint,9,opt,name=monthlyPostCount,proto3" json:"monthlyPostCount"` - MonthlyPostQuota int32 `protobuf:"varint,10,opt,name=monthlyPostQuota,proto3" json:"monthlyPostQuota"` - MonthlyApiCallsQuota int32 `protobuf:"varint,11,opt,name=monthlyApiCallsQuota,proto3" json:"monthlyApiCallsQuota"` - RefId string `protobuf:"bytes,12,opt,name=refId,proto3" json:"refId"` - Title string `protobuf:"bytes,13,opt,name=title,proto3" json:"title"` - LastUpdated string `protobuf:"bytes,14,opt,name=lastUpdated,proto3" json:"lastUpdated"` - NextUpdate string `protobuf:"bytes,15,opt,name=nextUpdate,proto3" json:"nextUpdate"` + state protoimpl.MessageState `protogen:"open.v1"` + ActiveSocialAccounts []string `protobuf:"bytes,1,rep,name=activeSocialAccounts,proto3" json:"activeSocialAccounts"` + Created *Timestamp `protobuf:"bytes,2,opt,name=created,proto3" json:"created"` + DisplayNames []*DisplayName `protobuf:"bytes,3,rep,name=displayNames,proto3" json:"displayNames"` + Email string `protobuf:"bytes,4,opt,name=email,proto3" json:"email"` + LastApiCall string `protobuf:"bytes,5,opt,name=lastApiCall,proto3" json:"lastApiCall"` + MessagingConversationMonthlyCount int32 `protobuf:"varint,6,opt,name=messagingConversationMonthlyCount,proto3" json:"messagingConversationMonthlyCount"` + MessagingEnabled bool `protobuf:"varint,7,opt,name=messagingEnabled,proto3" json:"messagingEnabled"` + MonthlyApiCalls int32 `protobuf:"varint,8,opt,name=monthlyApiCalls,proto3" json:"monthlyApiCalls"` + MonthlyPostCount int32 `protobuf:"varint,9,opt,name=monthlyPostCount,proto3" json:"monthlyPostCount"` + MonthlyPostQuota int32 `protobuf:"varint,10,opt,name=monthlyPostQuota,proto3" json:"monthlyPostQuota"` + MonthlyApiCallsQuota int32 `protobuf:"varint,11,opt,name=monthlyApiCallsQuota,proto3" json:"monthlyApiCallsQuota"` + RefId string `protobuf:"bytes,12,opt,name=refId,proto3" json:"refId"` + Title string `protobuf:"bytes,13,opt,name=title,proto3" json:"title"` + LastUpdated string `protobuf:"bytes,14,opt,name=lastUpdated,proto3" json:"lastUpdated"` + NextUpdate string `protobuf:"bytes,15,opt,name=nextUpdate,proto3" json:"nextUpdate"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetUserResponse) Reset() { *x = GetUserResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetUserResponse) String() string { @@ -1687,7 +1640,7 @@ func (*GetUserResponse) ProtoMessage() {} func (x *GetUserResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1809,28 +1762,25 @@ func (x *GetUserResponse) GetNextUpdate() string { // 创建用户配置请求 type CreateProfileRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"` - MessagingActive bool `protobuf:"varint,2,opt,name=messagingActive,proto3" json:"messagingActive"` - HideTopHeader bool `protobuf:"varint,3,opt,name=hideTopHeader,proto3" json:"hideTopHeader"` - TopHeader string `protobuf:"bytes,4,opt,name=topHeader,proto3" json:"topHeader"` - DisableSocial []string `protobuf:"bytes,5,rep,name=disableSocial,proto3" json:"disableSocial"` - Team bool `protobuf:"varint,6,opt,name=team,proto3" json:"team"` - Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email"` - SubHeader string `protobuf:"bytes,8,opt,name=subHeader,proto3" json:"subHeader"` - Tags []string `protobuf:"bytes,9,rep,name=tags,proto3" json:"tags"` + state protoimpl.MessageState `protogen:"open.v1"` + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"` + MessagingActive bool `protobuf:"varint,2,opt,name=messagingActive,proto3" json:"messagingActive"` + HideTopHeader bool `protobuf:"varint,3,opt,name=hideTopHeader,proto3" json:"hideTopHeader"` + TopHeader string `protobuf:"bytes,4,opt,name=topHeader,proto3" json:"topHeader"` + DisableSocial []string `protobuf:"bytes,5,rep,name=disableSocial,proto3" json:"disableSocial"` + Team bool `protobuf:"varint,6,opt,name=team,proto3" json:"team"` + Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email"` + SubHeader string `protobuf:"bytes,8,opt,name=subHeader,proto3" json:"subHeader"` + Tags []string `protobuf:"bytes,9,rep,name=tags,proto3" json:"tags"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateProfileRequest) Reset() { *x = CreateProfileRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateProfileRequest) String() string { @@ -1841,7 +1791,7 @@ func (*CreateProfileRequest) ProtoMessage() {} func (x *CreateProfileRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1921,24 +1871,21 @@ func (x *CreateProfileRequest) GetTags() []string { // 创建用户配置响应 type CreateProfileResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` - Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` - RefId string `protobuf:"bytes,3,opt,name=refId,proto3" json:"refId"` - ProfileKey string `protobuf:"bytes,4,opt,name=profileKey,proto3" json:"profileKey"` - MessagingActive bool `protobuf:"varint,5,opt,name=messagingActive,proto3" json:"messagingActive"` + state protoimpl.MessageState `protogen:"open.v1"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` + RefId string `protobuf:"bytes,3,opt,name=refId,proto3" json:"refId"` + ProfileKey string `protobuf:"bytes,4,opt,name=profileKey,proto3" json:"profileKey"` + MessagingActive bool `protobuf:"varint,5,opt,name=messagingActive,proto3" json:"messagingActive"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateProfileResponse) Reset() { *x = CreateProfileResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateProfileResponse) String() string { @@ -1949,7 +1896,7 @@ func (*CreateProfileResponse) ProtoMessage() {} func (x *CreateProfileResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2001,30 +1948,27 @@ func (x *CreateProfileResponse) GetMessagingActive() bool { // 获取用户配置列表请求 type GetProfilesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"` - RefId string `protobuf:"bytes,2,opt,name=refId,proto3" json:"refId"` - HasActiveSocialAccounts bool `protobuf:"varint,3,opt,name=hasActiveSocialAccounts,proto3" json:"hasActiveSocialAccounts"` - IncludesActiveSocialAccounts []string `protobuf:"bytes,4,rep,name=includesActiveSocialAccounts,proto3" json:"includesActiveSocialAccounts"` - // Types that are assignable to ActionLog: + state protoimpl.MessageState `protogen:"open.v1"` + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"` + RefId string `protobuf:"bytes,2,opt,name=refId,proto3" json:"refId"` + HasActiveSocialAccounts bool `protobuf:"varint,3,opt,name=hasActiveSocialAccounts,proto3" json:"hasActiveSocialAccounts"` + IncludesActiveSocialAccounts []string `protobuf:"bytes,4,rep,name=includesActiveSocialAccounts,proto3" json:"includesActiveSocialAccounts"` + // Types that are valid to be assigned to ActionLog: // // *GetProfilesRequest_ActionLogBool // *GetProfilesRequest_ActionLogInt - ActionLog isGetProfilesRequest_ActionLog `protobuf_oneof:"actionLog"` - Limit int32 `protobuf:"varint,7,opt,name=limit,proto3" json:"limit"` - Cursor string `protobuf:"bytes,8,opt,name=cursor,proto3" json:"cursor"` + ActionLog isGetProfilesRequest_ActionLog `protobuf_oneof:"actionLog"` + Limit int32 `protobuf:"varint,7,opt,name=limit,proto3" json:"limit"` + Cursor string `protobuf:"bytes,8,opt,name=cursor,proto3" json:"cursor"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetProfilesRequest) Reset() { *x = GetProfilesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetProfilesRequest) String() string { @@ -2035,7 +1979,7 @@ func (*GetProfilesRequest) ProtoMessage() {} func (x *GetProfilesRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2078,23 +2022,27 @@ func (x *GetProfilesRequest) GetIncludesActiveSocialAccounts() []string { return nil } -func (m *GetProfilesRequest) GetActionLog() isGetProfilesRequest_ActionLog { - if m != nil { - return m.ActionLog +func (x *GetProfilesRequest) GetActionLog() isGetProfilesRequest_ActionLog { + if x != nil { + return x.ActionLog } return nil } func (x *GetProfilesRequest) GetActionLogBool() bool { - if x, ok := x.GetActionLog().(*GetProfilesRequest_ActionLogBool); ok { - return x.ActionLogBool + if x != nil { + if x, ok := x.ActionLog.(*GetProfilesRequest_ActionLogBool); ok { + return x.ActionLogBool + } } return false } func (x *GetProfilesRequest) GetActionLogInt() int32 { - if x, ok := x.GetActionLog().(*GetProfilesRequest_ActionLogInt); ok { - return x.ActionLogInt + if x != nil { + if x, ok := x.ActionLog.(*GetProfilesRequest_ActionLogInt); ok { + return x.ActionLogInt + } } return 0 } @@ -2131,27 +2079,24 @@ func (*GetProfilesRequest_ActionLogInt) isGetProfilesRequest_ActionLog() {} // 用户配置项 type ProfileItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` - Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` - DisplayTitle string `protobuf:"bytes,3,opt,name=displayTitle,proto3" json:"displayTitle"` - Created *Timestamp `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` - CreatedUTC string `protobuf:"bytes,5,opt,name=createdUTC,proto3" json:"createdUTC"` - RefId string `protobuf:"bytes,6,opt,name=refId,proto3" json:"refId"` - ActiveSocialAccounts []string `protobuf:"bytes,7,rep,name=activeSocialAccounts,proto3" json:"activeSocialAccounts"` - Suspended bool `protobuf:"varint,8,opt,name=suspended,proto3" json:"suspended"` + state protoimpl.MessageState `protogen:"open.v1"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` + DisplayTitle string `protobuf:"bytes,3,opt,name=displayTitle,proto3" json:"displayTitle"` + Created *Timestamp `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + CreatedUTC string `protobuf:"bytes,5,opt,name=createdUTC,proto3" json:"createdUTC"` + RefId string `protobuf:"bytes,6,opt,name=refId,proto3" json:"refId"` + ActiveSocialAccounts []string `protobuf:"bytes,7,rep,name=activeSocialAccounts,proto3" json:"activeSocialAccounts"` + Suspended bool `protobuf:"varint,8,opt,name=suspended,proto3" json:"suspended"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ProfileItem) Reset() { *x = ProfileItem{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProfileItem) String() string { @@ -2162,7 +2107,7 @@ func (*ProfileItem) ProtoMessage() {} func (x *ProfileItem) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2235,22 +2180,19 @@ func (x *ProfileItem) GetSuspended() bool { // 分页信息 type Pagination struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + HasMore bool `protobuf:"varint,1,opt,name=hasMore,proto3" json:"hasMore"` + NextCursor string `protobuf:"bytes,2,opt,name=nextCursor,proto3" json:"nextCursor"` + Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit"` unknownFields protoimpl.UnknownFields - - HasMore bool `protobuf:"varint,1,opt,name=hasMore,proto3" json:"hasMore"` - NextCursor string `protobuf:"bytes,2,opt,name=nextCursor,proto3" json:"nextCursor"` - Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit"` + sizeCache protoimpl.SizeCache } func (x *Pagination) Reset() { *x = Pagination{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Pagination) String() string { @@ -2261,7 +2203,7 @@ func (*Pagination) ProtoMessage() {} func (x *Pagination) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2299,24 +2241,21 @@ func (x *Pagination) GetLimit() int32 { // 获取用户配置列表响应 type GetProfilesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Profiles []*ProfileItem `protobuf:"bytes,1,rep,name=profiles,proto3" json:"profiles"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count"` + LastUpdated string `protobuf:"bytes,3,opt,name=lastUpdated,proto3" json:"lastUpdated"` + NextUpdate string `protobuf:"bytes,4,opt,name=nextUpdate,proto3" json:"nextUpdate"` + Pagination *Pagination `protobuf:"bytes,5,opt,name=pagination,proto3" json:"pagination"` unknownFields protoimpl.UnknownFields - - Profiles []*ProfileItem `protobuf:"bytes,1,rep,name=profiles,proto3" json:"profiles"` - Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count"` - LastUpdated string `protobuf:"bytes,3,opt,name=lastUpdated,proto3" json:"lastUpdated"` - NextUpdate string `protobuf:"bytes,4,opt,name=nextUpdate,proto3" json:"nextUpdate"` - Pagination *Pagination `protobuf:"bytes,5,opt,name=pagination,proto3" json:"pagination"` + sizeCache protoimpl.SizeCache } func (x *GetProfilesResponse) Reset() { *x = GetProfilesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetProfilesResponse) String() string { @@ -2327,7 +2266,7 @@ func (*GetProfilesResponse) ProtoMessage() {} func (x *GetProfilesResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2379,22 +2318,19 @@ func (x *GetProfilesResponse) GetPagination() *Pagination { // 邮件配置对象 type Email struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + To string `protobuf:"bytes,1,opt,name=to,proto3" json:"to"` + Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject"` + Body string `protobuf:"bytes,3,opt,name=body,proto3" json:"body"` unknownFields protoimpl.UnknownFields - - To string `protobuf:"bytes,1,opt,name=to,proto3" json:"to"` - Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject"` - Body string `protobuf:"bytes,3,opt,name=body,proto3" json:"body"` + sizeCache protoimpl.SizeCache } func (x *Email) Reset() { *x = Email{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Email) String() string { @@ -2405,7 +2341,7 @@ func (*Email) ProtoMessage() {} func (x *Email) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2443,29 +2379,26 @@ func (x *Email) GetBody() string { // 生成JWT请求 type GenerateJWTRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain"` + PrivateKey string `protobuf:"bytes,2,opt,name=privateKey,proto3" json:"privateKey"` + ProfileKey string `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey"` + Logout bool `protobuf:"varint,4,opt,name=logout,proto3" json:"logout"` + Redirect string `protobuf:"bytes,5,opt,name=redirect,proto3" json:"redirect"` + AllowedSocial []string `protobuf:"bytes,6,rep,name=allowedSocial,proto3" json:"allowedSocial"` + Verify bool `protobuf:"varint,7,opt,name=verify,proto3" json:"verify"` + Base64 bool `protobuf:"varint,8,opt,name=base64,proto3" json:"base64"` + ExpiresIn int32 `protobuf:"varint,9,opt,name=expiresIn,proto3" json:"expiresIn"` + Email *Email `protobuf:"bytes,10,opt,name=email,proto3" json:"email"` unknownFields protoimpl.UnknownFields - - Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain"` - PrivateKey string `protobuf:"bytes,2,opt,name=privateKey,proto3" json:"privateKey"` - ProfileKey string `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey"` - Logout bool `protobuf:"varint,4,opt,name=logout,proto3" json:"logout"` - Redirect string `protobuf:"bytes,5,opt,name=redirect,proto3" json:"redirect"` - AllowedSocial []string `protobuf:"bytes,6,rep,name=allowedSocial,proto3" json:"allowedSocial"` - Verify bool `protobuf:"varint,7,opt,name=verify,proto3" json:"verify"` - Base64 bool `protobuf:"varint,8,opt,name=base64,proto3" json:"base64"` - ExpiresIn int32 `protobuf:"varint,9,opt,name=expiresIn,proto3" json:"expiresIn"` - Email *Email `protobuf:"bytes,10,opt,name=email,proto3" json:"email"` + sizeCache protoimpl.SizeCache } func (x *GenerateJWTRequest) Reset() { *x = GenerateJWTRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GenerateJWTRequest) String() string { @@ -2476,7 +2409,7 @@ func (*GenerateJWTRequest) ProtoMessage() {} func (x *GenerateJWTRequest) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2563,25 +2496,22 @@ func (x *GenerateJWTRequest) GetEmail() *Email { // 生成JWT响应 type GenerateJWTResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` + Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token"` + Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url"` + EmailSent bool `protobuf:"varint,5,opt,name=emailSent,proto3" json:"emailSent"` + ExpiresIn string `protobuf:"bytes,6,opt,name=expiresIn,proto3" json:"expiresIn"` unknownFields protoimpl.UnknownFields - - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` - Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` - Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token"` - Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url"` - EmailSent bool `protobuf:"varint,5,opt,name=emailSent,proto3" json:"emailSent"` - ExpiresIn string `protobuf:"bytes,6,opt,name=expiresIn,proto3" json:"expiresIn"` + sizeCache protoimpl.SizeCache } func (x *GenerateJWTResponse) Reset() { *x = GenerateJWTResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GenerateJWTResponse) String() string { @@ -2592,7 +2522,7 @@ func (*GenerateJWTResponse) ProtoMessage() {} func (x *GenerateJWTResponse) ProtoReflect() protoreflect.Message { mi := &file_pb_ayrshare_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2649,26 +2579,137 @@ func (x *GenerateJWTResponse) GetExpiresIn() string { return "" } +// 解除社交网络连接请求 +type UnlinkSocialNetworkRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UnlinkSocialNetworkRequest) Reset() { + *x = UnlinkSocialNetworkRequest{} + mi := &file_pb_ayrshare_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UnlinkSocialNetworkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnlinkSocialNetworkRequest) ProtoMessage() {} + +func (x *UnlinkSocialNetworkRequest) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[25] + 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 UnlinkSocialNetworkRequest.ProtoReflect.Descriptor instead. +func (*UnlinkSocialNetworkRequest) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{25} +} + +func (x *UnlinkSocialNetworkRequest) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *UnlinkSocialNetworkRequest) GetProfileKey() string { + if x != nil { + return x.ProfileKey + } + return "" +} + +// 解除社交网络连接响应 +type UnlinkSocialNetworkResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Platform string `protobuf:"bytes,2,opt,name=platform,proto3" json:"platform"` + RefId string `protobuf:"bytes,3,opt,name=refId,proto3" json:"refId"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UnlinkSocialNetworkResponse) Reset() { + *x = UnlinkSocialNetworkResponse{} + mi := &file_pb_ayrshare_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UnlinkSocialNetworkResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnlinkSocialNetworkResponse) ProtoMessage() {} + +func (x *UnlinkSocialNetworkResponse) ProtoReflect() protoreflect.Message { + mi := &file_pb_ayrshare_proto_msgTypes[26] + 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 UnlinkSocialNetworkResponse.ProtoReflect.Descriptor instead. +func (*UnlinkSocialNetworkResponse) Descriptor() ([]byte, []int) { + return file_pb_ayrshare_proto_rawDescGZIP(), []int{26} +} + +func (x *UnlinkSocialNetworkResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *UnlinkSocialNetworkResponse) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *UnlinkSocialNetworkResponse) GetRefId() string { + if x != nil { + return x.RefId + } + return "" +} + // 历史记录中的帖子 ID type HistoryPostId struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *HistoryPostId) Reset() { *x = HistoryPostId{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HistoryPostId) String() string { @@ -2678,8 +2719,8 @@ func (x *HistoryPostId) String() string { func (*HistoryPostId) ProtoMessage() {} func (x *HistoryPostId) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[27] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2691,7 +2732,7 @@ func (x *HistoryPostId) ProtoReflect() protoreflect.Message { // Deprecated: Use HistoryPostId.ProtoReflect.Descriptor instead. func (*HistoryPostId) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{25} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{27} } func (x *HistoryPostId) GetStatus() string { @@ -2731,39 +2772,36 @@ func (x *HistoryPostId) GetIsVideo() bool { // 历史记录项 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *HistoryItem) Reset() { *x = HistoryItem{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HistoryItem) String() string { @@ -2773,8 +2811,8 @@ func (x *HistoryItem) String() string { func (*HistoryItem) ProtoMessage() {} func (x *HistoryItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[28] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2786,7 +2824,7 @@ func (x *HistoryItem) ProtoReflect() protoreflect.Message { // Deprecated: Use HistoryItem.ProtoReflect.Descriptor instead. func (*HistoryItem) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{26} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{28} } func (x *HistoryItem) GetId() string { @@ -2931,28 +2969,25 @@ func (x *HistoryItem) GetShortenLinks() bool { // 获取帖子历史记录请求 type GetHistoryRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *GetHistoryRequest) Reset() { *x = GetHistoryRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetHistoryRequest) String() string { @@ -2962,8 +2997,8 @@ func (x *GetHistoryRequest) String() string { func (*GetHistoryRequest) ProtoMessage() {} func (x *GetHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[29] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2975,7 +3010,7 @@ func (x *GetHistoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetHistoryRequest.ProtoReflect.Descriptor instead. func (*GetHistoryRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{27} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{29} } func (x *GetHistoryRequest) GetStartDate() string { @@ -3043,24 +3078,21 @@ func (x *GetHistoryRequest) GetProfileKey() string { // 获取帖子历史记录响应 type GetHistoryResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *GetHistoryResponse) Reset() { *x = GetHistoryResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetHistoryResponse) String() string { @@ -3070,8 +3102,8 @@ func (x *GetHistoryResponse) String() string { func (*GetHistoryResponse) ProtoMessage() {} func (x *GetHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[30] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3083,7 +3115,7 @@ func (x *GetHistoryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetHistoryResponse.ProtoReflect.Descriptor instead. func (*GetHistoryResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{28} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{30} } func (x *GetHistoryResponse) GetHistory() []*HistoryItem { @@ -3123,22 +3155,19 @@ func (x *GetHistoryResponse) GetNextUpdate() string { // 根据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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetHistoryByIdRequest) Reset() { *x = GetHistoryByIdRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetHistoryByIdRequest) String() string { @@ -3148,8 +3177,8 @@ func (x *GetHistoryByIdRequest) String() string { func (*GetHistoryByIdRequest) ProtoMessage() {} func (x *GetHistoryByIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[31] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3161,7 +3190,7 @@ func (x *GetHistoryByIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetHistoryByIdRequest.ProtoReflect.Descriptor instead. func (*GetHistoryByIdRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{29} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{31} } func (x *GetHistoryByIdRequest) GetId() string { @@ -3187,32 +3216,29 @@ func (x *GetHistoryByIdRequest) GetProfileKey() string { // 根据ID获取帖子历史记录响应 type GetHistoryByIdResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *GetHistoryByIdResponse) Reset() { *x = GetHistoryByIdResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetHistoryByIdResponse) String() string { @@ -3222,8 +3248,8 @@ func (x *GetHistoryByIdResponse) String() string { func (*GetHistoryByIdResponse) ProtoMessage() {} func (x *GetHistoryByIdResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[32] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3235,7 +3261,7 @@ func (x *GetHistoryByIdResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetHistoryByIdResponse.ProtoReflect.Descriptor instead. func (*GetHistoryByIdResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{30} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{32} } func (x *GetHistoryByIdResponse) GetTier() string { @@ -3331,24 +3357,21 @@ func (x *GetHistoryByIdResponse) GetType() string { // 平台帖子 type PlatformPost struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *PlatformPost) Reset() { *x = PlatformPost{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PlatformPost) String() string { @@ -3358,8 +3381,8 @@ func (x *PlatformPost) String() string { func (*PlatformPost) ProtoMessage() {} func (x *PlatformPost) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[33] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3371,7 +3394,7 @@ func (x *PlatformPost) ProtoReflect() protoreflect.Message { // Deprecated: Use PlatformPost.ProtoReflect.Descriptor instead. func (*PlatformPost) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{31} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{33} } func (x *PlatformPost) GetId() string { @@ -3411,21 +3434,18 @@ func (x *PlatformPost) GetCreatedAt() string { // 根据平台获取帖子历史记录请求 type GetHistoryByPlatformRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` 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"` + sizeCache protoimpl.SizeCache } func (x *GetHistoryByPlatformRequest) Reset() { *x = GetHistoryByPlatformRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetHistoryByPlatformRequest) String() string { @@ -3435,8 +3455,8 @@ func (x *GetHistoryByPlatformRequest) String() string { func (*GetHistoryByPlatformRequest) ProtoMessage() {} func (x *GetHistoryByPlatformRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[34] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3448,7 +3468,7 @@ func (x *GetHistoryByPlatformRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetHistoryByPlatformRequest.ProtoReflect.Descriptor instead. func (*GetHistoryByPlatformRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{32} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{34} } func (x *GetHistoryByPlatformRequest) GetPlatform() string { @@ -3467,23 +3487,20 @@ func (x *GetHistoryByPlatformRequest) GetProfileKey() string { // 根据平台获取帖子历史记录响应 type GetHistoryByPlatformResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *GetHistoryByPlatformResponse) Reset() { *x = GetHistoryByPlatformResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetHistoryByPlatformResponse) String() string { @@ -3493,8 +3510,8 @@ func (x *GetHistoryByPlatformResponse) String() string { func (*GetHistoryByPlatformResponse) ProtoMessage() {} func (x *GetHistoryByPlatformResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[35] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3506,7 +3523,7 @@ func (x *GetHistoryByPlatformResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetHistoryByPlatformResponse.ProtoReflect.Descriptor instead. func (*GetHistoryByPlatformResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{33} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{35} } func (x *GetHistoryByPlatformResponse) GetStatus() string { @@ -3539,24 +3556,21 @@ func (x *GetHistoryByPlatformResponse) GetNextUpdate() string { // 发送消息请求 type SendMessageRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *SendMessageRequest) Reset() { *x = SendMessageRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SendMessageRequest) String() string { @@ -3566,8 +3580,8 @@ func (x *SendMessageRequest) String() string { func (*SendMessageRequest) ProtoMessage() {} func (x *SendMessageRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[36] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3579,7 +3593,7 @@ func (x *SendMessageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendMessageRequest.ProtoReflect.Descriptor instead. func (*SendMessageRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{34} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{36} } func (x *SendMessageRequest) GetPlatform() string { @@ -3619,27 +3633,24 @@ func (x *SendMessageRequest) GetProfileKey() string { // 消息项(用于批量消息响应中的单个消息) type MessageItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *MessageItem) Reset() { *x = MessageItem{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MessageItem) String() string { @@ -3649,8 +3660,8 @@ func (x *MessageItem) String() string { func (*MessageItem) ProtoMessage() {} func (x *MessageItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[37] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3662,7 +3673,7 @@ func (x *MessageItem) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageItem.ProtoReflect.Descriptor instead. func (*MessageItem) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{35} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{37} } func (x *MessageItem) GetStatus() string { @@ -3723,28 +3734,25 @@ func (x *MessageItem) GetCode() int32 { // 发送消息响应 type SendMessageResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *SendMessageResponse) Reset() { *x = SendMessageResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SendMessageResponse) String() string { @@ -3754,8 +3762,8 @@ func (x *SendMessageResponse) String() string { func (*SendMessageResponse) ProtoMessage() {} func (x *SendMessageResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[38] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3767,7 +3775,7 @@ func (x *SendMessageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SendMessageResponse.ProtoReflect.Descriptor instead. func (*SendMessageResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{36} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{38} } func (x *SendMessageResponse) GetStatus() string { @@ -3835,24 +3843,21 @@ func (x *SendMessageResponse) GetMessages() []*MessageItem { // 获取消息请求 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetMessagesRequest) Reset() { *x = GetMessagesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetMessagesRequest) String() string { @@ -3862,8 +3867,8 @@ func (x *GetMessagesRequest) String() string { func (*GetMessagesRequest) ProtoMessage() {} func (x *GetMessagesRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[39] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3875,7 +3880,7 @@ func (x *GetMessagesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMessagesRequest.ProtoReflect.Descriptor instead. func (*GetMessagesRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{37} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{39} } func (x *GetMessagesRequest) GetPlatform() string { @@ -3915,21 +3920,18 @@ func (x *GetMessagesRequest) GetProfileKey() string { // 消息附件 type MessageAttachment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url"` 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"` + sizeCache protoimpl.SizeCache } func (x *MessageAttachment) Reset() { *x = MessageAttachment{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MessageAttachment) String() string { @@ -3939,8 +3941,8 @@ func (x *MessageAttachment) String() string { func (*MessageAttachment) ProtoMessage() {} func (x *MessageAttachment) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[40] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3952,7 +3954,7 @@ func (x *MessageAttachment) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageAttachment.ProtoReflect.Descriptor instead. func (*MessageAttachment) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{38} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{40} } func (x *MessageAttachment) GetType() string { @@ -3971,23 +3973,20 @@ func (x *MessageAttachment) GetUrl() string { // 消息发送者详情 type MessageSenderDetails struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *MessageSenderDetails) Reset() { *x = MessageSenderDetails{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MessageSenderDetails) String() string { @@ -3997,8 +3996,8 @@ func (x *MessageSenderDetails) String() string { func (*MessageSenderDetails) ProtoMessage() {} func (x *MessageSenderDetails) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[41] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4010,7 +4009,7 @@ func (x *MessageSenderDetails) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageSenderDetails.ProtoReflect.Descriptor instead. func (*MessageSenderDetails) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{39} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{41} } func (x *MessageSenderDetails) GetName() string { @@ -4043,22 +4042,19 @@ func (x *MessageSenderDetails) GetProfileImage() string { // 消息接收者详情 type MessageRecipientDetails struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *MessageRecipientDetails) Reset() { *x = MessageRecipientDetails{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MessageRecipientDetails) String() string { @@ -4068,8 +4064,8 @@ func (x *MessageRecipientDetails) String() string { func (*MessageRecipientDetails) ProtoMessage() {} func (x *MessageRecipientDetails) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[42] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4081,7 +4077,7 @@ func (x *MessageRecipientDetails) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageRecipientDetails.ProtoReflect.Descriptor instead. func (*MessageRecipientDetails) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{40} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{42} } func (x *MessageRecipientDetails) GetName() string { @@ -4107,21 +4103,18 @@ func (x *MessageRecipientDetails) GetPicture() string { // 消息反应(map类型,在proto中用repeated MessageReaction表示) type MessageReaction struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId"` + Emoji string `protobuf:"bytes,2,opt,name=emoji,proto3" json:"emoji"` 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"` + sizeCache protoimpl.SizeCache } func (x *MessageReaction) Reset() { *x = MessageReaction{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MessageReaction) String() string { @@ -4131,8 +4124,8 @@ func (x *MessageReaction) String() string { func (*MessageReaction) ProtoMessage() {} func (x *MessageReaction) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[43] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4144,7 +4137,7 @@ func (x *MessageReaction) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageReaction.ProtoReflect.Descriptor instead. func (*MessageReaction) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{41} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{43} } func (x *MessageReaction) GetUserId() string { @@ -4163,10 +4156,7 @@ func (x *MessageReaction) GetEmoji() string { // 获取消息响应中的单个消息项 type GetMessagesItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` 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"` @@ -4180,15 +4170,15 @@ type GetMessagesItem struct { 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetMessagesItem) Reset() { *x = GetMessagesItem{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetMessagesItem) String() string { @@ -4198,8 +4188,8 @@ func (x *GetMessagesItem) String() string { func (*GetMessagesItem) ProtoMessage() {} func (x *GetMessagesItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[44] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4211,7 +4201,7 @@ func (x *GetMessagesItem) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMessagesItem.ProtoReflect.Descriptor instead. func (*GetMessagesItem) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{42} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{44} } func (x *GetMessagesItem) GetId() string { @@ -4307,22 +4297,19 @@ func (x *GetMessagesItem) GetReactions() []*MessageReaction { // 对话参与者 type ConversationParticipant struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *ConversationParticipant) Reset() { *x = ConversationParticipant{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ConversationParticipant) String() string { @@ -4332,8 +4319,8 @@ func (x *ConversationParticipant) String() string { func (*ConversationParticipant) ProtoMessage() {} func (x *ConversationParticipant) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[45] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4345,7 +4332,7 @@ func (x *ConversationParticipant) ProtoReflect() protoreflect.Message { // Deprecated: Use ConversationParticipant.ProtoReflect.Descriptor instead. func (*ConversationParticipant) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{43} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{45} } func (x *ConversationParticipant) GetName() string { @@ -4371,23 +4358,20 @@ func (x *ConversationParticipant) GetPicture() string { // 对话详情 type ConversationDetail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *ConversationDetail) Reset() { *x = ConversationDetail{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ConversationDetail) String() string { @@ -4397,8 +4381,8 @@ func (x *ConversationDetail) String() string { func (*ConversationDetail) ProtoMessage() {} func (x *ConversationDetail) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[46] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4410,7 +4394,7 @@ func (x *ConversationDetail) ProtoReflect() protoreflect.Message { // Deprecated: Use ConversationDetail.ProtoReflect.Descriptor instead. func (*ConversationDetail) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{44} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{46} } func (x *ConversationDetail) GetId() string { @@ -4443,28 +4427,25 @@ func (x *ConversationDetail) GetWatermark() int64 { // 获取消息响应 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 以区分) + state protoimpl.MessageState `protogen:"open.v1"` + 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 以区分) + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetMessagesResponse) Reset() { *x = GetMessagesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetMessagesResponse) String() string { @@ -4474,8 +4455,8 @@ func (x *GetMessagesResponse) String() string { func (*GetMessagesResponse) ProtoMessage() {} func (x *GetMessagesResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[47] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4487,7 +4468,7 @@ func (x *GetMessagesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMessagesResponse.ProtoReflect.Descriptor instead. func (*GetMessagesResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{45} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{47} } func (x *GetMessagesResponse) GetStatus() string { @@ -4555,25 +4536,22 @@ func (x *GetMessagesResponse) GetErrMsg() string { // 发布评论请求 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PostCommentRequest) Reset() { *x = PostCommentRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PostCommentRequest) String() string { @@ -4583,8 +4561,8 @@ func (x *PostCommentRequest) String() string { func (*PostCommentRequest) ProtoMessage() {} func (x *PostCommentRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[46] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[48] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4596,7 +4574,7 @@ func (x *PostCommentRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PostCommentRequest.ProtoReflect.Descriptor instead. func (*PostCommentRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{46} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{48} } func (x *PostCommentRequest) GetId() string { @@ -4643,23 +4621,20 @@ func (x *PostCommentRequest) GetProfileKey() string { // Instagram 平台评论响应 type InstagramCommentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *InstagramCommentResponse) Reset() { *x = InstagramCommentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InstagramCommentResponse) String() string { @@ -4669,8 +4644,8 @@ func (x *InstagramCommentResponse) String() string { func (*InstagramCommentResponse) ProtoMessage() {} func (x *InstagramCommentResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[47] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[49] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4682,7 +4657,7 @@ func (x *InstagramCommentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use InstagramCommentResponse.ProtoReflect.Descriptor instead. func (*InstagramCommentResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{47} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{49} } func (x *InstagramCommentResponse) GetStatus() string { @@ -4715,24 +4690,21 @@ func (x *InstagramCommentResponse) GetPlatform() string { // TikTok 平台评论响应 type TikTokCommentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *TikTokCommentResponse) Reset() { *x = TikTokCommentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TikTokCommentResponse) String() string { @@ -4742,8 +4714,8 @@ func (x *TikTokCommentResponse) String() string { func (*TikTokCommentResponse) ProtoMessage() {} func (x *TikTokCommentResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[48] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[50] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4755,7 +4727,7 @@ func (x *TikTokCommentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use TikTokCommentResponse.ProtoReflect.Descriptor instead. func (*TikTokCommentResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{48} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{50} } func (x *TikTokCommentResponse) GetStatus() string { @@ -4795,25 +4767,22 @@ func (x *TikTokCommentResponse) GetVideoId() string { // Bluesky 平台评论响应 type BlueskyCommentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *BlueskyCommentResponse) Reset() { *x = BlueskyCommentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BlueskyCommentResponse) String() string { @@ -4823,8 +4792,8 @@ func (x *BlueskyCommentResponse) String() string { func (*BlueskyCommentResponse) ProtoMessage() {} func (x *BlueskyCommentResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[49] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[51] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4836,7 +4805,7 @@ func (x *BlueskyCommentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BlueskyCommentResponse.ProtoReflect.Descriptor instead. func (*BlueskyCommentResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{49} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{51} } func (x *BlueskyCommentResponse) GetStatus() string { @@ -4883,23 +4852,20 @@ func (x *BlueskyCommentResponse) GetPostUrl() string { // Facebook 平台评论响应 type FacebookCommentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *FacebookCommentResponse) Reset() { *x = FacebookCommentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FacebookCommentResponse) String() string { @@ -4909,8 +4875,8 @@ func (x *FacebookCommentResponse) String() string { func (*FacebookCommentResponse) ProtoMessage() {} func (x *FacebookCommentResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[50] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[52] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4922,7 +4888,7 @@ func (x *FacebookCommentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use FacebookCommentResponse.ProtoReflect.Descriptor instead. func (*FacebookCommentResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{50} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{52} } func (x *FacebookCommentResponse) GetStatus() string { @@ -4955,24 +4921,21 @@ func (x *FacebookCommentResponse) GetPlatform() string { // LinkedIn 平台评论响应 type LinkedInCommentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *LinkedInCommentResponse) Reset() { *x = LinkedInCommentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LinkedInCommentResponse) String() string { @@ -4982,8 +4945,8 @@ func (x *LinkedInCommentResponse) String() string { func (*LinkedInCommentResponse) ProtoMessage() {} func (x *LinkedInCommentResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[51] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[53] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4995,7 +4958,7 @@ func (x *LinkedInCommentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use LinkedInCommentResponse.ProtoReflect.Descriptor instead. func (*LinkedInCommentResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{51} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{53} } func (x *LinkedInCommentResponse) GetStatus() string { @@ -5035,23 +4998,20 @@ func (x *LinkedInCommentResponse) GetPlatform() string { // Twitter/X 平台评论响应 type TwitterCommentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *TwitterCommentResponse) Reset() { *x = TwitterCommentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[52] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TwitterCommentResponse) String() string { @@ -5061,8 +5021,8 @@ func (x *TwitterCommentResponse) String() string { func (*TwitterCommentResponse) ProtoMessage() {} func (x *TwitterCommentResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[52] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[54] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5074,7 +5034,7 @@ func (x *TwitterCommentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use TwitterCommentResponse.ProtoReflect.Descriptor instead. func (*TwitterCommentResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{52} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{54} } func (x *TwitterCommentResponse) GetStatus() string { @@ -5107,23 +5067,20 @@ func (x *TwitterCommentResponse) GetPostUrl() string { // YouTube 平台评论响应 type YouTubeCommentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *YouTubeCommentResponse) Reset() { *x = YouTubeCommentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *YouTubeCommentResponse) String() string { @@ -5133,8 +5090,8 @@ func (x *YouTubeCommentResponse) String() string { func (*YouTubeCommentResponse) ProtoMessage() {} func (x *YouTubeCommentResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[53] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[55] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5146,7 +5103,7 @@ func (x *YouTubeCommentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use YouTubeCommentResponse.ProtoReflect.Descriptor instead. func (*YouTubeCommentResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{53} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{55} } func (x *YouTubeCommentResponse) GetStatus() string { @@ -5179,27 +5136,24 @@ func (x *YouTubeCommentResponse) GetPlatform() string { // 平台错误信息 type PlatformError struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + Post string `protobuf:"bytes,6,opt,name=post,proto3" json:"post"` // 重复评论错误时包含的评论内容 + Detail string `protobuf:"bytes,7,opt,name=detail,proto3" json:"detail"` // 错误详情 + Id string `protobuf:"bytes,8,opt,name=id,proto3" json:"id"` // Ayrshare Post ID(错误响应中可能包含) 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"` - Post string `protobuf:"bytes,6,opt,name=post,proto3" json:"post"` // 重复评论错误时包含的评论内容 - Detail string `protobuf:"bytes,7,opt,name=detail,proto3" json:"detail"` // 错误详情 - Id string `protobuf:"bytes,8,opt,name=id,proto3" json:"id"` // Ayrshare Post ID(错误响应中可能包含) + sizeCache protoimpl.SizeCache } func (x *PlatformError) Reset() { *x = PlatformError{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PlatformError) String() string { @@ -5209,8 +5163,8 @@ func (x *PlatformError) String() string { func (*PlatformError) ProtoMessage() {} func (x *PlatformError) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[54] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[56] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5222,7 +5176,7 @@ func (x *PlatformError) ProtoReflect() protoreflect.Message { // Deprecated: Use PlatformError.ProtoReflect.Descriptor instead. func (*PlatformError) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{54} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{56} } func (x *PlatformError) GetAction() string { @@ -5283,10 +5237,7 @@ func (x *PlatformError) GetId() string { // 发布评论响应 type PostCommentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` 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"` // 备用字段,用于错误响应 @@ -5299,20 +5250,20 @@ type PostCommentResponse struct { 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"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PostCommentResponse) Reset() { *x = PostCommentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PostCommentResponse) String() string { @@ -5322,8 +5273,8 @@ func (x *PostCommentResponse) String() string { func (*PostCommentResponse) ProtoMessage() {} func (x *PostCommentResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[55] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[57] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5335,7 +5286,7 @@ func (x *PostCommentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PostCommentResponse.ProtoReflect.Descriptor instead. func (*PostCommentResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{55} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{57} } func (x *PostCommentResponse) GetStatus() string { @@ -5452,21 +5403,18 @@ func (x *PostCommentResponse) GetYoutube() *YouTubeCommentResponse { // 获取评论请求 type GetCommentRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` 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"` + sizeCache protoimpl.SizeCache } func (x *GetCommentRequest) Reset() { *x = GetCommentRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[56] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCommentRequest) String() string { @@ -5476,8 +5424,8 @@ func (x *GetCommentRequest) String() string { func (*GetCommentRequest) ProtoMessage() {} func (x *GetCommentRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[56] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[58] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5489,7 +5437,7 @@ func (x *GetCommentRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCommentRequest.ProtoReflect.Descriptor instead. func (*GetCommentRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{56} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{58} } func (x *GetCommentRequest) GetId() string { @@ -5508,22 +5456,19 @@ func (x *GetCommentRequest) GetProfileKey() string { // Instagram 用户信息 type InstagramUser struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *InstagramUser) Reset() { *x = InstagramUser{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InstagramUser) String() string { @@ -5533,8 +5478,8 @@ func (x *InstagramUser) String() string { func (*InstagramUser) ProtoMessage() {} func (x *InstagramUser) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[57] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[59] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5546,7 +5491,7 @@ func (x *InstagramUser) ProtoReflect() protoreflect.Message { // Deprecated: Use InstagramUser.ProtoReflect.Descriptor instead. func (*InstagramUser) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{57} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{59} } func (x *InstagramUser) GetName() string { @@ -5572,20 +5517,17 @@ func (x *InstagramUser) GetUsername() string { // Instagram 用户ID信息 type InstagramUserInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + sizeCache protoimpl.SizeCache } func (x *InstagramUserInfo) Reset() { *x = InstagramUserInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InstagramUserInfo) String() string { @@ -5595,8 +5537,8 @@ func (x *InstagramUserInfo) String() string { func (*InstagramUserInfo) ProtoMessage() {} func (x *InstagramUserInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[58] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[60] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5608,7 +5550,7 @@ func (x *InstagramUserInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use InstagramUserInfo.ProtoReflect.Descriptor instead. func (*InstagramUserInfo) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{58} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{60} } func (x *InstagramUserInfo) GetId() string { @@ -5620,33 +5562,30 @@ func (x *InstagramUserInfo) GetId() string { // Instagram 评论详情 type InstagramComment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` // 备用字段,用于回复评论 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"` // 备用字段,用于回复评论 + sizeCache protoimpl.SizeCache } func (x *InstagramComment) Reset() { *x = InstagramComment{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[59] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InstagramComment) String() string { @@ -5656,8 +5595,8 @@ func (x *InstagramComment) String() string { func (*InstagramComment) ProtoMessage() {} func (x *InstagramComment) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[59] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[61] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5669,7 +5608,7 @@ func (x *InstagramComment) ProtoReflect() protoreflect.Message { // Deprecated: Use InstagramComment.ProtoReflect.Descriptor instead. func (*InstagramComment) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{59} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{61} } func (x *InstagramComment) GetComment() string { @@ -5772,38 +5711,35 @@ func (x *InstagramComment) GetUsernameAlt() string { // 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TikTokComment) Reset() { *x = TikTokComment{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TikTokComment) String() string { @@ -5813,8 +5749,8 @@ func (x *TikTokComment) String() string { func (*TikTokComment) ProtoMessage() {} func (x *TikTokComment) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[60] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[62] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5826,7 +5762,7 @@ func (x *TikTokComment) ProtoReflect() protoreflect.Message { // Deprecated: Use TikTokComment.ProtoReflect.Descriptor instead. func (*TikTokComment) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{60} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{62} } func (x *TikTokComment) GetComment() string { @@ -5964,32 +5900,29 @@ func (x *TikTokComment) GetVisibility() string { // 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *BlueskyComment) Reset() { *x = BlueskyComment{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[61] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BlueskyComment) String() string { @@ -5999,8 +5932,8 @@ func (x *BlueskyComment) String() string { func (*BlueskyComment) ProtoMessage() {} func (x *BlueskyComment) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[61] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[63] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6012,7 +5945,7 @@ func (x *BlueskyComment) ProtoReflect() protoreflect.Message { // Deprecated: Use BlueskyComment.ProtoReflect.Descriptor instead. func (*BlueskyComment) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{61} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{63} } func (x *BlueskyComment) GetComment() string { @@ -6108,21 +6041,18 @@ func (x *BlueskyComment) GetUserName() string { // Facebook 用户信息 type FacebookUser struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` 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"` + sizeCache protoimpl.SizeCache } func (x *FacebookUser) Reset() { *x = FacebookUser{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[62] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FacebookUser) String() string { @@ -6132,8 +6062,8 @@ func (x *FacebookUser) String() string { func (*FacebookUser) ProtoMessage() {} func (x *FacebookUser) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[62] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[64] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6145,7 +6075,7 @@ func (x *FacebookUser) ProtoReflect() protoreflect.Message { // Deprecated: Use FacebookUser.ProtoReflect.Descriptor instead. func (*FacebookUser) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{62} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{64} } func (x *FacebookUser) GetName() string { @@ -6164,23 +6094,20 @@ func (x *FacebookUser) GetId() string { // Facebook 父级评论/帖子信息 type FacebookParent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *FacebookParent) Reset() { *x = FacebookParent{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[63] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FacebookParent) String() string { @@ -6190,8 +6117,8 @@ func (x *FacebookParent) String() string { func (*FacebookParent) ProtoMessage() {} func (x *FacebookParent) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[63] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[65] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6203,7 +6130,7 @@ func (x *FacebookParent) ProtoReflect() protoreflect.Message { // Deprecated: Use FacebookParent.ProtoReflect.Descriptor instead. func (*FacebookParent) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{63} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{65} } func (x *FacebookParent) GetCreatedTime() string { @@ -6236,31 +6163,28 @@ func (x *FacebookParent) GetId() string { // Facebook 评论详情(用于主评论和回复) type FacebookComment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *FacebookComment) Reset() { *x = FacebookComment{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[64] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FacebookComment) String() string { @@ -6270,8 +6194,8 @@ func (x *FacebookComment) String() string { func (*FacebookComment) ProtoMessage() {} func (x *FacebookComment) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[64] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[66] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6283,7 +6207,7 @@ func (x *FacebookComment) ProtoReflect() protoreflect.Message { // Deprecated: Use FacebookComment.ProtoReflect.Descriptor instead. func (*FacebookComment) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{64} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{66} } func (x *FacebookComment) GetComment() string { @@ -6372,21 +6296,18 @@ func (x *FacebookComment) GetReplies() []*FacebookComment { // LinkedIn 评论中的媒体信息 type LinkedInMedia struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url"` 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"` + sizeCache protoimpl.SizeCache } func (x *LinkedInMedia) Reset() { *x = LinkedInMedia{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[65] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LinkedInMedia) String() string { @@ -6396,8 +6317,8 @@ func (x *LinkedInMedia) String() string { func (*LinkedInMedia) ProtoMessage() {} func (x *LinkedInMedia) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[65] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[67] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6409,7 +6330,7 @@ func (x *LinkedInMedia) ProtoReflect() protoreflect.Message { // Deprecated: Use LinkedInMedia.ProtoReflect.Descriptor instead. func (*LinkedInMedia) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{65} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{67} } func (x *LinkedInMedia) GetType() string { @@ -6428,23 +6349,20 @@ func (x *LinkedInMedia) GetUrl() string { // LinkedIn 评论发布者信息 type LinkedInFrom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *LinkedInFrom) Reset() { *x = LinkedInFrom{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[66] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LinkedInFrom) String() string { @@ -6454,8 +6372,8 @@ func (x *LinkedInFrom) String() string { func (*LinkedInFrom) ProtoMessage() {} func (x *LinkedInFrom) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[66] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[68] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6467,7 +6385,7 @@ func (x *LinkedInFrom) ProtoReflect() protoreflect.Message { // Deprecated: Use LinkedInFrom.ProtoReflect.Descriptor instead. func (*LinkedInFrom) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{66} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{68} } func (x *LinkedInFrom) GetName() string { @@ -6500,32 +6418,29 @@ func (x *LinkedInFrom) GetDescription() string { // 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LinkedInComment) Reset() { *x = LinkedInComment{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[67] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LinkedInComment) String() string { @@ -6535,8 +6450,8 @@ func (x *LinkedInComment) String() string { func (*LinkedInComment) ProtoMessage() {} func (x *LinkedInComment) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[67] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[69] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6548,7 +6463,7 @@ func (x *LinkedInComment) ProtoReflect() protoreflect.Message { // Deprecated: Use LinkedInComment.ProtoReflect.Descriptor instead. func (*LinkedInComment) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{67} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{69} } func (x *LinkedInComment) GetComment() string { @@ -6644,21 +6559,18 @@ func (x *LinkedInComment) GetWebsite() string { // Reddit 用户信息 type RedditUser struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` 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"` + sizeCache protoimpl.SizeCache } func (x *RedditUser) Reset() { *x = RedditUser{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[68] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RedditUser) String() string { @@ -6668,8 +6580,8 @@ func (x *RedditUser) String() string { func (*RedditUser) ProtoMessage() {} func (x *RedditUser) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[68] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[70] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6681,7 +6593,7 @@ func (x *RedditUser) ProtoReflect() protoreflect.Message { // Deprecated: Use RedditUser.ProtoReflect.Descriptor instead. func (*RedditUser) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{68} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{70} } func (x *RedditUser) GetName() string { @@ -6700,27 +6612,24 @@ func (x *RedditUser) GetId() string { // Reddit 评论详情 type RedditComment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *RedditComment) Reset() { *x = RedditComment{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[69] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RedditComment) String() string { @@ -6730,8 +6639,8 @@ func (x *RedditComment) String() string { func (*RedditComment) ProtoMessage() {} func (x *RedditComment) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[69] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[71] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6743,7 +6652,7 @@ func (x *RedditComment) ProtoReflect() protoreflect.Message { // Deprecated: Use RedditComment.ProtoReflect.Descriptor instead. func (*RedditComment) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{69} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{71} } func (x *RedditComment) GetComment() string { @@ -6804,35 +6713,32 @@ func (x *RedditComment) GetIsSubmitter() bool { // 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ThreadsComment) Reset() { *x = ThreadsComment{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[70] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ThreadsComment) String() string { @@ -6842,8 +6748,8 @@ func (x *ThreadsComment) String() string { func (*ThreadsComment) ProtoMessage() {} func (x *ThreadsComment) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[70] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[72] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6855,7 +6761,7 @@ func (x *ThreadsComment) ProtoReflect() protoreflect.Message { // Deprecated: Use ThreadsComment.ProtoReflect.Descriptor instead. func (*ThreadsComment) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{70} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{72} } func (x *ThreadsComment) GetComment() string { @@ -6972,25 +6878,22 @@ func (x *ThreadsComment) GetUserName() string { // 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TwitterPublicMetrics) Reset() { *x = TwitterPublicMetrics{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[71] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TwitterPublicMetrics) String() string { @@ -7000,8 +6903,8 @@ func (x *TwitterPublicMetrics) String() string { func (*TwitterPublicMetrics) ProtoMessage() {} func (x *TwitterPublicMetrics) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[71] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[73] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7013,7 +6916,7 @@ func (x *TwitterPublicMetrics) ProtoReflect() protoreflect.Message { // Deprecated: Use TwitterPublicMetrics.ProtoReflect.Descriptor instead. func (*TwitterPublicMetrics) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{71} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{73} } func (x *TwitterPublicMetrics) GetFollowersCount() int32 { @@ -7060,21 +6963,18 @@ func (x *TwitterPublicMetrics) GetMediaCount() int32 { // Twitter/X 被引用或回复的 Tweet 信息 type TwitterReferencedTweet struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` 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"` + sizeCache protoimpl.SizeCache } func (x *TwitterReferencedTweet) Reset() { *x = TwitterReferencedTweet{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[72] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TwitterReferencedTweet) String() string { @@ -7084,8 +6984,8 @@ func (x *TwitterReferencedTweet) String() string { func (*TwitterReferencedTweet) ProtoMessage() {} func (x *TwitterReferencedTweet) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[72] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[74] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7097,7 +6997,7 @@ func (x *TwitterReferencedTweet) ProtoReflect() protoreflect.Message { // Deprecated: Use TwitterReferencedTweet.ProtoReflect.Descriptor instead. func (*TwitterReferencedTweet) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{72} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{74} } func (x *TwitterReferencedTweet) GetType() string { @@ -7116,28 +7016,25 @@ func (x *TwitterReferencedTweet) GetId() string { // 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TwitterReplyTo) Reset() { *x = TwitterReplyTo{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[73] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TwitterReplyTo) String() string { @@ -7147,8 +7044,8 @@ func (x *TwitterReplyTo) String() string { func (*TwitterReplyTo) ProtoMessage() {} func (x *TwitterReplyTo) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[73] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[75] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7160,7 +7057,7 @@ func (x *TwitterReplyTo) ProtoReflect() protoreflect.Message { // Deprecated: Use TwitterReplyTo.ProtoReflect.Descriptor instead. func (*TwitterReplyTo) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{73} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{75} } func (x *TwitterReplyTo) GetCreatedAt() string { @@ -7228,10 +7125,7 @@ func (x *TwitterReplyTo) GetUsername() string { // Twitter/X 评论详情 type TwitterComment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` 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"` @@ -7250,15 +7144,15 @@ type TwitterComment struct { 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TwitterComment) Reset() { *x = TwitterComment{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[74] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TwitterComment) String() string { @@ -7268,8 +7162,8 @@ func (x *TwitterComment) String() string { func (*TwitterComment) ProtoMessage() {} func (x *TwitterComment) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[74] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[76] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7281,7 +7175,7 @@ func (x *TwitterComment) ProtoReflect() protoreflect.Message { // Deprecated: Use TwitterComment.ProtoReflect.Descriptor instead. func (*TwitterComment) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{74} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{76} } func (x *TwitterComment) GetBookmarkCount() int32 { @@ -7412,28 +7306,25 @@ func (x *TwitterComment) GetUserName() string { // 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *YouTubeReply) Reset() { *x = YouTubeReply{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[75] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *YouTubeReply) String() string { @@ -7443,8 +7334,8 @@ func (x *YouTubeReply) String() string { func (*YouTubeReply) ProtoMessage() {} func (x *YouTubeReply) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[75] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[77] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7456,7 +7347,7 @@ func (x *YouTubeReply) ProtoReflect() protoreflect.Message { // Deprecated: Use YouTubeReply.ProtoReflect.Descriptor instead. func (*YouTubeReply) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{75} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{77} } func (x *YouTubeReply) GetChannelUrl() string { @@ -7524,29 +7415,26 @@ func (x *YouTubeReply) GetParentId() string { // 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *YouTubeComment) Reset() { *x = YouTubeComment{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[76] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *YouTubeComment) String() string { @@ -7556,8 +7444,8 @@ func (x *YouTubeComment) String() string { func (*YouTubeComment) ProtoMessage() {} func (x *YouTubeComment) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[76] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[78] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7569,7 +7457,7 @@ func (x *YouTubeComment) ProtoReflect() protoreflect.Message { // Deprecated: Use YouTubeComment.ProtoReflect.Descriptor instead. func (*YouTubeComment) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{76} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{78} } func (x *YouTubeComment) GetChannelUrl() string { @@ -7644,36 +7532,33 @@ func (x *YouTubeComment) GetUserName() string { // 获取评论响应 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetCommentResponse) Reset() { *x = GetCommentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[77] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCommentResponse) String() string { @@ -7683,8 +7568,8 @@ func (x *GetCommentResponse) String() string { func (*GetCommentResponse) ProtoMessage() {} func (x *GetCommentResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[77] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[79] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7696,7 +7581,7 @@ func (x *GetCommentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCommentResponse.ProtoReflect.Descriptor instead. func (*GetCommentResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{77} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{79} } func (x *GetCommentResponse) GetInstagram() []*InstagramComment { @@ -7813,24 +7698,21 @@ func (x *GetCommentResponse) GetYoutube() []*YouTubeComment { // 删除评论请求 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteCommentRequest) Reset() { *x = DeleteCommentRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[78] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteCommentRequest) String() string { @@ -7840,8 +7722,8 @@ func (x *DeleteCommentRequest) String() string { func (*DeleteCommentRequest) ProtoMessage() {} func (x *DeleteCommentRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[78] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[80] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7853,7 +7735,7 @@ func (x *DeleteCommentRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteCommentRequest.ProtoReflect.Descriptor instead. func (*DeleteCommentRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{78} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{80} } func (x *DeleteCommentRequest) GetId() string { @@ -7893,23 +7775,20 @@ func (x *DeleteCommentRequest) GetProfileKey() string { // Instagram 删除评论响应(单条) type InstagramDeleteResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *InstagramDeleteResponse) Reset() { *x = InstagramDeleteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[79] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InstagramDeleteResponse) String() string { @@ -7919,8 +7798,8 @@ func (x *InstagramDeleteResponse) String() string { func (*InstagramDeleteResponse) ProtoMessage() {} func (x *InstagramDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[79] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[81] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7932,7 +7811,7 @@ func (x *InstagramDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use InstagramDeleteResponse.ProtoReflect.Descriptor instead. func (*InstagramDeleteResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{79} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{81} } func (x *InstagramDeleteResponse) GetAction() string { @@ -7965,24 +7844,21 @@ func (x *InstagramDeleteResponse) GetComment() string { // TikTok 删除评论响应(单条) type TikTokDeleteResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *TikTokDeleteResponse) Reset() { *x = TikTokDeleteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[80] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TikTokDeleteResponse) String() string { @@ -7992,8 +7868,8 @@ func (x *TikTokDeleteResponse) String() string { func (*TikTokDeleteResponse) ProtoMessage() {} func (x *TikTokDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[80] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[82] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8005,7 +7881,7 @@ func (x *TikTokDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use TikTokDeleteResponse.ProtoReflect.Descriptor instead. func (*TikTokDeleteResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{80} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{82} } func (x *TikTokDeleteResponse) GetAction() string { @@ -8045,11 +7921,8 @@ func (x *TikTokDeleteResponse) GetComment() string { // 删除评论响应 type DeleteCommentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` @@ -8057,21 +7930,21 @@ type DeleteCommentResponse struct { 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"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteCommentResponse) Reset() { *x = DeleteCommentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[81] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteCommentResponse) String() string { @@ -8081,8 +7954,8 @@ func (x *DeleteCommentResponse) String() string { func (*DeleteCommentResponse) ProtoMessage() {} func (x *DeleteCommentResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[81] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[83] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8094,7 +7967,7 @@ func (x *DeleteCommentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteCommentResponse.ProtoReflect.Descriptor instead. func (*DeleteCommentResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{81} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{83} } func (x *DeleteCommentResponse) GetStatus() string { @@ -8183,23 +8056,20 @@ func (x *DeleteCommentResponse) GetYoutube() string { // 回复评论请求 type ReplyCommentRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *ReplyCommentRequest) Reset() { *x = ReplyCommentRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[82] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReplyCommentRequest) String() string { @@ -8209,8 +8079,8 @@ func (x *ReplyCommentRequest) String() string { func (*ReplyCommentRequest) ProtoMessage() {} func (x *ReplyCommentRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[82] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[84] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8222,7 +8092,7 @@ func (x *ReplyCommentRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplyCommentRequest.ProtoReflect.Descriptor instead. func (*ReplyCommentRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{82} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{84} } func (x *ReplyCommentRequest) GetId() string { @@ -8255,24 +8125,21 @@ func (x *ReplyCommentRequest) GetProfileKey() string { // 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *InstagramReplyResponse) Reset() { *x = InstagramReplyResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[83] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InstagramReplyResponse) String() string { @@ -8282,8 +8149,8 @@ func (x *InstagramReplyResponse) String() string { func (*InstagramReplyResponse) ProtoMessage() {} func (x *InstagramReplyResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[83] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[85] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8295,7 +8162,7 @@ func (x *InstagramReplyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use InstagramReplyResponse.ProtoReflect.Descriptor instead. func (*InstagramReplyResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{83} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{85} } func (x *InstagramReplyResponse) GetStatus() string { @@ -8335,25 +8202,22 @@ func (x *InstagramReplyResponse) GetPlatform() string { // 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TikTokReplyResponse) Reset() { *x = TikTokReplyResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[84] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TikTokReplyResponse) String() string { @@ -8363,8 +8227,8 @@ func (x *TikTokReplyResponse) String() string { func (*TikTokReplyResponse) ProtoMessage() {} func (x *TikTokReplyResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[84] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[86] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8376,7 +8240,7 @@ func (x *TikTokReplyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use TikTokReplyResponse.ProtoReflect.Descriptor instead. func (*TikTokReplyResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{84} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{86} } func (x *TikTokReplyResponse) GetStatus() string { @@ -8423,26 +8287,23 @@ func (x *TikTokReplyResponse) GetVideoId() string { // 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *BlueskyReplyResponse) Reset() { *x = BlueskyReplyResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[85] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BlueskyReplyResponse) String() string { @@ -8452,8 +8313,8 @@ func (x *BlueskyReplyResponse) String() string { func (*BlueskyReplyResponse) ProtoMessage() {} func (x *BlueskyReplyResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[85] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[87] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8465,7 +8326,7 @@ func (x *BlueskyReplyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BlueskyReplyResponse.ProtoReflect.Descriptor instead. func (*BlueskyReplyResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{85} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{87} } func (x *BlueskyReplyResponse) GetStatus() string { @@ -8519,24 +8380,21 @@ func (x *BlueskyReplyResponse) GetPostUrl() string { // 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *FacebookReplyResponse) Reset() { *x = FacebookReplyResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[86] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FacebookReplyResponse) String() string { @@ -8546,8 +8404,8 @@ func (x *FacebookReplyResponse) String() string { func (*FacebookReplyResponse) ProtoMessage() {} func (x *FacebookReplyResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[86] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[88] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8559,7 +8417,7 @@ func (x *FacebookReplyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use FacebookReplyResponse.ProtoReflect.Descriptor instead. func (*FacebookReplyResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{86} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{88} } func (x *FacebookReplyResponse) GetStatus() string { @@ -8599,24 +8457,21 @@ func (x *FacebookReplyResponse) GetPlatform() string { // 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LinkedInReplyResponse) Reset() { *x = LinkedInReplyResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[87] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[89] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LinkedInReplyResponse) String() string { @@ -8626,8 +8481,8 @@ func (x *LinkedInReplyResponse) String() string { func (*LinkedInReplyResponse) ProtoMessage() {} func (x *LinkedInReplyResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[87] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[89] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8639,7 +8494,7 @@ func (x *LinkedInReplyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use LinkedInReplyResponse.ProtoReflect.Descriptor instead. func (*LinkedInReplyResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{87} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{89} } func (x *LinkedInReplyResponse) GetStatus() string { @@ -8679,25 +8534,22 @@ func (x *LinkedInReplyResponse) GetPlatform() string { // 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TwitterReplyResponse) Reset() { *x = TwitterReplyResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[88] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TwitterReplyResponse) String() string { @@ -8707,8 +8559,8 @@ func (x *TwitterReplyResponse) String() string { func (*TwitterReplyResponse) ProtoMessage() {} func (x *TwitterReplyResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[88] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[90] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8720,7 +8572,7 @@ func (x *TwitterReplyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use TwitterReplyResponse.ProtoReflect.Descriptor instead. func (*TwitterReplyResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{88} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{90} } func (x *TwitterReplyResponse) GetStatus() string { @@ -8767,24 +8619,21 @@ func (x *TwitterReplyResponse) GetPostUrl() string { // 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *YouTubeReplyResponse) Reset() { *x = YouTubeReplyResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[89] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *YouTubeReplyResponse) String() string { @@ -8794,8 +8643,8 @@ func (x *YouTubeReplyResponse) String() string { func (*YouTubeReplyResponse) ProtoMessage() {} func (x *YouTubeReplyResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[89] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[91] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8807,7 +8656,7 @@ func (x *YouTubeReplyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use YouTubeReplyResponse.ProtoReflect.Descriptor instead. func (*YouTubeReplyResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{89} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{91} } func (x *YouTubeReplyResponse) GetStatus() string { @@ -8847,10 +8696,7 @@ func (x *YouTubeReplyResponse) GetPlatform() string { // 回复评论响应 type ReplyCommentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` 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"` @@ -8860,20 +8706,20 @@ type ReplyCommentResponse struct { 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"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReplyCommentResponse) Reset() { *x = ReplyCommentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[90] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[92] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReplyCommentResponse) String() string { @@ -8883,8 +8729,8 @@ func (x *ReplyCommentResponse) String() string { func (*ReplyCommentResponse) ProtoMessage() {} func (x *ReplyCommentResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[90] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[92] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8896,7 +8742,7 @@ func (x *ReplyCommentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplyCommentResponse.ProtoReflect.Descriptor instead. func (*ReplyCommentResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{90} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{92} } func (x *ReplyCommentResponse) GetStatus() string { @@ -8992,22 +8838,19 @@ func (x *ReplyCommentResponse) GetYoutube() *YouTubeReplyResponse { // 获取帖子分析数据请求 type GetPostAnalyticsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *GetPostAnalyticsRequest) Reset() { *x = GetPostAnalyticsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[91] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[93] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetPostAnalyticsRequest) String() string { @@ -9017,8 +8860,8 @@ func (x *GetPostAnalyticsRequest) String() string { func (*GetPostAnalyticsRequest) ProtoMessage() {} func (x *GetPostAnalyticsRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[91] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[93] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9030,7 +8873,7 @@ func (x *GetPostAnalyticsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPostAnalyticsRequest.ProtoReflect.Descriptor instead. func (*GetPostAnalyticsRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{91} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{93} } func (x *GetPostAnalyticsRequest) GetId() string { @@ -9056,23 +8899,20 @@ func (x *GetPostAnalyticsRequest) GetProfileKey() string { // 通过 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetPostAnalyticsBySocialIDRequest) Reset() { *x = GetPostAnalyticsBySocialIDRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[92] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[94] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetPostAnalyticsBySocialIDRequest) String() string { @@ -9082,8 +8922,8 @@ func (x *GetPostAnalyticsBySocialIDRequest) String() string { func (*GetPostAnalyticsBySocialIDRequest) ProtoMessage() {} func (x *GetPostAnalyticsBySocialIDRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[92] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[94] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9095,7 +8935,7 @@ func (x *GetPostAnalyticsBySocialIDRequest) ProtoReflect() protoreflect.Message // Deprecated: Use GetPostAnalyticsBySocialIDRequest.ProtoReflect.Descriptor instead. func (*GetPostAnalyticsBySocialIDRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{92} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{94} } func (x *GetPostAnalyticsBySocialIDRequest) GetId() string { @@ -9128,33 +8968,30 @@ func (x *GetPostAnalyticsBySocialIDRequest) GetProfileKey() string { // 获取帖子分析数据响应(使用 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"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetPostAnalyticsResponse) Reset() { *x = GetPostAnalyticsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[93] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetPostAnalyticsResponse) String() string { @@ -9164,8 +9001,8 @@ func (x *GetPostAnalyticsResponse) String() string { func (*GetPostAnalyticsResponse) ProtoMessage() {} func (x *GetPostAnalyticsResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[93] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[95] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9177,7 +9014,7 @@ func (x *GetPostAnalyticsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPostAnalyticsResponse.ProtoReflect.Descriptor instead. func (*GetPostAnalyticsResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{93} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{95} } func (x *GetPostAnalyticsResponse) GetStatus() string { @@ -9273,21 +9110,18 @@ func (x *GetPostAnalyticsResponse) GetYoutube() string { // 获取社交网络分析数据请求 type GetSocialAnalyticsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Platforms []string `protobuf:"bytes,1,rep,name=platforms,proto3" json:"platforms"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` 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"` + sizeCache protoimpl.SizeCache } func (x *GetSocialAnalyticsRequest) Reset() { *x = GetSocialAnalyticsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[94] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSocialAnalyticsRequest) String() string { @@ -9297,8 +9131,8 @@ func (x *GetSocialAnalyticsRequest) String() string { func (*GetSocialAnalyticsRequest) ProtoMessage() {} func (x *GetSocialAnalyticsRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[94] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[96] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9310,7 +9144,7 @@ func (x *GetSocialAnalyticsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSocialAnalyticsRequest.ProtoReflect.Descriptor instead. func (*GetSocialAnalyticsRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{94} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{96} } func (x *GetSocialAnalyticsRequest) GetPlatforms() []string { @@ -9329,33 +9163,30 @@ func (x *GetSocialAnalyticsRequest) GetProfileKey() string { // 获取社交网络分析数据响应(使用 JSON 字符串存储复杂的平台数据) type GetSocialAnalyticsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + state protoimpl.MessageState `protogen:"open.v1"` + 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"` + 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetSocialAnalyticsResponse) Reset() { *x = GetSocialAnalyticsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[95] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSocialAnalyticsResponse) String() string { @@ -9365,8 +9196,8 @@ func (x *GetSocialAnalyticsResponse) String() string { func (*GetSocialAnalyticsResponse) ProtoMessage() {} func (x *GetSocialAnalyticsResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[95] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[97] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9378,7 +9209,7 @@ func (x *GetSocialAnalyticsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSocialAnalyticsResponse.ProtoReflect.Descriptor instead. func (*GetSocialAnalyticsResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{95} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{97} } func (x *GetSocialAnalyticsResponse) GetStatus() string { @@ -9474,24 +9305,21 @@ func (x *GetSocialAnalyticsResponse) GetYoutube() string { // AutoHashtagsRequest 自动生成标签请求参数 type AutoHashtagsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *AutoHashtagsRequest) Reset() { *x = AutoHashtagsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[96] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[98] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AutoHashtagsRequest) String() string { @@ -9501,8 +9329,8 @@ func (x *AutoHashtagsRequest) String() string { func (*AutoHashtagsRequest) ProtoMessage() {} func (x *AutoHashtagsRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[96] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[98] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9514,7 +9342,7 @@ func (x *AutoHashtagsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AutoHashtagsRequest.ProtoReflect.Descriptor instead. func (*AutoHashtagsRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{96} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{98} } func (x *AutoHashtagsRequest) GetPost() string { @@ -9554,24 +9382,21 @@ func (x *AutoHashtagsRequest) GetProfileKey() string { // AutoHashtagsResponse 自动生成标签返回结果 type AutoHashtagsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *AutoHashtagsResponse) Reset() { *x = AutoHashtagsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[97] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[99] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AutoHashtagsResponse) String() string { @@ -9581,8 +9406,8 @@ func (x *AutoHashtagsResponse) String() string { func (*AutoHashtagsResponse) ProtoMessage() {} func (x *AutoHashtagsResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[97] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[99] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9594,7 +9419,7 @@ func (x *AutoHashtagsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AutoHashtagsResponse.ProtoReflect.Descriptor instead. func (*AutoHashtagsResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{97} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{99} } func (x *AutoHashtagsResponse) GetPost() string { @@ -9634,21 +9459,18 @@ func (x *AutoHashtagsResponse) GetMessage() string { // CheckBannedHashtagRequest 查看被禁用标签请求 type CheckBannedHashtagRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Hashtag string `protobuf:"bytes,1,opt,name=hashtag,proto3" json:"hashtag"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` 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"` + sizeCache protoimpl.SizeCache } func (x *CheckBannedHashtagRequest) Reset() { *x = CheckBannedHashtagRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[98] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[100] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CheckBannedHashtagRequest) String() string { @@ -9658,8 +9480,8 @@ func (x *CheckBannedHashtagRequest) String() string { func (*CheckBannedHashtagRequest) ProtoMessage() {} func (x *CheckBannedHashtagRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[98] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[100] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9671,7 +9493,7 @@ func (x *CheckBannedHashtagRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckBannedHashtagRequest.ProtoReflect.Descriptor instead. func (*CheckBannedHashtagRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{98} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{100} } func (x *CheckBannedHashtagRequest) GetHashtag() string { @@ -9690,25 +9512,22 @@ func (x *CheckBannedHashtagRequest) GetProfileKey() string { // CheckBannedHashtagResponse 查看被禁用标签返回结果 type CheckBannedHashtagResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *CheckBannedHashtagResponse) Reset() { *x = CheckBannedHashtagResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[99] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CheckBannedHashtagResponse) String() string { @@ -9718,8 +9537,8 @@ func (x *CheckBannedHashtagResponse) String() string { func (*CheckBannedHashtagResponse) ProtoMessage() {} func (x *CheckBannedHashtagResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[99] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[101] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9731,7 +9550,7 @@ func (x *CheckBannedHashtagResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckBannedHashtagResponse.ProtoReflect.Descriptor instead. func (*CheckBannedHashtagResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{99} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{101} } func (x *CheckBannedHashtagResponse) GetHashtag() string { @@ -9778,21 +9597,18 @@ func (x *CheckBannedHashtagResponse) GetMessage() string { // HashtagRecommendation 单条推荐标签信息 type HashtagRecommendation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ViewCount int64 `protobuf:"varint,1,opt,name=viewCount,proto3" json:"viewCount"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` 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"` + sizeCache protoimpl.SizeCache } func (x *HashtagRecommendation) Reset() { *x = HashtagRecommendation{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[100] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[102] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HashtagRecommendation) String() string { @@ -9802,8 +9618,8 @@ func (x *HashtagRecommendation) String() string { func (*HashtagRecommendation) ProtoMessage() {} func (x *HashtagRecommendation) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[100] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[102] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9815,7 +9631,7 @@ func (x *HashtagRecommendation) ProtoReflect() protoreflect.Message { // Deprecated: Use HashtagRecommendation.ProtoReflect.Descriptor instead. func (*HashtagRecommendation) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{100} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{102} } func (x *HashtagRecommendation) GetViewCount() int64 { @@ -9834,21 +9650,18 @@ func (x *HashtagRecommendation) GetName() string { // RecommendHashtagsRequest 推荐话题标签请求 type RecommendHashtagsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` 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"` + sizeCache protoimpl.SizeCache } func (x *RecommendHashtagsRequest) Reset() { *x = RecommendHashtagsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[101] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RecommendHashtagsRequest) String() string { @@ -9858,8 +9671,8 @@ func (x *RecommendHashtagsRequest) String() string { func (*RecommendHashtagsRequest) ProtoMessage() {} func (x *RecommendHashtagsRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[101] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[103] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9871,7 +9684,7 @@ func (x *RecommendHashtagsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RecommendHashtagsRequest.ProtoReflect.Descriptor instead. func (*RecommendHashtagsRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{101} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{103} } func (x *RecommendHashtagsRequest) GetKeyword() string { @@ -9890,25 +9703,22 @@ func (x *RecommendHashtagsRequest) GetProfileKey() string { // RecommendHashtagsResponse 推荐话题标签返回结果 type RecommendHashtagsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RecommendHashtagsResponse) Reset() { *x = RecommendHashtagsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[102] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[104] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RecommendHashtagsResponse) String() string { @@ -9918,8 +9728,8 @@ func (x *RecommendHashtagsResponse) String() string { func (*RecommendHashtagsResponse) ProtoMessage() {} func (x *RecommendHashtagsResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[102] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[104] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9931,7 +9741,7 @@ func (x *RecommendHashtagsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RecommendHashtagsResponse.ProtoReflect.Descriptor instead. func (*RecommendHashtagsResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{102} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{104} } func (x *RecommendHashtagsResponse) GetKeyword() string { @@ -9978,22 +9788,19 @@ func (x *RecommendHashtagsResponse) GetMessage() string { // SearchHashtagsRequest 搜索话题标签请求 type SearchHashtagsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *SearchHashtagsRequest) Reset() { *x = SearchHashtagsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[103] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[105] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SearchHashtagsRequest) String() string { @@ -10003,8 +9810,8 @@ func (x *SearchHashtagsRequest) String() string { func (*SearchHashtagsRequest) ProtoMessage() {} func (x *SearchHashtagsRequest) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[103] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[105] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10016,7 +9823,7 @@ func (x *SearchHashtagsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchHashtagsRequest.ProtoReflect.Descriptor instead. func (*SearchHashtagsRequest) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{103} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{105} } func (x *SearchHashtagsRequest) GetKeyword() string { @@ -10042,21 +9849,18 @@ func (x *SearchHashtagsRequest) GetProfileKey() string { // SearchHashtagInfo 单个话题标签的基本信息 type SearchHashtagInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` 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"` + sizeCache protoimpl.SizeCache } func (x *SearchHashtagInfo) Reset() { *x = SearchHashtagInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[104] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[106] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SearchHashtagInfo) String() string { @@ -10066,8 +9870,8 @@ func (x *SearchHashtagInfo) String() string { func (*SearchHashtagInfo) ProtoMessage() {} func (x *SearchHashtagInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[104] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[106] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10079,7 +9883,7 @@ func (x *SearchHashtagInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchHashtagInfo.ProtoReflect.Descriptor instead. func (*SearchHashtagInfo) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{104} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{106} } func (x *SearchHashtagInfo) GetId() string { @@ -10098,20 +9902,17 @@ func (x *SearchHashtagInfo) GetName() string { // SearchHashtagChild 搜索结果中 children.data 的元素 type SearchHashtagChild struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + sizeCache protoimpl.SizeCache } func (x *SearchHashtagChild) Reset() { *x = SearchHashtagChild{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[105] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SearchHashtagChild) String() string { @@ -10121,8 +9922,8 @@ func (x *SearchHashtagChild) String() string { func (*SearchHashtagChild) ProtoMessage() {} func (x *SearchHashtagChild) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[105] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[107] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10134,7 +9935,7 @@ func (x *SearchHashtagChild) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchHashtagChild.ProtoReflect.Descriptor instead. func (*SearchHashtagChild) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{105} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{107} } func (x *SearchHashtagChild) GetId() string { @@ -10146,20 +9947,17 @@ func (x *SearchHashtagChild) GetId() string { // SearchHashtagChildren 搜索结果中的 children 对象 type SearchHashtagChildren struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []*SearchHashtagChild `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` unknownFields protoimpl.UnknownFields - - Data []*SearchHashtagChild `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` + sizeCache protoimpl.SizeCache } func (x *SearchHashtagChildren) Reset() { *x = SearchHashtagChildren{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[106] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SearchHashtagChildren) String() string { @@ -10169,8 +9967,8 @@ func (x *SearchHashtagChildren) String() string { func (*SearchHashtagChildren) ProtoMessage() {} func (x *SearchHashtagChildren) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[106] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[108] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10182,7 +9980,7 @@ func (x *SearchHashtagChildren) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchHashtagChildren.ProtoReflect.Descriptor instead. func (*SearchHashtagChildren) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{106} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{108} } func (x *SearchHashtagChildren) GetData() []*SearchHashtagChild { @@ -10194,10 +9992,7 @@ func (x *SearchHashtagChildren) GetData() []*SearchHashtagChild { // SearchHashtagMedia 搜索结果中的单条 Instagram 媒体信息 type SearchHashtagMedia struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` 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"` @@ -10207,15 +10002,15 @@ type SearchHashtagMedia struct { 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"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SearchHashtagMedia) Reset() { *x = SearchHashtagMedia{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[107] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SearchHashtagMedia) String() string { @@ -10225,8 +10020,8 @@ func (x *SearchHashtagMedia) String() string { func (*SearchHashtagMedia) ProtoMessage() {} func (x *SearchHashtagMedia) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[107] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[109] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10238,7 +10033,7 @@ func (x *SearchHashtagMedia) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchHashtagMedia.ProtoReflect.Descriptor instead. func (*SearchHashtagMedia) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{107} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{109} } func (x *SearchHashtagMedia) GetCaption() string { @@ -10306,28 +10101,25 @@ func (x *SearchHashtagMedia) GetTimestamp() string { // SearchHashtagsResponse 搜索话题标签响应 type SearchHashtagsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + 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"` 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"` + sizeCache protoimpl.SizeCache } func (x *SearchHashtagsResponse) Reset() { *x = SearchHashtagsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pb_ayrshare_proto_msgTypes[108] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_pb_ayrshare_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SearchHashtagsResponse) String() string { @@ -10337,8 +10129,8 @@ func (x *SearchHashtagsResponse) String() string { func (*SearchHashtagsResponse) ProtoMessage() {} func (x *SearchHashtagsResponse) ProtoReflect() protoreflect.Message { - mi := &file_pb_ayrshare_proto_msgTypes[108] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_pb_ayrshare_proto_msgTypes[110] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10350,7 +10142,7 @@ func (x *SearchHashtagsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchHashtagsResponse.ProtoReflect.Descriptor instead. func (*SearchHashtagsResponse) Descriptor() ([]byte, []int) { - return file_pb_ayrshare_proto_rawDescGZIP(), []int{108} + return file_pb_ayrshare_proto_rawDescGZIP(), []int{110} } func (x *SearchHashtagsResponse) GetStatus() string { @@ -10418,1802 +10210,1066 @@ func (x *SearchHashtagsResponse) GetMessage() string { var File_pb_ayrshare_proto protoreflect.FileDescriptor -var file_pb_ayrshare_proto_rawDesc = []byte{ - 0x0a, 0x11, 0x70, 0x62, 0x2f, 0x61, 0x79, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x1a, 0x13, 0x70, - 0x62, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x12, 0x70, 0x62, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x41, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, - 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0c, 0x0a, - 0x01, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x79, 0x22, 0x93, 0x03, 0x0a, 0x10, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, - 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x65, 0x6c, 0x73, 0x46, 0x65, 0x65, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x65, - 0x6c, 0x73, 0x46, 0x65, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x6f, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, - 0x69, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x4f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x74, 0x68, 0x75, - 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, - 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x74, 0x54, 0x65, 0x78, - 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x74, 0x54, 0x65, 0x78, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x12, 0x2d, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x54, 0x61, 0x67, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x12, - 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x52, - 0x65, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, - 0xdd, 0x03, 0x0a, 0x0d, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x4d, 0x75, 0x73, 0x69, - 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, - 0x4d, 0x75, 0x73, 0x69, 0x63, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x65, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x65, - 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74, 0x12, 0x24, 0x0a, - 0x0d, 0x69, 0x73, 0x41, 0x49, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x41, 0x49, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x42, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, - 0x73, 0x42, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, - 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x42, 0x72, 0x61, 0x6e, 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x42, 0x72, 0x61, 0x6e, 0x64, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x63, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x43, 0x6f, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, - 0x4e, 0x61, 0x69, 0x6c, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x18, 0x0c, - 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, - 0xe8, 0x03, 0x0a, 0x0e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x6d, 0x61, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x4b, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x6d, 0x61, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x4b, 0x69, 0x64, 0x73, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, - 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, - 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, - 0x6f, 0x72, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x68, 0x6f, 0x72, - 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x53, 0x79, - 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x16, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x53, 0x79, 0x6e, 0x74, - 0x68, 0x65, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x41, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x54, - 0x69, 0x74, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, - 0x75, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x75, - 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x75, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x54, 0x69, 0x74, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, - 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x2a, 0x0a, 0x0e, 0x42, 0x6c, - 0x75, 0x65, 0x73, 0x6b, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x61, 0x6c, 0x74, 0x54, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, - 0x6c, 0x74, 0x54, 0x65, 0x78, 0x74, 0x22, 0x8f, 0x05, 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, 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, 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, 0x12, 0x40, 0x0a, 0x0e, 0x79, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, - 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0e, 0x79, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, - 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, - 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0e, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, - 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 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, 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, 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, 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, 0xc5, 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, - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x70, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 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, -} +const file_pb_ayrshare_proto_rawDesc = "" + + "\n" + + "\x11pb/ayrshare.proto\x12\baryshare\x1a\x13pb/descriptor.proto\x1a\x12pb/validator.proto\"A\n" + + "\aUserTag\x12\x1a\n" + + "\busername\x18\x01 \x01(\tR\busername\x12\f\n" + + "\x01x\x18\x02 \x01(\x01R\x01x\x12\f\n" + + "\x01y\x18\x03 \x01(\x01R\x01y\"\x93\x03\n" + + "\x10InstagramOptions\x12&\n" + + "\x0eshareReelsFeed\x18\x01 \x01(\bR\x0eshareReelsFeed\x12\x1c\n" + + "\taudioName\x18\x02 \x01(\tR\taudioName\x12\x1c\n" + + "\tthumbNail\x18\x03 \x01(\tR\tthumbNail\x12(\n" + + "\x0fthumbNailOffset\x18\x04 \x01(\x05R\x0fthumbNailOffset\x12\x18\n" + + "\astories\x18\x05 \x01(\bR\astories\x12\x18\n" + + "\aaltText\x18\x06 \x03(\tR\aaltText\x12\x1e\n" + + "\n" + + "locationId\x18\a \x01(\tR\n" + + "locationId\x12-\n" + + "\buserTags\x18\b \x03(\v2\x11.aryshare.UserTagR\buserTags\x12$\n" + + "\rcollaborators\x18\t \x03(\tR\rcollaborators\x12\x1e\n" + + "\n" + + "autoResize\x18\n" + + " \x01(\bR\n" + + "autoResize\x12(\n" + + "\x0fdisableComments\x18\v \x01(\bR\x0fdisableComments\"\xdd\x03\n" + + "\rTikTokOptions\x12\"\n" + + "\fautoAddMusic\x18\x01 \x01(\bR\fautoAddMusic\x12(\n" + + "\x0fdisableComments\x18\x02 \x01(\bR\x0fdisableComments\x12 \n" + + "\vdisableDuet\x18\x03 \x01(\bR\vdisableDuet\x12$\n" + + "\rdisableStitch\x18\x04 \x01(\bR\rdisableStitch\x12\x14\n" + + "\x05draft\x18\x05 \x01(\bR\x05draft\x12$\n" + + "\risAIGenerated\x18\x06 \x01(\bR\risAIGenerated\x12*\n" + + "\x10isBrandedContent\x18\a \x01(\bR\x10isBrandedContent\x12&\n" + + "\x0eisBrandOrganic\x18\b \x01(\bR\x0eisBrandOrganic\x12(\n" + + "\x0fimageCoverIndex\x18\t \x01(\x05R\x0fimageCoverIndex\x12\x14\n" + + "\x05title\x18\n" + + " \x01(\tR\x05title\x12(\n" + + "\x0fthumbNailOffset\x18\v \x01(\x05R\x0fthumbNailOffset\x12\x1c\n" + + "\tthumbNail\x18\f \x01(\tR\tthumbNail\x12\x1e\n" + + "\n" + + "visibility\x18\r \x01(\tR\n" + + "visibility\"\xe8\x03\n" + + "\x0eYouTubeOptions\x12\x14\n" + + "\x05title\x18\x01 \x01(\tR\x05title\x12\x1e\n" + + "\n" + + "visibility\x18\x02 \x01(\tR\n" + + "visibility\x12\x12\n" + + "\x04tags\x18\x03 \x03(\tR\x04tags\x12\x1e\n" + + "\n" + + "categoryId\x18\x04 \x01(\x05R\n" + + "categoryId\x12 \n" + + "\vmadeForKids\x18\x05 \x01(\bR\vmadeForKids\x12\x1c\n" + + "\tthumbNail\x18\x06 \x01(\tR\tthumbNail\x12\x1e\n" + + "\n" + + "playlistId\x18\a \x01(\tR\n" + + "playlistId\x12,\n" + + "\x11notifySubscribers\x18\b \x01(\bR\x11notifySubscribers\x12\x16\n" + + "\x06shorts\x18\t \x01(\bR\x06shorts\x126\n" + + "\x16containsSyntheticMedia\x18\n" + + " \x01(\bR\x16containsSyntheticMedia\x12\x1c\n" + + "\tpublishAt\x18\v \x01(\tR\tpublishAt\x12 \n" + + "\vsubTitleUrl\x18\f \x01(\tR\vsubTitleUrl\x12*\n" + + "\x10subTitleLanguage\x18\r \x01(\tR\x10subTitleLanguage\x12\"\n" + + "\fsubTitleName\x18\x0e \x01(\tR\fsubTitleName\"*\n" + + "\x0eBlueskyOptions\x12\x18\n" + + "\aaltText\x18\x06 \x03(\tR\aaltText\"\x8f\x05\n" + + "\vPostRequest\x122\n" + + "\x04post\x18\x01 \x01(\tB\x1e\xe2\xdf\x1f\x1a*\x16post内容不能为空X\x01R\x04post\x12I\n" + + "\tplatforms\x18\x02 \x03(\tB+\xe2\xdf\x1f'*!platforms平台列表不能为空X\x01`\x01R\tplatforms\x12\x1c\n" + + "\tmediaUrls\x18\x03 \x03(\tR\tmediaUrls\x12\x18\n" + + "\aisVideo\x18\x04 \x01(\bR\aisVideo\x12\"\n" + + "\fscheduleDate\x18\x05 \x01(\tR\fscheduleDate\x12,\n" + + "\x11validateScheduled\x18\x06 \x01(\bR\x11validateScheduled\x12\"\n" + + "\fshortenLinks\x18\a \x01(\bR\fshortenLinks\x12(\n" + + "\x0fdisableComments\x18\b \x01(\bR\x0fdisableComments\x12F\n" + + "\x10instagramOptions\x18\t \x01(\v2\x1a.aryshare.InstagramOptionsR\x10instagramOptions\x12=\n" + + "\rtikTokOptions\x18\n" + + " \x01(\v2\x17.aryshare.TikTokOptionsR\rtikTokOptions\x12\x1e\n" + + "\n" + + "profileKey\x18\v \x01(\tR\n" + + "profileKey\x12@\n" + + "\x0eyouTubeOptions\x18\f \x01(\v2\x18.aryshare.YouTubeOptionsR\x0eyouTubeOptions\x12@\n" + + "\x0eblueskyOptions\x18\r \x01(\v2\x18.aryshare.BlueskyOptionsR\x0eblueskyOptions\"\xa4\x02\n" + + "\x06PostId\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\x12\x10\n" + + "\x03cid\x18\x03 \x01(\tR\x03cid\x12\x18\n" + + "\apostUrl\x18\x04 \x01(\tR\apostUrl\x12\x1a\n" + + "\bplatform\x18\x05 \x01(\tR\bplatform\x12\x12\n" + + "\x04type\x18\x06 \x01(\tR\x04type\x12\x14\n" + + "\x05owner\x18\a \x01(\tR\x05owner\x12\x18\n" + + "\amediaId\x18\b \x01(\tR\amediaId\x12\x14\n" + + "\x05ended\x18\t \x01(\tR\x05ended\x12\x18\n" + + "\aidShare\x18\n" + + " \x01(\tR\aidShare\x12\x18\n" + + "\aisVideo\x18\v \x01(\bR\aisVideo\x12\x1c\n" + + "\tusedQuota\x18\f \x01(\x05R\tusedQuota\"\xe0\x01\n" + + "\bPostItem\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x16\n" + + "\x06errors\x18\x02 \x03(\tR\x06errors\x12*\n" + + "\apostIds\x18\x03 \x03(\v2\x10.aryshare.PostIdR\apostIds\x12\x0e\n" + + "\x02id\x18\x04 \x01(\tR\x02id\x12\x14\n" + + "\x05refId\x18\x05 \x01(\tR\x05refId\x12\"\n" + + "\fprofileTitle\x18\x06 \x01(\tR\fprofileTitle\x12\x12\n" + + "\x04post\x18\a \x01(\tR\x04post\x12\x1a\n" + + "\btikTokId\x18\b \x01(\tR\btikTokId\"\xc3\x01\n" + + "\fPostResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12(\n" + + "\x05posts\x18\x02 \x03(\v2\x12.aryshare.PostItemR\x05posts\x12\x16\n" + + "\x06errors\x18\x03 \x03(\tR\x06errors\x12*\n" + + "\apostIds\x18\x04 \x03(\v2\x10.aryshare.PostIdR\apostIds\x12\x0e\n" + + "\x02id\x18\x05 \x01(\tR\x02id\x12\x1d\n" + + "\visValidated\x18\x06 \x01(\bR\bvalidate\"^\n" + + "\x0eGetPostRequest\x12,\n" + + "\x02id\x18\x01 \x01(\tB\x1c\xe2\xdf\x1f\x18*\x14帖子ID不能为空X\x01R\x02id\x12\x1e\n" + + "\n" + + "profileKey\x18\x02 \x01(\tR\n" + + "profileKey\"\xfd\x02\n" + + "\x0fGetPostResponse\x12\x18\n" + + "\acreated\x18\x01 \x01(\tR\acreated\x12\x16\n" + + "\x06errors\x18\x02 \x03(\tR\x06errors\x12\x0e\n" + + "\x02id\x18\x03 \x01(\tR\x02id\x12\x1c\n" + + "\tmediaUrls\x18\x04 \x03(\tR\tmediaUrls\x12\x1c\n" + + "\tplatforms\x18\x05 \x03(\tR\tplatforms\x12\x12\n" + + "\x04post\x18\x06 \x01(\tR\x04post\x12*\n" + + "\apostIds\x18\a \x03(\v2\x10.aryshare.PostIdR\apostIds\x12\"\n" + + "\fprofileTitle\x18\b \x01(\tR\fprofileTitle\x12\x14\n" + + "\x05refId\x18\t \x01(\tR\x05refId\x12\"\n" + + "\fscheduleDate\x18\n" + + " \x01(\tR\fscheduleDate\x12\"\n" + + "\fshortenLinks\x18\v \x01(\bR\fshortenLinks\x12\x16\n" + + "\x06status\x18\f \x01(\tR\x06status\x12\x12\n" + + "\x04type\x18\r \x01(\tR\x04type\"\\\n" + + "\x0eGetUserRequest\x12\x1e\n" + + "\n" + + "profileKey\x18\x01 \x01(\tR\n" + + "profileKey\x12*\n" + + "\x10instagramDetails\x18\x02 \x01(\bR\x10instagramDetails\"[\n" + + "\tTimestamp\x12\x19\n" + + "\aseconds\x18\x01 \x01(\x03R\b_seconds\x12!\n" + + "\vnanoseconds\x18\x02 \x01(\x03R\f_nanoseconds\x12\x10\n" + + "\x03utc\x18\x03 \x01(\tR\x03utc\"z\n" + + "\fTwitterUsage\x12\"\n" + + "\fmonthlyUsage\x18\x01 \x01(\x05R\fmonthlyUsage\x12\"\n" + + "\fmonthlyLimit\x18\x02 \x01(\x05R\fmonthlyLimit\x12\"\n" + + "\fmonthlyReset\x18\x03 \x01(\tR\fmonthlyReset\"\xb5\x06\n" + + "\vDisplayName\x12\x18\n" + + "\acreated\x18\x01 \x01(\tR\acreated\x12 \n" + + "\vdisplayName\x18\x02 \x01(\tR\vdisplayName\x12\x0e\n" + + "\x02id\x18\x03 \x01(\tR\x02id\x12\x1a\n" + + "\bplatform\x18\x04 \x01(\tR\bplatform\x12\x1e\n" + + "\n" + + "profileUrl\x18\x05 \x01(\tR\n" + + "profileUrl\x12\x1c\n" + + "\tuserImage\x18\x06 \x01(\tR\tuserImage\x12\x1a\n" + + "\busername\x18\a \x01(\tR\busername\x12 \n" + + "\vdescription\x18\b \x01(\tR\vdescription\x12(\n" + + "\x0fmessagingActive\x18\t \x01(\bR\x0fmessagingActive\x12\x1a\n" + + "\bpageName\x18\n" + + " \x01(\tR\bpageName\x12\x16\n" + + "\x06userId\x18\v \x01(\tR\x06userId\x12\x18\n" + + "\amapsUrl\x18\f \x01(\tR\amapsUrl\x12\x18\n" + + "\aplaceId\x18\r \x01(\tR\aplaceId\x12\x1c\n" + + "\treviewUrl\x18\x0e \x01(\tR\treviewUrl\x12\x12\n" + + "\x04igId\x18\x0f \x01(\tR\x04igId\x12\x12\n" + + "\x04type\x18\x10 \x01(\tR\x04type\x12\x1c\n" + + "\tusedQuota\x18\x11 \x01(\x05R\tusedQuota\x122\n" + + "\x14refreshDaysRemaining\x18\x12 \x01(\x05R\x14refreshDaysRemaining\x12(\n" + + "\x0frefreshRequired\x18\x13 \x01(\tR\x0frefreshRequired\x12B\n" + + "\x1cisEligibleForGeoRestrictions\x18\x14 \x01(\bR\x1cisEligibleForGeoRestrictions\x12\x1e\n" + + "\n" + + "isVerified\x18\x15 \x01(\bR\n" + + "isVerified\x12*\n" + + "\x10subscriptionType\x18\x16 \x01(\tR\x10subscriptionType\x12:\n" + + "\ftwitterUsage\x18\x17 \x01(\v2\x16.aryshare.TwitterUsageR\ftwitterUsage\x12\"\n" + + "\fverifiedType\x18\x18 \x01(\tR\fverifiedType\"\x85\x05\n" + + "\x0fGetUserResponse\x122\n" + + "\x14activeSocialAccounts\x18\x01 \x03(\tR\x14activeSocialAccounts\x12-\n" + + "\acreated\x18\x02 \x01(\v2\x13.aryshare.TimestampR\acreated\x129\n" + + "\fdisplayNames\x18\x03 \x03(\v2\x15.aryshare.DisplayNameR\fdisplayNames\x12\x14\n" + + "\x05email\x18\x04 \x01(\tR\x05email\x12 \n" + + "\vlastApiCall\x18\x05 \x01(\tR\vlastApiCall\x12L\n" + + "!messagingConversationMonthlyCount\x18\x06 \x01(\x05R!messagingConversationMonthlyCount\x12*\n" + + "\x10messagingEnabled\x18\a \x01(\bR\x10messagingEnabled\x12(\n" + + "\x0fmonthlyApiCalls\x18\b \x01(\x05R\x0fmonthlyApiCalls\x12*\n" + + "\x10monthlyPostCount\x18\t \x01(\x05R\x10monthlyPostCount\x12*\n" + + "\x10monthlyPostQuota\x18\n" + + " \x01(\x05R\x10monthlyPostQuota\x122\n" + + "\x14monthlyApiCallsQuota\x18\v \x01(\x05R\x14monthlyApiCallsQuota\x12\x14\n" + + "\x05refId\x18\f \x01(\tR\x05refId\x12\x14\n" + + "\x05title\x18\r \x01(\tR\x05title\x12 \n" + + "\vlastUpdated\x18\x0e \x01(\tR\vlastUpdated\x12\x1e\n" + + "\n" + + "nextUpdate\x18\x0f \x01(\tR\n" + + "nextUpdate\"\xb7\x02\n" + + "\x14CreateProfileRequest\x12/\n" + + "\x05title\x18\x01 \x01(\tB\x19\xe2\xdf\x1f\x15*\x11title不能为空X\x01R\x05title\x12(\n" + + "\x0fmessagingActive\x18\x02 \x01(\bR\x0fmessagingActive\x12$\n" + + "\rhideTopHeader\x18\x03 \x01(\bR\rhideTopHeader\x12\x1c\n" + + "\ttopHeader\x18\x04 \x01(\tR\ttopHeader\x12$\n" + + "\rdisableSocial\x18\x05 \x03(\tR\rdisableSocial\x12\x12\n" + + "\x04team\x18\x06 \x01(\bR\x04team\x12\x14\n" + + "\x05email\x18\a \x01(\tR\x05email\x12\x1c\n" + + "\tsubHeader\x18\b \x01(\tR\tsubHeader\x12\x12\n" + + "\x04tags\x18\t \x03(\tR\x04tags\"\xa5\x01\n" + + "\x15CreateProfileResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x14\n" + + "\x05title\x18\x02 \x01(\tR\x05title\x12\x14\n" + + "\x05refId\x18\x03 \x01(\tR\x05refId\x12\x1e\n" + + "\n" + + "profileKey\x18\x04 \x01(\tR\n" + + "profileKey\x12(\n" + + "\x0fmessagingActive\x18\x05 \x01(\bR\x0fmessagingActive\"\xc7\x02\n" + + "\x12GetProfilesRequest\x12\x14\n" + + "\x05title\x18\x01 \x01(\tR\x05title\x12\x14\n" + + "\x05refId\x18\x02 \x01(\tR\x05refId\x128\n" + + "\x17hasActiveSocialAccounts\x18\x03 \x01(\bR\x17hasActiveSocialAccounts\x12B\n" + + "\x1cincludesActiveSocialAccounts\x18\x04 \x03(\tR\x1cincludesActiveSocialAccounts\x12&\n" + + "\ractionLogBool\x18\x05 \x01(\bH\x00R\ractionLogBool\x12$\n" + + "\factionLogInt\x18\x06 \x01(\x05H\x00R\factionLogInt\x12\x14\n" + + "\x05limit\x18\a \x01(\x05R\x05limit\x12\x16\n" + + "\x06cursor\x18\b \x01(\tR\x06cursorB\v\n" + + "\tactionLog\"\x96\x02\n" + + "\vProfileItem\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x14\n" + + "\x05title\x18\x02 \x01(\tR\x05title\x12\"\n" + + "\fdisplayTitle\x18\x03 \x01(\tR\fdisplayTitle\x12-\n" + + "\acreated\x18\x04 \x01(\v2\x13.aryshare.TimestampR\acreated\x12\x1e\n" + + "\n" + + "createdUTC\x18\x05 \x01(\tR\n" + + "createdUTC\x12\x14\n" + + "\x05refId\x18\x06 \x01(\tR\x05refId\x122\n" + + "\x14activeSocialAccounts\x18\a \x03(\tR\x14activeSocialAccounts\x12\x1c\n" + + "\tsuspended\x18\b \x01(\bR\tsuspended\"\\\n" + + "\n" + + "Pagination\x12\x18\n" + + "\ahasMore\x18\x01 \x01(\bR\ahasMore\x12\x1e\n" + + "\n" + + "nextCursor\x18\x02 \x01(\tR\n" + + "nextCursor\x12\x14\n" + + "\x05limit\x18\x03 \x01(\x05R\x05limit\"\xd6\x01\n" + + "\x13GetProfilesResponse\x121\n" + + "\bprofiles\x18\x01 \x03(\v2\x15.aryshare.ProfileItemR\bprofiles\x12\x14\n" + + "\x05count\x18\x02 \x01(\x05R\x05count\x12 \n" + + "\vlastUpdated\x18\x03 \x01(\tR\vlastUpdated\x12\x1e\n" + + "\n" + + "nextUpdate\x18\x04 \x01(\tR\n" + + "nextUpdate\x124\n" + + "\n" + + "pagination\x18\x05 \x01(\v2\x14.aryshare.PaginationR\n" + + "pagination\"E\n" + + "\x05Email\x12\x0e\n" + + "\x02to\x18\x01 \x01(\tR\x02to\x12\x18\n" + + "\asubject\x18\x02 \x01(\tR\asubject\x12\x12\n" + + "\x04body\x18\x03 \x01(\tR\x04body\"\xdb\x02\n" + + "\x12GenerateJWTRequest\x12\x16\n" + + "\x06domain\x18\x01 \x01(\tR\x06domain\x12\x1e\n" + + "\n" + + "privateKey\x18\x02 \x01(\tR\n" + + "privateKey\x12>\n" + + "\n" + + "profileKey\x18\x03 \x01(\tB\x1e\xe2\xdf\x1f\x1a*\x16profileKey不能为空X\x01R\n" + + "profileKey\x12\x16\n" + + "\x06logout\x18\x04 \x01(\bR\x06logout\x12\x1a\n" + + "\bredirect\x18\x05 \x01(\tR\bredirect\x12$\n" + + "\rallowedSocial\x18\x06 \x03(\tR\rallowedSocial\x12\x16\n" + + "\x06verify\x18\a \x01(\bR\x06verify\x12\x16\n" + + "\x06base64\x18\b \x01(\bR\x06base64\x12\x1c\n" + + "\texpiresIn\x18\t \x01(\x05R\texpiresIn\x12%\n" + + "\x05email\x18\n" + + " \x01(\v2\x0f.aryshare.EmailR\x05email\"\xa7\x01\n" + + "\x13GenerateJWTResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x14\n" + + "\x05title\x18\x02 \x01(\tR\x05title\x12\x14\n" + + "\x05token\x18\x03 \x01(\tR\x05token\x12\x10\n" + + "\x03url\x18\x04 \x01(\tR\x03url\x12\x1c\n" + + "\temailSent\x18\x05 \x01(\bR\temailSent\x12\x1c\n" + + "\texpiresIn\x18\x06 \x01(\tR\texpiresIn\"v\n" + + "\x1aUnlinkSocialNetworkRequest\x128\n" + + "\bplatform\x18\x01 \x01(\tB\x1c\xe2\xdf\x1f\x18*\x14platform不能为空X\x01R\bplatform\x12\x1e\n" + + "\n" + + "profileKey\x18\x02 \x01(\tR\n" + + "profileKey\"g\n" + + "\x1bUnlinkSocialNetworkResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1a\n" + + "\bplatform\x18\x02 \x01(\tR\bplatform\x12\x14\n" + + "\x05refId\x18\x03 \x01(\tR\x05refId\"\x87\x01\n" + + "\rHistoryPostId\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\x12\x1a\n" + + "\bplatform\x18\x03 \x01(\tR\bplatform\x12\x18\n" + + "\apostUrl\x18\x04 \x01(\tR\apostUrl\x12\x18\n" + + "\aisVideo\x18\x05 \x01(\bR\aisVideo\"\xfb\x04\n" + + "\vHistoryItem\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04post\x18\x02 \x01(\tR\x04post\x12\x1c\n" + + "\tplatforms\x18\x03 \x03(\tR\tplatforms\x121\n" + + "\apostIds\x18\x04 \x03(\v2\x17.aryshare.HistoryPostIdR\apostIds\x12\x16\n" + + "\x06errors\x18\x05 \x03(\tR\x06errors\x12\x12\n" + + "\x04type\x18\x06 \x01(\tR\x04type\x12\x14\n" + + "\x05notes\x18\a \x01(\tR\x05notes\x12\x18\n" + + "\acreated\x18\b \x01(\tR\acreated\x12\x16\n" + + "\x06status\x18\t \x01(\tR\x06status\x127\n" + + "\fscheduleDate\x18\n" + + " \x01(\v2\x13.aryshare.TimestampR\fscheduleDate\x12\x1a\n" + + "\bapproved\x18\v \x01(\bR\bapproved\x12\x1e\n" + + "\n" + + "approvedBy\x18\f \x01(\tR\n" + + "approvedBy\x12\"\n" + + "\fapprovedDate\x18\r \x01(\tR\fapprovedDate\x12\x1e\n" + + "\n" + + "rejectedBy\x18\x0e \x01(\tR\n" + + "rejectedBy\x12\"\n" + + "\frejectedDate\x18\x0f \x01(\tR\frejectedDate\x12*\n" + + "\x10requiresApproval\x18\x10 \x01(\bR\x10requiresApproval\x12\"\n" + + "\fprofileTitle\x18\x11 \x01(\tR\fprofileTitle\x12\x14\n" + + "\x05refId\x18\x12 \x01(\tR\x05refId\x12\x1c\n" + + "\tmediaUrls\x18\x13 \x03(\tR\tmediaUrls\x12\"\n" + + "\fshortenLinks\x18\x14 \x01(\bR\fshortenLinks\"\x8b\x02\n" + + "\x11GetHistoryRequest\x12\x1c\n" + + "\tstartDate\x18\x01 \x01(\tR\tstartDate\x12\x18\n" + + "\aendDate\x18\x02 \x01(\tR\aendDate\x12\x14\n" + + "\x05limit\x18\x03 \x01(\x05R\x05limit\x12\x1c\n" + + "\tplatforms\x18\x04 \x03(\tR\tplatforms\x12\x1a\n" + + "\blastDays\x18\x05 \x01(\x05R\blastDays\x12\x16\n" + + "\x06status\x18\x06 \x01(\tR\x06status\x12\x12\n" + + "\x04type\x18\a \x01(\tR\x04type\x12\"\n" + + "\fautoRepostId\x18\b \x01(\tR\fautoRepostId\x12\x1e\n" + + "\n" + + "profileKey\x18\t \x01(\tR\n" + + "profileKey\"\xb3\x01\n" + + "\x12GetHistoryResponse\x12/\n" + + "\ahistory\x18\x01 \x03(\v2\x15.aryshare.HistoryItemR\ahistory\x12\x14\n" + + "\x05refId\x18\x02 \x01(\tR\x05refId\x12\x14\n" + + "\x05count\x18\x03 \x01(\x05R\x05count\x12 \n" + + "\vlastUpdated\x18\x04 \x01(\tR\vlastUpdated\x12\x1e\n" + + "\n" + + "nextUpdate\x18\x05 \x01(\tR\n" + + "nextUpdate\"\x8d\x01\n" + + "\x15GetHistoryByIdRequest\x12,\n" + + "\x02id\x18\x01 \x01(\tB\x1c\xe2\xdf\x1f\x18*\x14帖子ID不能为空X\x01R\x02id\x12&\n" + + "\x0esearchAllPosts\x18\x02 \x01(\bR\x0esearchAllPosts\x12\x1e\n" + + "\n" + + "profileKey\x18\x03 \x01(\tR\n" + + "profileKey\"\x90\x03\n" + + "\x16GetHistoryByIdResponse\x12\x12\n" + + "\x04tier\x18\x01 \x01(\tR\x04tier\x12\x16\n" + + "\x06status\x18\x02 \x01(\tR\x06status\x12\x1c\n" + + "\tmediaUrls\x18\x03 \x03(\tR\tmediaUrls\x121\n" + + "\apostIds\x18\x04 \x03(\v2\x17.aryshare.HistoryPostIdR\apostIds\x12\x0e\n" + + "\x02id\x18\x05 \x01(\tR\x02id\x12\x16\n" + + "\x06errors\x18\x06 \x03(\tR\x06errors\x12\x1c\n" + + "\tplatforms\x18\a \x03(\tR\tplatforms\x127\n" + + "\fscheduleDate\x18\b \x01(\v2\x13.aryshare.TimestampR\fscheduleDate\x12\x18\n" + + "\acreated\x18\t \x01(\tR\acreated\x12\"\n" + + "\fshortenLinks\x18\n" + + " \x01(\bR\fshortenLinks\x12\x12\n" + + "\x04post\x18\v \x01(\tR\x04post\x12\x14\n" + + "\x05notes\x18\f \x01(\tR\x05notes\x12\x12\n" + + "\x04type\x18\r \x01(\tR\x04type\"\x84\x01\n" + + "\fPlatformPost\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04post\x18\x02 \x01(\tR\x04post\x12\x18\n" + + "\apostUrl\x18\x03 \x01(\tR\apostUrl\x12\x18\n" + + "\acreated\x18\x04 \x01(\tR\acreated\x12\x1c\n" + + "\tcreatedAt\x18\x05 \x01(\tR\tcreatedAt\"{\n" + + "\x1bGetHistoryByPlatformRequest\x12<\n" + + "\bplatform\x18\x01 \x01(\tB \xe2\xdf\x1f\x1c*\x18平台名称不能为空X\x01R\bplatform\x12\x1e\n" + + "\n" + + "profileKey\x18\x02 \x01(\tR\n" + + "profileKey\"\xa6\x01\n" + + "\x1cGetHistoryByPlatformResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12,\n" + + "\x05posts\x18\x02 \x03(\v2\x16.aryshare.PlatformPostR\x05posts\x12 \n" + + "\vlastUpdated\x18\x03 \x01(\tR\vlastUpdated\x12\x1e\n" + + "\n" + + "nextUpdate\x18\x04 \x01(\tR\n" + + "nextUpdate\"\xe7\x01\n" + + "\x12SendMessageRequest\x126\n" + + "\bplatform\x18\x01 \x01(\tB\x1a\xe2\xdf\x1f\x16*\x12平台不能为空X\x01R\bplatform\x12A\n" + + "\vrecipientId\x18\x02 \x01(\tB\x1f\xe2\xdf\x1f\x1b*\x17接收者ID不能为空X\x01R\vrecipientId\x12\x18\n" + + "\amessage\x18\x03 \x01(\tR\amessage\x12\x1c\n" + + "\tmediaUrls\x18\x04 \x03(\tR\tmediaUrls\x12\x1e\n" + + "\n" + + "profileKey\x18\x05 \x01(\tR\n" + + "profileKey\"\xdb\x01\n" + + "\vMessageItem\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12 \n" + + "\vrecipientId\x18\x02 \x01(\tR\vrecipientId\x12\x1c\n" + + "\tmessageId\x18\x03 \x01(\tR\tmessageId\x12\x18\n" + + "\amessage\x18\x04 \x01(\tR\amessage\x12\x12\n" + + "\x04type\x18\x05 \x01(\tR\x04type\x12\x1a\n" + + "\bmediaUrl\x18\x06 \x01(\tR\bmediaUrl\x12\x16\n" + + "\x06action\x18\a \x01(\tR\x06action\x12\x12\n" + + "\x04code\x18\b \x01(\x05R\x04code\"\x96\x02\n" + + "\x13SendMessageResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12 \n" + + "\vrecipientId\x18\x02 \x01(\tR\vrecipientId\x12\x1c\n" + + "\tmessageId\x18\x03 \x01(\tR\tmessageId\x12\x18\n" + + "\amessage\x18\x04 \x01(\tR\amessage\x12\x12\n" + + "\x04type\x18\x05 \x01(\tR\x04type\x12\x1a\n" + + "\bmediaUrl\x18\x06 \x01(\tR\bmediaUrl\x12\x16\n" + + "\x06action\x18\a \x01(\tR\x06action\x12\x12\n" + + "\x04code\x18\b \x01(\x05R\x04code\x121\n" + + "\bmessages\x18\t \x03(\v2\x15.aryshare.MessageItemR\bmessages\"\xda\x01\n" + + "\x12GetMessagesRequest\x126\n" + + "\bplatform\x18\x01 \x01(\tB\x1a\xe2\xdf\x1f\x16*\x12平台不能为空X\x01R\bplatform\x12\x16\n" + + "\x06status\x18\x02 \x01(\tR\x06status\x12&\n" + + "\x0econversationId\x18\x03 \x01(\tR\x0econversationId\x12,\n" + + "\x11conversationsOnly\x18\x04 \x01(\bR\x11conversationsOnly\x12\x1e\n" + + "\n" + + "profileKey\x18\x05 \x01(\tR\n" + + "profileKey\"9\n" + + "\x11MessageAttachment\x12\x12\n" + + "\x04type\x18\x01 \x01(\tR\x04type\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\"x\n" + + "\x14MessageSenderDetails\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\x12\x18\n" + + "\apicture\x18\x03 \x01(\tR\apicture\x12\"\n" + + "\fprofileImage\x18\x04 \x01(\tR\fprofileImage\"W\n" + + "\x17MessageRecipientDetails\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\x12\x18\n" + + "\apicture\x18\x03 \x01(\tR\apicture\"?\n" + + "\x0fMessageReaction\x12\x16\n" + + "\x06userId\x18\x01 \x01(\tR\x06userId\x12\x14\n" + + "\x05emoji\x18\x02 \x01(\tR\x05emoji\"\x96\x04\n" + + "\x0fGetMessagesItem\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x1a\n" + + "\bsenderId\x18\x02 \x01(\tR\bsenderId\x12D\n" + + "\rsenderDetails\x18\x03 \x01(\v2\x1e.aryshare.MessageSenderDetailsR\rsenderDetails\x12 \n" + + "\vrecipientId\x18\x04 \x01(\tR\vrecipientId\x12M\n" + + "\x10recipientDetails\x18\x05 \x01(\v2!.aryshare.MessageRecipientDetailsR\x10recipientDetails\x12&\n" + + "\x0econversationId\x18\x06 \x01(\tR\x0econversationId\x12\x18\n" + + "\amessage\x18\a \x01(\tR\amessage\x12\x1a\n" + + "\bplatform\x18\b \x01(\tR\bplatform\x12\x16\n" + + "\x06action\x18\t \x01(\tR\x06action\x12\x18\n" + + "\acreated\x18\n" + + " \x01(\tR\acreated\x12\x18\n" + + "\aupdated\x18\v \x01(\tR\aupdated\x12=\n" + + "\vattachments\x18\f \x03(\v2\x1b.aryshare.MessageAttachmentR\vattachments\x127\n" + + "\treactions\x18\r \x03(\v2\x19.aryshare.MessageReactionR\treactions\"W\n" + + "\x17ConversationParticipant\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\x12\x18\n" + + "\apicture\x18\x03 \x01(\tR\apicture\"\x9f\x01\n" + + "\x12ConversationDetail\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12C\n" + + "\vparticipant\x18\x02 \x01(\v2!.aryshare.ConversationParticipantR\vparticipant\x12\x16\n" + + "\x06status\x18\x03 \x01(\tR\x06status\x12\x1c\n" + + "\twatermark\x18\x04 \x01(\x03R\twatermark\"\xe7\x02\n" + + "\x13GetMessagesResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x125\n" + + "\bmessages\x18\x02 \x03(\v2\x19.aryshare.GetMessagesItemR\bmessages\x12 \n" + + "\vlastUpdated\x18\x03 \x01(\tR\vlastUpdated\x12\x1e\n" + + "\n" + + "nextUpdate\x18\x04 \x01(\tR\n" + + "nextUpdate\x12(\n" + + "\x0fconversationIds\x18\x05 \x03(\tR\x0fconversationIds\x12P\n" + + "\x14conversationsDetails\x18\x06 \x03(\v2\x1c.aryshare.ConversationDetailR\x14conversationsDetails\x12\x16\n" + + "\x06action\x18\a \x01(\tR\x06action\x12\x12\n" + + "\x04code\x18\b \x01(\x05R\x04code\x12\x17\n" + + "\x06errMsg\x18\t \x01(\tR\amessage\"\xa8\x02\n" + + "\x12PostCommentRequest\x12&\n" + + "\x02id\x18\x01 \x01(\tB\x16\xe2\xdf\x1f\x12*\x0eid不能为空X\x01R\x02id\x125\n" + + "\acomment\x18\x02 \x01(\tB\x1b\xe2\xdf\x1f\x17*\x13comment不能为空X\x01R\acomment\x12I\n" + + "\tplatforms\x18\x03 \x03(\tB+\xe2\xdf\x1f'*!platforms平台列表不能为空X\x01`\x01R\tplatforms\x12*\n" + + "\x10searchPlatformId\x18\x04 \x01(\bR\x10searchPlatformId\x12\x1c\n" + + "\tmediaUrls\x18\x05 \x03(\tR\tmediaUrls\x12\x1e\n" + + "\n" + + "profileKey\x18\x06 \x01(\tR\n" + + "profileKey\"\x86\x01\n" + + "\x18InstagramCommentResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12\x18\n" + + "\acomment\x18\x03 \x01(\tR\acomment\x12\x1a\n" + + "\bplatform\x18\x04 \x01(\tR\bplatform\"\x9d\x01\n" + + "\x15TikTokCommentResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12\x18\n" + + "\acomment\x18\x03 \x01(\tR\acomment\x12\x1a\n" + + "\bplatform\x18\x04 \x01(\tR\bplatform\x12\x18\n" + + "\avideoId\x18\x05 \x01(\tR\avideoId\"\xb0\x01\n" + + "\x16BlueskyCommentResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12\x10\n" + + "\x03cid\x18\x03 \x01(\tR\x03cid\x12\x18\n" + + "\acomment\x18\x04 \x01(\tR\acomment\x12\x1a\n" + + "\bplatform\x18\x05 \x01(\tR\bplatform\x12\x18\n" + + "\apostUrl\x18\x06 \x01(\tR\apostUrl\"\x85\x01\n" + + "\x17FacebookCommentResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12\x18\n" + + "\acomment\x18\x03 \x01(\tR\acomment\x12\x1a\n" + + "\bplatform\x18\x04 \x01(\tR\bplatform\"\xa5\x01\n" + + "\x17LinkedInCommentResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12\x18\n" + + "\acomment\x18\x03 \x01(\tR\acomment\x12\x1e\n" + + "\n" + + "commentUrn\x18\x04 \x01(\tR\n" + + "commentUrn\x12\x1a\n" + + "\bplatform\x18\x05 \x01(\tR\bplatform\"\x82\x01\n" + + "\x16TwitterCommentResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12\x18\n" + + "\acomment\x18\x03 \x01(\tR\acomment\x12\x18\n" + + "\apostUrl\x18\x04 \x01(\tR\apostUrl\"\x84\x01\n" + + "\x16YouTubeCommentResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12\x18\n" + + "\acomment\x18\x03 \x01(\tR\acomment\x12\x1a\n" + + "\bplatform\x18\x04 \x01(\tR\bplatform\"\xc5\x01\n" + + "\rPlatformError\x12\x16\n" + + "\x06action\x18\x01 \x01(\tR\x06action\x12\x16\n" + + "\x06status\x18\x02 \x01(\tR\x06status\x12\x12\n" + + "\x04code\x18\x03 \x01(\x05R\x04code\x12\x18\n" + + "\amessage\x18\x04 \x01(\tR\amessage\x12\x1a\n" + + "\bplatform\x18\x05 \x01(\tR\bplatform\x12\x12\n" + + "\x04post\x18\x06 \x01(\tR\x04post\x12\x16\n" + + "\x06detail\x18\a \x01(\tR\x06detail\x12\x0e\n" + + "\x02id\x18\b \x01(\tR\x02id\"\xbc\x05\n" + + "\x13PostCommentResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentID\x18\x02 \x01(\tR\tcommentID\x12\x1f\n" + + "\fcommentIdAlt\x18\x03 \x01(\tR\tcommentId\x12\x0e\n" + + "\x02id\x18\x04 \x01(\tR\x02id\x12@\n" + + "\tinstagram\x18\x05 \x01(\v2\".aryshare.InstagramCommentResponseR\tinstagram\x127\n" + + "\x06tiktok\x18\x06 \x01(\v2\x1f.aryshare.TikTokCommentResponseR\x06tiktok\x12\x16\n" + + "\x06action\x18\a \x01(\tR\x06action\x12\x12\n" + + "\x04code\x18\b \x01(\x05R\x04code\x12\x18\n" + + "\amessage\x18\t \x01(\tR\amessage\x12\x1a\n" + + "\bplatform\x18\n" + + " \x01(\tR\bplatform\x12/\n" + + "\x06errors\x18\v \x03(\v2\x17.aryshare.PlatformErrorR\x06errors\x12:\n" + + "\abluesky\x18\f \x01(\v2 .aryshare.BlueskyCommentResponseR\abluesky\x12=\n" + + "\bfacebook\x18\r \x01(\v2!.aryshare.FacebookCommentResponseR\bfacebook\x12=\n" + + "\blinkedin\x18\x0e \x01(\v2!.aryshare.LinkedInCommentResponseR\blinkedin\x12:\n" + + "\atwitter\x18\x0f \x01(\v2 .aryshare.TwitterCommentResponseR\atwitter\x12:\n" + + "\ayoutube\x18\x10 \x01(\v2 .aryshare.YouTubeCommentResponseR\ayoutube\"[\n" + + "\x11GetCommentRequest\x12&\n" + + "\x02id\x18\x01 \x01(\tB\x16\xe2\xdf\x1f\x12*\x0eid不能为空X\x01R\x02id\x12\x1e\n" + + "\n" + + "profileKey\x18\x02 \x01(\tR\n" + + "profileKey\"O\n" + + "\rInstagramUser\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\x12\x1a\n" + + "\busername\x18\x03 \x01(\tR\busername\"#\n" + + "\x11InstagramUserInfo\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"\xc9\x03\n" + + "\x10InstagramComment\x12\x18\n" + + "\acomment\x18\x01 \x01(\tR\acomment\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12\x0e\n" + + "\x02id\x18\x03 \x01(\tR\x02id\x12\x18\n" + + "\acreated\x18\x04 \x01(\tR\acreated\x12+\n" + + "\x04from\x18\x05 \x01(\v2\x17.aryshare.InstagramUserR\x04from\x12\x16\n" + + "\x06hidden\x18\x06 \x01(\bR\x06hidden\x12\x1c\n" + + "\tlikeCount\x18\a \x01(\x05R\tlikeCount\x12\x1a\n" + + "\bparentId\x18\b \x01(\tR\bparentId\x12\x1a\n" + + "\bplatform\x18\t \x01(\tR\bplatform\x12\x16\n" + + "\x06postId\x18\n" + + " \x01(\tR\x06postId\x124\n" + + "\areplies\x18\v \x03(\v2\x1a.aryshare.InstagramCommentR\areplies\x12/\n" + + "\x04user\x18\f \x01(\v2\x1b.aryshare.InstagramUserInfoR\x04user\x12\x1a\n" + + "\buserName\x18\r \x01(\tR\buserName\x12\x1d\n" + + "\vusernameAlt\x18\x0e \x01(\tR\busername\"\xc4\x04\n" + + "\rTikTokComment\x12\x18\n" + + "\acomment\x18\x01 \x01(\tR\acomment\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12\x18\n" + + "\acreated\x18\x03 \x01(\tR\acreated\x12\x1e\n" + + "\n" + + "createTime\x18\x04 \x01(\tR\n" + + "createTime\x12 \n" + + "\vdisplayName\x18\x05 \x01(\tR\vdisplayName\x12\x14\n" + + "\x05liked\x18\x06 \x01(\bR\x05liked\x12\x14\n" + + "\x05likes\x18\a \x01(\x05R\x05likes\x12\x1c\n" + + "\tlikeCount\x18\b \x01(\x05R\tlikeCount\x12\x14\n" + + "\x05owner\x18\t \x01(\bR\x05owner\x12(\n" + + "\x0fparentCommentId\x18\n" + + " \x01(\tR\x0fparentCommentId\x12\x16\n" + + "\x06pinned\x18\v \x01(\bR\x06pinned\x12\x1a\n" + + "\bplatform\x18\f \x01(\tR\bplatform\x12(\n" + + "\x0fprofileImageUrl\x18\r \x01(\tR\x0fprofileImageUrl\x121\n" + + "\areplies\x18\x0e \x03(\v2\x17.aryshare.TikTokCommentR\areplies\x12\x16\n" + + "\x06status\x18\x0f \x01(\tR\x06status\x12\x16\n" + + "\x06userId\x18\x10 \x01(\tR\x06userId\x12\x1a\n" + + "\busername\x18\x11 \x01(\tR\busername\x12\x18\n" + + "\avideoId\x18\x12 \x01(\tR\avideoId\x12\x1e\n" + + "\n" + + "visibility\x18\x13 \x01(\tR\n" + + "visibility\"\xb4\x03\n" + + "\x0eBlueskyComment\x12\x18\n" + + "\acomment\x18\x01 \x01(\tR\acomment\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12\x18\n" + + "\acreated\x18\x03 \x01(\tR\acreated\x12 \n" + + "\vdisplayName\x18\x04 \x01(\tR\vdisplayName\x12\x1c\n" + + "\tlikeCount\x18\x05 \x01(\x05R\tlikeCount\x12\x1a\n" + + "\bplatform\x18\x06 \x01(\tR\bplatform\x12(\n" + + "\x0fprofileImageUrl\x18\a \x01(\tR\x0fprofileImageUrl\x12\x1e\n" + + "\n" + + "quoteCount\x18\b \x01(\x05R\n" + + "quoteCount\x122\n" + + "\areplies\x18\t \x03(\v2\x18.aryshare.BlueskyCommentR\areplies\x12\x1e\n" + + "\n" + + "replyCount\x18\n" + + " \x01(\x05R\n" + + "replyCount\x12\x18\n" + + "\areplyTo\x18\v \x01(\tR\areplyTo\x12 \n" + + "\vrepostCount\x18\f \x01(\x05R\vrepostCount\x12\x1a\n" + + "\buserName\x18\r \x01(\tR\buserName\"2\n" + + "\fFacebookUser\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\"\x88\x01\n" + + "\x0eFacebookParent\x12 \n" + + "\vcreatedTime\x18\x01 \x01(\tR\vcreatedTime\x12*\n" + + "\x04from\x18\x02 \x01(\v2\x16.aryshare.FacebookUserR\x04from\x12\x18\n" + + "\amessage\x18\x03 \x01(\tR\amessage\x12\x0e\n" + + "\x02id\x18\x04 \x01(\tR\x02id\"\xac\x03\n" + + "\x0fFacebookComment\x12\x18\n" + + "\acomment\x18\x01 \x01(\tR\acomment\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12\"\n" + + "\fcommentCount\x18\x03 \x01(\x05R\fcommentCount\x12\x1e\n" + + "\n" + + "commentUrl\x18\x04 \x01(\tR\n" + + "commentUrl\x12\x18\n" + + "\acompany\x18\x05 \x01(\bR\acompany\x12\x18\n" + + "\acreated\x18\x06 \x01(\tR\acreated\x12*\n" + + "\x04from\x18\a \x01(\v2\x16.aryshare.FacebookUserR\x04from\x12\x1c\n" + + "\tlikeCount\x18\b \x01(\x05R\tlikeCount\x120\n" + + "\x06parent\x18\t \x01(\v2\x18.aryshare.FacebookParentR\x06parent\x12\x1a\n" + + "\bplatform\x18\n" + + " \x01(\tR\bplatform\x12\x1c\n" + + "\tuserLikes\x18\v \x01(\bR\tuserLikes\x123\n" + + "\areplies\x18\f \x03(\v2\x19.aryshare.FacebookCommentR\areplies\"5\n" + + "\rLinkedInMedia\x12\x12\n" + + "\x04type\x18\x01 \x01(\tR\x04type\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\"f\n" + + "\fLinkedInFrom\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\x12\x10\n" + + "\x03url\x18\x03 \x01(\tR\x03url\x12 \n" + + "\vdescription\x18\x04 \x01(\tR\vdescription\"\xbe\x03\n" + + "\x0fLinkedInComment\x12\x18\n" + + "\acomment\x18\x01 \x01(\tR\acomment\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12\x1e\n" + + "\n" + + "commentUrn\x18\x03 \x01(\tR\n" + + "commentUrn\x12\x18\n" + + "\acreated\x18\x04 \x01(\tR\acreated\x12*\n" + + "\x04from\x18\x05 \x01(\v2\x16.aryshare.LinkedInFromR\x04from\x12\x1c\n" + + "\tlikeCount\x18\x06 \x01(\x05R\tlikeCount\x12-\n" + + "\x05media\x18\a \x03(\v2\x17.aryshare.LinkedInMediaR\x05media\x12\x1a\n" + + "\bplatform\x18\b \x01(\tR\bplatform\x12(\n" + + "\x0fprofileImageUrl\x18\t \x01(\tR\x0fprofileImageUrl\x12\x1a\n" + + "\buserName\x18\n" + + " \x01(\tR\buserName\x12\x18\n" + + "\afounded\x18\v \x01(\x05R\afounded\x12*\n" + + "\x10organizationType\x18\f \x01(\tR\x10organizationType\x12\x18\n" + + "\awebsite\x18\r \x01(\tR\awebsite\"0\n" + + "\n" + + "RedditUser\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\"\xfd\x01\n" + + "\rRedditComment\x12\x18\n" + + "\acomment\x18\x01 \x01(\tR\acomment\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12\x18\n" + + "\acreated\x18\x03 \x01(\tR\acreated\x12(\n" + + "\x04from\x18\x04 \x01(\v2\x14.aryshare.RedditUserR\x04from\x12\x1e\n" + + "\n" + + "commentUrl\x18\x05 \x01(\tR\n" + + "commentUrl\x12\x1c\n" + + "\tsubreddit\x18\x06 \x01(\tR\tsubreddit\x12\x10\n" + + "\x03ups\x18\a \x01(\x05R\x03ups\x12 \n" + + "\visSubmitter\x18\b \x01(\bR\visSubmitter\"\x8c\x04\n" + + "\x0eThreadsComment\x12\x18\n" + + "\acomment\x18\x01 \x01(\tR\acomment\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12\x1e\n" + + "\n" + + "commentUrl\x18\x03 \x01(\tR\n" + + "commentUrl\x12\x18\n" + + "\acreated\x18\x04 \x01(\tR\acreated\x12\x1e\n" + + "\n" + + "hasReplies\x18\x05 \x01(\bR\n" + + "hasReplies\x12 \n" + + "\visQuotePost\x18\x06 \x01(\bR\visQuotePost\x12\x18\n" + + "\aisReply\x18\a \x01(\bR\aisReply\x12*\n" + + "\x10isReplyOwnedByMe\x18\b \x01(\bR\x10isReplyOwnedByMe\x12\x1c\n" + + "\tmediaType\x18\t \x01(\tR\tmediaType\x12\x1a\n" + + "\bparentId\x18\n" + + " \x01(\tR\bparentId\x12\x1a\n" + + "\bplatform\x18\v \x01(\tR\bplatform\x12\x16\n" + + "\x06postId\x18\f \x01(\tR\x06postId\x122\n" + + "\areplies\x18\r \x03(\v2\x18.aryshare.ThreadsCommentR\areplies\x12$\n" + + "\rreplyAudience\x18\x0e \x01(\tR\rreplyAudience\x12\x1c\n" + + "\tshortcode\x18\x0f \x01(\tR\tshortcode\x12\x1a\n" + + "\buserName\x18\x10 \x01(\tR\buserName\"\xe6\x01\n" + + "\x14TwitterPublicMetrics\x12&\n" + + "\x0efollowersCount\x18\x01 \x01(\x05R\x0efollowersCount\x12&\n" + + "\x0efollowingCount\x18\x02 \x01(\x05R\x0efollowingCount\x12\x1e\n" + + "\n" + + "tweetCount\x18\x03 \x01(\x05R\n" + + "tweetCount\x12 \n" + + "\vlistedCount\x18\x04 \x01(\x05R\vlistedCount\x12\x1c\n" + + "\tlikeCount\x18\x05 \x01(\x05R\tlikeCount\x12\x1e\n" + + "\n" + + "mediaCount\x18\x06 \x01(\x05R\n" + + "mediaCount\"<\n" + + "\x16TwitterReferencedTweet\x12\x12\n" + + "\x04type\x18\x01 \x01(\tR\x04type\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\"\xae\x02\n" + + "\x0eTwitterReplyTo\x12\x1c\n" + + "\tcreatedAt\x18\x01 \x01(\tR\tcreatedAt\x12 \n" + + "\vdescription\x18\x02 \x01(\tR\vdescription\x12\x0e\n" + + "\x02id\x18\x03 \x01(\tR\x02id\x12\x1a\n" + + "\blocation\x18\x04 \x01(\tR\blocation\x12\x12\n" + + "\x04name\x18\x05 \x01(\tR\x04name\x12(\n" + + "\x0fprofileImageUrl\x18\x06 \x01(\tR\x0fprofileImageUrl\x12D\n" + + "\rpublicMetrics\x18\a \x01(\v2\x1e.aryshare.TwitterPublicMetricsR\rpublicMetrics\x12\x10\n" + + "\x03url\x18\b \x01(\tR\x03url\x12\x1a\n" + + "\busername\x18\t \x01(\tR\busername\"\xa4\x05\n" + + "\x0eTwitterComment\x12$\n" + + "\rbookmarkCount\x18\x01 \x01(\x05R\rbookmarkCount\x12\x18\n" + + "\acomment\x18\x02 \x01(\tR\acomment\x12\x1c\n" + + "\tcommentId\x18\x03 \x01(\tR\tcommentId\x12\x18\n" + + "\acreated\x18\x04 \x01(\tR\acreated\x12 \n" + + "\vdescription\x18\x05 \x01(\tR\vdescription\x12\x0e\n" + + "\x02id\x18\x06 \x01(\tR\x02id\x12(\n" + + "\x0fimpressionCount\x18\a \x01(\x05R\x0fimpressionCount\x12\x1c\n" + + "\tlikeCount\x18\b \x01(\x05R\tlikeCount\x12\x12\n" + + "\x04name\x18\t \x01(\tR\x04name\x12\x1a\n" + + "\bplatform\x18\n" + + " \x01(\tR\bplatform\x12(\n" + + "\x0fprofileImageUrl\x18\v \x01(\tR\x0fprofileImageUrl\x12D\n" + + "\rpublicMetrics\x18\f \x01(\v2\x1e.aryshare.TwitterPublicMetricsR\rpublicMetrics\x12\x1e\n" + + "\n" + + "quoteCount\x18\r \x01(\x05R\n" + + "quoteCount\x12L\n" + + "\x10referencedTweets\x18\x0e \x03(\v2 .aryshare.TwitterReferencedTweetR\x10referencedTweets\x12\x1e\n" + + "\n" + + "replyCount\x18\x0f \x01(\x05R\n" + + "replyCount\x122\n" + + "\areplyTo\x18\x10 \x01(\v2\x18.aryshare.TwitterReplyToR\areplyTo\x12\"\n" + + "\fthreadNumber\x18\x11 \x01(\x05R\fthreadNumber\x12\x1a\n" + + "\buserName\x18\x12 \x01(\tR\buserName\"\x9c\x02\n" + + "\fYouTubeReply\x12\x1e\n" + + "\n" + + "channelUrl\x18\x01 \x01(\tR\n" + + "channelUrl\x12\x18\n" + + "\acomment\x18\x02 \x01(\tR\acomment\x12\x1c\n" + + "\tcommentId\x18\x03 \x01(\tR\tcommentId\x12\x18\n" + + "\acreated\x18\x04 \x01(\tR\acreated\x12\x1c\n" + + "\tlikeCount\x18\x05 \x01(\x05R\tlikeCount\x12\x1a\n" + + "\bplatform\x18\x06 \x01(\tR\bplatform\x12(\n" + + "\x0fprofileImageUrl\x18\a \x01(\tR\x0fprofileImageUrl\x12\x1a\n" + + "\buserName\x18\b \x01(\tR\buserName\x12\x1a\n" + + "\bparentId\x18\t \x01(\tR\bparentId\"\xd0\x02\n" + + "\x0eYouTubeComment\x12\x1e\n" + + "\n" + + "channelUrl\x18\x01 \x01(\tR\n" + + "channelUrl\x12\x18\n" + + "\acomment\x18\x02 \x01(\tR\acomment\x12\x1c\n" + + "\tcommentId\x18\x03 \x01(\tR\tcommentId\x12\x18\n" + + "\acreated\x18\x04 \x01(\tR\acreated\x12\x1a\n" + + "\bisPublic\x18\x05 \x01(\bR\bisPublic\x12\x1c\n" + + "\tlikeCount\x18\x06 \x01(\x05R\tlikeCount\x12\x1a\n" + + "\bplatform\x18\a \x01(\tR\bplatform\x12(\n" + + "\x0fprofileImageUrl\x18\b \x01(\tR\x0fprofileImageUrl\x120\n" + + "\areplies\x18\t \x03(\v2\x16.aryshare.YouTubeReplyR\areplies\x12\x1a\n" + + "\buserName\x18\n" + + " \x01(\tR\buserName\"\x9e\x05\n" + + "\x12GetCommentResponse\x128\n" + + "\tinstagram\x18\x01 \x03(\v2\x1a.aryshare.InstagramCommentR\tinstagram\x12/\n" + + "\x06tiktok\x18\x02 \x03(\v2\x17.aryshare.TikTokCommentR\x06tiktok\x12\x16\n" + + "\x06status\x18\x03 \x01(\tR\x06status\x12\x0e\n" + + "\x02id\x18\x04 \x01(\tR\x02id\x12 \n" + + "\vlastUpdated\x18\x05 \x01(\tR\vlastUpdated\x12\x1e\n" + + "\n" + + "nextUpdate\x18\x06 \x01(\tR\n" + + "nextUpdate\x12\x16\n" + + "\x06action\x18\a \x01(\tR\x06action\x12\x12\n" + + "\x04code\x18\b \x01(\x05R\x04code\x12\x18\n" + + "\amessage\x18\t \x01(\tR\amessage\x122\n" + + "\abluesky\x18\n" + + " \x03(\v2\x18.aryshare.BlueskyCommentR\abluesky\x125\n" + + "\bfacebook\x18\v \x03(\v2\x19.aryshare.FacebookCommentR\bfacebook\x125\n" + + "\blinkedin\x18\f \x03(\v2\x19.aryshare.LinkedInCommentR\blinkedin\x12/\n" + + "\x06reddit\x18\r \x03(\v2\x17.aryshare.RedditCommentR\x06reddit\x122\n" + + "\athreads\x18\x0e \x03(\v2\x18.aryshare.ThreadsCommentR\athreads\x122\n" + + "\atwitter\x18\x0f \x03(\v2\x18.aryshare.TwitterCommentR\atwitter\x122\n" + + "\ayoutube\x18\x10 \x03(\v2\x18.aryshare.YouTubeCommentR\ayoutube\"\xc4\x01\n" + + "\x14DeleteCommentRequest\x12&\n" + + "\x02id\x18\x01 \x01(\tB\x16\xe2\xdf\x1f\x12*\x0eid不能为空X\x01R\x02id\x12\x1c\n" + + "\tplatforms\x18\x02 \x03(\tR\tplatforms\x12\x1a\n" + + "\bplatform\x18\x03 \x01(\tR\bplatform\x12*\n" + + "\x10searchPlatformId\x18\x04 \x01(\bR\x10searchPlatformId\x12\x1e\n" + + "\n" + + "profileKey\x18\x05 \x01(\tR\n" + + "profileKey\"s\n" + + "\x17InstagramDeleteResponse\x12\x16\n" + + "\x06action\x18\x01 \x01(\tR\x06action\x12\x16\n" + + "\x06status\x18\x02 \x01(\tR\x06status\x12\x0e\n" + + "\x02id\x18\x03 \x01(\tR\x02id\x12\x18\n" + + "\acomment\x18\x04 \x01(\tR\acomment\"\x8e\x01\n" + + "\x14TikTokDeleteResponse\x12\x16\n" + + "\x06action\x18\x01 \x01(\tR\x06action\x12\x16\n" + + "\x06status\x18\x02 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x03 \x01(\tR\tcommentId\x12\x0e\n" + + "\x02id\x18\x04 \x01(\tR\x02id\x12\x18\n" + + "\acomment\x18\x05 \x01(\tR\acomment\"\xcb\x02\n" + + "\x15DeleteCommentResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tinstagram\x18\x02 \x01(\tR\tinstagram\x12\x16\n" + + "\x06tiktok\x18\x03 \x01(\tR\x06tiktok\x12\x16\n" + + "\x06action\x18\x04 \x01(\tR\x06action\x12\x12\n" + + "\x04code\x18\x05 \x01(\x05R\x04code\x12\x18\n" + + "\amessage\x18\x06 \x01(\tR\amessage\x12\x18\n" + + "\abluesky\x18\a \x01(\tR\abluesky\x12\x1a\n" + + "\bfacebook\x18\b \x01(\tR\bfacebook\x12\x1a\n" + + "\blinkedin\x18\t \x01(\tR\blinkedin\x12\x18\n" + + "\athreads\x18\n" + + " \x01(\tR\athreads\x12\x18\n" + + "\atwitter\x18\v \x01(\tR\atwitter\x12\x18\n" + + "\ayoutube\x18\f \x01(\tR\ayoutube\"\xdf\x01\n" + + "\x13ReplyCommentRequest\x12&\n" + + "\x02id\x18\x01 \x01(\tB\x16\xe2\xdf\x1f\x12*\x0eid不能为空X\x01R\x02id\x125\n" + + "\acomment\x18\x02 \x01(\tB\x1b\xe2\xdf\x1f\x17*\x13comment不能为空X\x01R\acomment\x12I\n" + + "\tplatforms\x18\x03 \x03(\tB+\xe2\xdf\x1f'*!platforms平台列表不能为空X\x01`\x01R\tplatforms\x12\x1e\n" + + "\n" + + "profileKey\x18\x04 \x01(\tR\n" + + "profileKey\"\xae\x01\n" + + "\x16InstagramReplyResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12(\n" + + "\x0fsourceCommentId\x18\x03 \x01(\tR\x0fsourceCommentId\x12\x18\n" + + "\acomment\x18\x04 \x01(\tR\acomment\x12\x1a\n" + + "\bplatform\x18\x05 \x01(\tR\bplatform\"\xc5\x01\n" + + "\x13TikTokReplyResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12(\n" + + "\x0fsourceCommentId\x18\x03 \x01(\tR\x0fsourceCommentId\x12\x18\n" + + "\acomment\x18\x04 \x01(\tR\acomment\x12\x1a\n" + + "\bplatform\x18\x05 \x01(\tR\bplatform\x12\x18\n" + + "\avideoId\x18\x06 \x01(\tR\avideoId\"\xd8\x01\n" + + "\x14BlueskyReplyResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12(\n" + + "\x0fsourceCommentId\x18\x03 \x01(\tR\x0fsourceCommentId\x12\x18\n" + + "\acomment\x18\x04 \x01(\tR\acomment\x12\x1a\n" + + "\bplatform\x18\x05 \x01(\tR\bplatform\x12\x10\n" + + "\x03cid\x18\x06 \x01(\tR\x03cid\x12\x18\n" + + "\apostUrl\x18\a \x01(\tR\apostUrl\"\xad\x01\n" + + "\x15FacebookReplyResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12(\n" + + "\x0fsourceCommentId\x18\x03 \x01(\tR\x0fsourceCommentId\x12\x18\n" + + "\acomment\x18\x04 \x01(\tR\acomment\x12\x1a\n" + + "\bplatform\x18\x05 \x01(\tR\bplatform\"\xad\x01\n" + + "\x15LinkedInReplyResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12(\n" + + "\x0fsourceCommentId\x18\x03 \x01(\tR\x0fsourceCommentId\x12\x18\n" + + "\acomment\x18\x04 \x01(\tR\acomment\x12\x1a\n" + + "\bplatform\x18\x05 \x01(\tR\bplatform\"\xc6\x01\n" + + "\x14TwitterReplyResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12(\n" + + "\x0fsourceCommentId\x18\x03 \x01(\tR\x0fsourceCommentId\x12\x18\n" + + "\acomment\x18\x04 \x01(\tR\acomment\x12\x1a\n" + + "\bplatform\x18\x05 \x01(\tR\bplatform\x12\x18\n" + + "\apostUrl\x18\x06 \x01(\tR\apostUrl\"\xac\x01\n" + + "\x14YouTubeReplyResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12(\n" + + "\x0fsourceCommentId\x18\x03 \x01(\tR\x0fsourceCommentId\x12\x18\n" + + "\acomment\x18\x04 \x01(\tR\acomment\x12\x1a\n" + + "\bplatform\x18\x05 \x01(\tR\bplatform\"\xc1\x04\n" + + "\x14ReplyCommentResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x1c\n" + + "\tcommentId\x18\x02 \x01(\tR\tcommentId\x12\x0e\n" + + "\x02id\x18\x03 \x01(\tR\x02id\x12>\n" + + "\tinstagram\x18\x04 \x01(\v2 .aryshare.InstagramReplyResponseR\tinstagram\x125\n" + + "\x06tiktok\x18\x05 \x01(\v2\x1d.aryshare.TikTokReplyResponseR\x06tiktok\x12\x16\n" + + "\x06action\x18\x06 \x01(\tR\x06action\x12\x12\n" + + "\x04code\x18\a \x01(\x05R\x04code\x12\x18\n" + + "\amessage\x18\b \x01(\tR\amessage\x128\n" + + "\abluesky\x18\t \x01(\v2\x1e.aryshare.BlueskyReplyResponseR\abluesky\x12;\n" + + "\bfacebook\x18\n" + + " \x01(\v2\x1f.aryshare.FacebookReplyResponseR\bfacebook\x12;\n" + + "\blinkedin\x18\v \x01(\v2\x1f.aryshare.LinkedInReplyResponseR\blinkedin\x128\n" + + "\atwitter\x18\f \x01(\v2\x1e.aryshare.TwitterReplyResponseR\atwitter\x128\n" + + "\ayoutube\x18\r \x01(\v2\x1e.aryshare.YouTubeReplyResponseR\ayoutube\"\xb2\x01\n" + + "\x17GetPostAnalyticsRequest\x12,\n" + + "\x02id\x18\x01 \x01(\tB\x1c\xe2\xdf\x1f\x18*\x14帖子ID不能为空X\x01R\x02id\x12I\n" + + "\tplatforms\x18\x02 \x03(\tB+\xe2\xdf\x1f'*!platforms平台列表不能为空X\x01`\x01R\tplatforms\x12\x1e\n" + + "\n" + + "profileKey\x18\x03 \x01(\tR\n" + + "profileKey\"\xee\x01\n" + + "!GetPostAnalyticsBySocialIDRequest\x122\n" + + "\x02id\x18\x01 \x01(\tB\"\xe2\xdf\x1f\x1e*\x1aSocial Post ID不能为空X\x01R\x02id\x12I\n" + + "\tplatforms\x18\x02 \x03(\tB+\xe2\xdf\x1f'*!platforms平台列表不能为空X\x01`\x01R\tplatforms\x12*\n" + + "\x10searchPlatformId\x18\x03 \x01(\bR\x10searchPlatformId\x12\x1e\n" + + "\n" + + "profileKey\x18\x04 \x01(\tR\n" + + "profileKey\"\xe6\x02\n" + + "\x18GetPostAnalyticsResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x12\n" + + "\x04code\x18\x02 \x01(\x05R\x04code\x12\x0e\n" + + "\x02id\x18\x03 \x01(\tR\x02id\x12\x18\n" + + "\abluesky\x18\x04 \x01(\tR\abluesky\x12\x1a\n" + + "\bfacebook\x18\x05 \x01(\tR\bfacebook\x12\x1c\n" + + "\tinstagram\x18\x06 \x01(\tR\tinstagram\x12\x1a\n" + + "\blinkedin\x18\a \x01(\tR\blinkedin\x12\x1c\n" + + "\tpinterest\x18\b \x01(\tR\tpinterest\x12\x1a\n" + + "\bsnapchat\x18\t \x01(\tR\bsnapchat\x12\x18\n" + + "\athreads\x18\n" + + " \x01(\tR\athreads\x12\x16\n" + + "\x06tiktok\x18\v \x01(\tR\x06tiktok\x12\x18\n" + + "\atwitter\x18\f \x01(\tR\atwitter\x12\x18\n" + + "\ayoutube\x18\r \x01(\tR\ayoutube\"\x86\x01\n" + + "\x19GetSocialAnalyticsRequest\x12I\n" + + "\tplatforms\x18\x01 \x03(\tB+\xe2\xdf\x1f'*!platforms平台列表不能为空X\x01`\x01R\tplatforms\x12\x1e\n" + + "\n" + + "profileKey\x18\x02 \x01(\tR\n" + + "profileKey\"\xee\x02\n" + + "\x1aGetSocialAnalyticsResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x18\n" + + "\abluesky\x18\x02 \x01(\tR\abluesky\x12\x1a\n" + + "\bfacebook\x18\x03 \x01(\tR\bfacebook\x12\x10\n" + + "\x03gmb\x18\x04 \x01(\tR\x03gmb\x12\x1c\n" + + "\tinstagram\x18\x05 \x01(\tR\tinstagram\x12\x1a\n" + + "\blinkedin\x18\x06 \x01(\tR\blinkedin\x12\x1c\n" + + "\tpinterest\x18\a \x01(\tR\tpinterest\x12\x16\n" + + "\x06reddit\x18\b \x01(\tR\x06reddit\x12\x1a\n" + + "\bsnapchat\x18\t \x01(\tR\bsnapchat\x12\x18\n" + + "\athreads\x18\n" + + " \x01(\tR\athreads\x12\x16\n" + + "\x06tiktok\x18\v \x01(\tR\x06tiktok\x12\x18\n" + + "\atwitter\x18\f \x01(\tR\atwitter\x12\x18\n" + + "\ayoutube\x18\r \x01(\tR\ayoutube\"\xb3\x01\n" + + "\x13AutoHashtagsRequest\x122\n" + + "\x04post\x18\x01 \x01(\tB\x1e\xe2\xdf\x1f\x1a*\x16post内容不能为空X\x01R\x04post\x12\x10\n" + + "\x03max\x18\x02 \x01(\x05R\x03max\x12\x1a\n" + + "\bposition\x18\x03 \x01(\tR\bposition\x12\x1a\n" + + "\blanguage\x18\x04 \x01(\tR\blanguage\x12\x1e\n" + + "\n" + + "profileKey\x18\x05 \x01(\tR\n" + + "profileKey\"\x88\x01\n" + + "\x14AutoHashtagsResponse\x12\x12\n" + + "\x04post\x18\x01 \x01(\tR\x04post\x12\x16\n" + + "\x06action\x18\x02 \x01(\tR\x06action\x12\x16\n" + + "\x06status\x18\x03 \x01(\tR\x06status\x12\x12\n" + + "\x04code\x18\x04 \x01(\x05R\x04code\x12\x18\n" + + "\amessage\x18\x05 \x01(\tR\amessage\"r\n" + + "\x19CheckBannedHashtagRequest\x125\n" + + "\ahashtag\x18\x01 \x01(\tB\x1b\xe2\xdf\x1f\x17*\x13hashtag不能为空X\x01R\ahashtag\x12\x1e\n" + + "\n" + + "profileKey\x18\x02 \x01(\tR\n" + + "profileKey\"\xac\x01\n" + + "\x1aCheckBannedHashtagResponse\x12\x18\n" + + "\ahashtag\x18\x01 \x01(\tR\ahashtag\x12\x16\n" + + "\x06banned\x18\x02 \x01(\bR\x06banned\x12\x16\n" + + "\x06action\x18\x03 \x01(\tR\x06action\x12\x16\n" + + "\x06status\x18\x04 \x01(\tR\x06status\x12\x12\n" + + "\x04code\x18\x05 \x01(\x05R\x04code\x12\x18\n" + + "\amessage\x18\x06 \x01(\tR\amessage\"I\n" + + "\x15HashtagRecommendation\x12\x1c\n" + + "\tviewCount\x18\x01 \x01(\x03R\tviewCount\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\"q\n" + + "\x18RecommendHashtagsRequest\x125\n" + + "\akeyword\x18\x01 \x01(\tB\x1b\xe2\xdf\x1f\x17*\x13keyword不能为空X\x01R\akeyword\x12\x1e\n" + + "\n" + + "profileKey\x18\x02 \x01(\tR\n" + + "profileKey\"\xde\x01\n" + + "\x19RecommendHashtagsResponse\x12\x18\n" + + "\akeyword\x18\x01 \x01(\tR\akeyword\x12I\n" + + "\x0frecommendations\x18\x02 \x03(\v2\x1f.aryshare.HashtagRecommendationR\x0frecommendations\x12\x16\n" + + "\x06action\x18\x03 \x01(\tR\x06action\x12\x16\n" + + "\x06status\x18\x04 \x01(\tR\x06status\x12\x12\n" + + "\x04code\x18\x05 \x01(\x05R\x04code\x12\x18\n" + + "\amessage\x18\x06 \x01(\tR\amessage\"\x8e\x01\n" + + "\x15SearchHashtagsRequest\x125\n" + + "\akeyword\x18\x01 \x01(\tB\x1b\xe2\xdf\x1f\x17*\x13keyword不能为空X\x01R\akeyword\x12\x1e\n" + + "\n" + + "searchType\x18\x02 \x01(\tR\n" + + "searchType\x12\x1e\n" + + "\n" + + "profileKey\x18\x03 \x01(\tR\n" + + "profileKey\"7\n" + + "\x11SearchHashtagInfo\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\"$\n" + + "\x12SearchHashtagChild\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"I\n" + + "\x15SearchHashtagChildren\x120\n" + + "\x04data\x18\x01 \x03(\v2\x1c.aryshare.SearchHashtagChildR\x04data\"\xb5\x02\n" + + "\x12SearchHashtagMedia\x12\x18\n" + + "\acaption\x18\x01 \x01(\tR\acaption\x12;\n" + + "\bchildren\x18\x02 \x01(\v2\x1f.aryshare.SearchHashtagChildrenR\bchildren\x12$\n" + + "\rcommentsCount\x18\x03 \x01(\x05R\rcommentsCount\x12\x0e\n" + + "\x02id\x18\x04 \x01(\tR\x02id\x12\x1c\n" + + "\tlikeCount\x18\x05 \x01(\x05R\tlikeCount\x12\x1c\n" + + "\tmediaType\x18\x06 \x01(\tR\tmediaType\x12\x1a\n" + + "\bmediaUrl\x18\a \x01(\tR\bmediaUrl\x12\x1c\n" + + "\tpermalink\x18\b \x01(\tR\tpermalink\x12\x1c\n" + + "\ttimestamp\x18\t \x01(\tR\ttimestamp\"\xc9\x02\n" + + "\x16SearchHashtagsResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x125\n" + + "\ahashtag\x18\x02 \x01(\v2\x1b.aryshare.SearchHashtagInfoR\ahashtag\x12B\n" + + "\rsearchResults\x18\x03 \x03(\v2\x1c.aryshare.SearchHashtagMediaR\rsearchResults\x12\x14\n" + + "\x05count\x18\x04 \x01(\x05R\x05count\x12 \n" + + "\vlastUpdated\x18\x05 \x01(\tR\vlastUpdated\x12\x1e\n" + + "\n" + + "nextUpdate\x18\x06 \x01(\tR\n" + + "nextUpdate\x12\x16\n" + + "\x06action\x18\a \x01(\tR\x06action\x12\x12\n" + + "\x04code\x18\b \x01(\x05R\x04code\x12\x18\n" + + "\amessage\x18\t \x01(\tR\amessage2\xf0\x0e\n" + + "\bAyrshare\x125\n" + + "\x04Post\x12\x15.aryshare.PostRequest\x1a\x16.aryshare.PostResponse\x12>\n" + + "\aGetPost\x12\x18.aryshare.GetPostRequest\x1a\x19.aryshare.GetPostResponse\x12>\n" + + "\aGetUser\x12\x18.aryshare.GetUserRequest\x1a\x19.aryshare.GetUserResponse\x12P\n" + + "\rCreateProfile\x12\x1e.aryshare.CreateProfileRequest\x1a\x1f.aryshare.CreateProfileResponse\x12J\n" + + "\vGetProfiles\x12\x1c.aryshare.GetProfilesRequest\x1a\x1d.aryshare.GetProfilesResponse\x12J\n" + + "\vGenerateJWT\x12\x1c.aryshare.GenerateJWTRequest\x1a\x1d.aryshare.GenerateJWTResponse\x12b\n" + + "\x13UnlinkSocialNetwork\x12$.aryshare.UnlinkSocialNetworkRequest\x1a%.aryshare.UnlinkSocialNetworkResponse\x12G\n" + + "\n" + + "GetHistory\x12\x1b.aryshare.GetHistoryRequest\x1a\x1c.aryshare.GetHistoryResponse\x12S\n" + + "\x0eGetHistoryById\x12\x1f.aryshare.GetHistoryByIdRequest\x1a .aryshare.GetHistoryByIdResponse\x12e\n" + + "\x14GetHistoryByPlatform\x12%.aryshare.GetHistoryByPlatformRequest\x1a&.aryshare.GetHistoryByPlatformResponse\x12J\n" + + "\vSendMessage\x12\x1c.aryshare.SendMessageRequest\x1a\x1d.aryshare.SendMessageResponse\x12J\n" + + "\vGetMessages\x12\x1c.aryshare.GetMessagesRequest\x1a\x1d.aryshare.GetMessagesResponse\x12J\n" + + "\vPostComment\x12\x1c.aryshare.PostCommentRequest\x1a\x1d.aryshare.PostCommentResponse\x12G\n" + + "\n" + + "GetComment\x12\x1b.aryshare.GetCommentRequest\x1a\x1c.aryshare.GetCommentResponse\x12P\n" + + "\rDeleteComment\x12\x1e.aryshare.DeleteCommentRequest\x1a\x1f.aryshare.DeleteCommentResponse\x12M\n" + + "\fReplyComment\x12\x1d.aryshare.ReplyCommentRequest\x1a\x1e.aryshare.ReplyCommentResponse\x12Y\n" + + "\x10GetPostAnalytics\x12!.aryshare.GetPostAnalyticsRequest\x1a\".aryshare.GetPostAnalyticsResponse\x12m\n" + + "\x1aGetPostAnalyticsBySocialID\x12+.aryshare.GetPostAnalyticsBySocialIDRequest\x1a\".aryshare.GetPostAnalyticsResponse\x12_\n" + + "\x12GetSocialAnalytics\x12#.aryshare.GetSocialAnalyticsRequest\x1a$.aryshare.GetSocialAnalyticsResponse\x12M\n" + + "\fAutoHashtags\x12\x1d.aryshare.AutoHashtagsRequest\x1a\x1e.aryshare.AutoHashtagsResponse\x12_\n" + + "\x12CheckBannedHashtag\x12#.aryshare.CheckBannedHashtagRequest\x1a$.aryshare.CheckBannedHashtagResponse\x12\\\n" + + "\x11RecommendHashtags\x12\".aryshare.RecommendHashtagsRequest\x1a#.aryshare.RecommendHashtagsResponse\x12S\n" + + "\x0eSearchHashtags\x12\x1f.aryshare.SearchHashtagsRequest\x1a .aryshare.SearchHashtagsResponseB\fZ\n" + + "./aryshareb\x06proto3" var ( file_pb_ayrshare_proto_rawDescOnce sync.Once - file_pb_ayrshare_proto_rawDescData = file_pb_ayrshare_proto_rawDesc + file_pb_ayrshare_proto_rawDescData []byte ) func file_pb_ayrshare_proto_rawDescGZIP() []byte { file_pb_ayrshare_proto_rawDescOnce.Do(func() { - file_pb_ayrshare_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_ayrshare_proto_rawDescData) + file_pb_ayrshare_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_pb_ayrshare_proto_rawDesc), len(file_pb_ayrshare_proto_rawDesc))) }) return file_pb_ayrshare_proto_rawDescData } -var file_pb_ayrshare_proto_msgTypes = make([]protoimpl.MessageInfo, 109) -var file_pb_ayrshare_proto_goTypes = []interface{}{ +var file_pb_ayrshare_proto_msgTypes = make([]protoimpl.MessageInfo, 111) +var file_pb_ayrshare_proto_goTypes = []any{ (*UserTag)(nil), // 0: aryshare.UserTag (*InstagramOptions)(nil), // 1: aryshare.InstagramOptions (*TikTokOptions)(nil), // 2: aryshare.TikTokOptions @@ -12239,90 +11295,92 @@ var file_pb_ayrshare_proto_goTypes = []interface{}{ (*Email)(nil), // 22: aryshare.Email (*GenerateJWTRequest)(nil), // 23: aryshare.GenerateJWTRequest (*GenerateJWTResponse)(nil), // 24: aryshare.GenerateJWTResponse - (*HistoryPostId)(nil), // 25: aryshare.HistoryPostId - (*HistoryItem)(nil), // 26: aryshare.HistoryItem - (*GetHistoryRequest)(nil), // 27: aryshare.GetHistoryRequest - (*GetHistoryResponse)(nil), // 28: aryshare.GetHistoryResponse - (*GetHistoryByIdRequest)(nil), // 29: aryshare.GetHistoryByIdRequest - (*GetHistoryByIdResponse)(nil), // 30: aryshare.GetHistoryByIdResponse - (*PlatformPost)(nil), // 31: aryshare.PlatformPost - (*GetHistoryByPlatformRequest)(nil), // 32: aryshare.GetHistoryByPlatformRequest - (*GetHistoryByPlatformResponse)(nil), // 33: aryshare.GetHistoryByPlatformResponse - (*SendMessageRequest)(nil), // 34: aryshare.SendMessageRequest - (*MessageItem)(nil), // 35: aryshare.MessageItem - (*SendMessageResponse)(nil), // 36: aryshare.SendMessageResponse - (*GetMessagesRequest)(nil), // 37: aryshare.GetMessagesRequest - (*MessageAttachment)(nil), // 38: aryshare.MessageAttachment - (*MessageSenderDetails)(nil), // 39: aryshare.MessageSenderDetails - (*MessageRecipientDetails)(nil), // 40: aryshare.MessageRecipientDetails - (*MessageReaction)(nil), // 41: aryshare.MessageReaction - (*GetMessagesItem)(nil), // 42: aryshare.GetMessagesItem - (*ConversationParticipant)(nil), // 43: aryshare.ConversationParticipant - (*ConversationDetail)(nil), // 44: aryshare.ConversationDetail - (*GetMessagesResponse)(nil), // 45: aryshare.GetMessagesResponse - (*PostCommentRequest)(nil), // 46: aryshare.PostCommentRequest - (*InstagramCommentResponse)(nil), // 47: aryshare.InstagramCommentResponse - (*TikTokCommentResponse)(nil), // 48: aryshare.TikTokCommentResponse - (*BlueskyCommentResponse)(nil), // 49: aryshare.BlueskyCommentResponse - (*FacebookCommentResponse)(nil), // 50: aryshare.FacebookCommentResponse - (*LinkedInCommentResponse)(nil), // 51: aryshare.LinkedInCommentResponse - (*TwitterCommentResponse)(nil), // 52: aryshare.TwitterCommentResponse - (*YouTubeCommentResponse)(nil), // 53: aryshare.YouTubeCommentResponse - (*PlatformError)(nil), // 54: aryshare.PlatformError - (*PostCommentResponse)(nil), // 55: aryshare.PostCommentResponse - (*GetCommentRequest)(nil), // 56: aryshare.GetCommentRequest - (*InstagramUser)(nil), // 57: aryshare.InstagramUser - (*InstagramUserInfo)(nil), // 58: aryshare.InstagramUserInfo - (*InstagramComment)(nil), // 59: aryshare.InstagramComment - (*TikTokComment)(nil), // 60: aryshare.TikTokComment - (*BlueskyComment)(nil), // 61: aryshare.BlueskyComment - (*FacebookUser)(nil), // 62: aryshare.FacebookUser - (*FacebookParent)(nil), // 63: aryshare.FacebookParent - (*FacebookComment)(nil), // 64: aryshare.FacebookComment - (*LinkedInMedia)(nil), // 65: aryshare.LinkedInMedia - (*LinkedInFrom)(nil), // 66: aryshare.LinkedInFrom - (*LinkedInComment)(nil), // 67: aryshare.LinkedInComment - (*RedditUser)(nil), // 68: aryshare.RedditUser - (*RedditComment)(nil), // 69: aryshare.RedditComment - (*ThreadsComment)(nil), // 70: aryshare.ThreadsComment - (*TwitterPublicMetrics)(nil), // 71: aryshare.TwitterPublicMetrics - (*TwitterReferencedTweet)(nil), // 72: aryshare.TwitterReferencedTweet - (*TwitterReplyTo)(nil), // 73: aryshare.TwitterReplyTo - (*TwitterComment)(nil), // 74: aryshare.TwitterComment - (*YouTubeReply)(nil), // 75: aryshare.YouTubeReply - (*YouTubeComment)(nil), // 76: aryshare.YouTubeComment - (*GetCommentResponse)(nil), // 77: aryshare.GetCommentResponse - (*DeleteCommentRequest)(nil), // 78: aryshare.DeleteCommentRequest - (*InstagramDeleteResponse)(nil), // 79: aryshare.InstagramDeleteResponse - (*TikTokDeleteResponse)(nil), // 80: aryshare.TikTokDeleteResponse - (*DeleteCommentResponse)(nil), // 81: aryshare.DeleteCommentResponse - (*ReplyCommentRequest)(nil), // 82: aryshare.ReplyCommentRequest - (*InstagramReplyResponse)(nil), // 83: aryshare.InstagramReplyResponse - (*TikTokReplyResponse)(nil), // 84: aryshare.TikTokReplyResponse - (*BlueskyReplyResponse)(nil), // 85: aryshare.BlueskyReplyResponse - (*FacebookReplyResponse)(nil), // 86: aryshare.FacebookReplyResponse - (*LinkedInReplyResponse)(nil), // 87: aryshare.LinkedInReplyResponse - (*TwitterReplyResponse)(nil), // 88: aryshare.TwitterReplyResponse - (*YouTubeReplyResponse)(nil), // 89: aryshare.YouTubeReplyResponse - (*ReplyCommentResponse)(nil), // 90: aryshare.ReplyCommentResponse - (*GetPostAnalyticsRequest)(nil), // 91: aryshare.GetPostAnalyticsRequest - (*GetPostAnalyticsBySocialIDRequest)(nil), // 92: aryshare.GetPostAnalyticsBySocialIDRequest - (*GetPostAnalyticsResponse)(nil), // 93: aryshare.GetPostAnalyticsResponse - (*GetSocialAnalyticsRequest)(nil), // 94: aryshare.GetSocialAnalyticsRequest - (*GetSocialAnalyticsResponse)(nil), // 95: aryshare.GetSocialAnalyticsResponse - (*AutoHashtagsRequest)(nil), // 96: aryshare.AutoHashtagsRequest - (*AutoHashtagsResponse)(nil), // 97: aryshare.AutoHashtagsResponse - (*CheckBannedHashtagRequest)(nil), // 98: aryshare.CheckBannedHashtagRequest - (*CheckBannedHashtagResponse)(nil), // 99: aryshare.CheckBannedHashtagResponse - (*HashtagRecommendation)(nil), // 100: aryshare.HashtagRecommendation - (*RecommendHashtagsRequest)(nil), // 101: aryshare.RecommendHashtagsRequest - (*RecommendHashtagsResponse)(nil), // 102: aryshare.RecommendHashtagsResponse - (*SearchHashtagsRequest)(nil), // 103: aryshare.SearchHashtagsRequest - (*SearchHashtagInfo)(nil), // 104: aryshare.SearchHashtagInfo - (*SearchHashtagChild)(nil), // 105: aryshare.SearchHashtagChild - (*SearchHashtagChildren)(nil), // 106: aryshare.SearchHashtagChildren - (*SearchHashtagMedia)(nil), // 107: aryshare.SearchHashtagMedia - (*SearchHashtagsResponse)(nil), // 108: aryshare.SearchHashtagsResponse + (*UnlinkSocialNetworkRequest)(nil), // 25: aryshare.UnlinkSocialNetworkRequest + (*UnlinkSocialNetworkResponse)(nil), // 26: aryshare.UnlinkSocialNetworkResponse + (*HistoryPostId)(nil), // 27: aryshare.HistoryPostId + (*HistoryItem)(nil), // 28: aryshare.HistoryItem + (*GetHistoryRequest)(nil), // 29: aryshare.GetHistoryRequest + (*GetHistoryResponse)(nil), // 30: aryshare.GetHistoryResponse + (*GetHistoryByIdRequest)(nil), // 31: aryshare.GetHistoryByIdRequest + (*GetHistoryByIdResponse)(nil), // 32: aryshare.GetHistoryByIdResponse + (*PlatformPost)(nil), // 33: aryshare.PlatformPost + (*GetHistoryByPlatformRequest)(nil), // 34: aryshare.GetHistoryByPlatformRequest + (*GetHistoryByPlatformResponse)(nil), // 35: aryshare.GetHistoryByPlatformResponse + (*SendMessageRequest)(nil), // 36: aryshare.SendMessageRequest + (*MessageItem)(nil), // 37: aryshare.MessageItem + (*SendMessageResponse)(nil), // 38: aryshare.SendMessageResponse + (*GetMessagesRequest)(nil), // 39: aryshare.GetMessagesRequest + (*MessageAttachment)(nil), // 40: aryshare.MessageAttachment + (*MessageSenderDetails)(nil), // 41: aryshare.MessageSenderDetails + (*MessageRecipientDetails)(nil), // 42: aryshare.MessageRecipientDetails + (*MessageReaction)(nil), // 43: aryshare.MessageReaction + (*GetMessagesItem)(nil), // 44: aryshare.GetMessagesItem + (*ConversationParticipant)(nil), // 45: aryshare.ConversationParticipant + (*ConversationDetail)(nil), // 46: aryshare.ConversationDetail + (*GetMessagesResponse)(nil), // 47: aryshare.GetMessagesResponse + (*PostCommentRequest)(nil), // 48: aryshare.PostCommentRequest + (*InstagramCommentResponse)(nil), // 49: aryshare.InstagramCommentResponse + (*TikTokCommentResponse)(nil), // 50: aryshare.TikTokCommentResponse + (*BlueskyCommentResponse)(nil), // 51: aryshare.BlueskyCommentResponse + (*FacebookCommentResponse)(nil), // 52: aryshare.FacebookCommentResponse + (*LinkedInCommentResponse)(nil), // 53: aryshare.LinkedInCommentResponse + (*TwitterCommentResponse)(nil), // 54: aryshare.TwitterCommentResponse + (*YouTubeCommentResponse)(nil), // 55: aryshare.YouTubeCommentResponse + (*PlatformError)(nil), // 56: aryshare.PlatformError + (*PostCommentResponse)(nil), // 57: aryshare.PostCommentResponse + (*GetCommentRequest)(nil), // 58: aryshare.GetCommentRequest + (*InstagramUser)(nil), // 59: aryshare.InstagramUser + (*InstagramUserInfo)(nil), // 60: aryshare.InstagramUserInfo + (*InstagramComment)(nil), // 61: aryshare.InstagramComment + (*TikTokComment)(nil), // 62: aryshare.TikTokComment + (*BlueskyComment)(nil), // 63: aryshare.BlueskyComment + (*FacebookUser)(nil), // 64: aryshare.FacebookUser + (*FacebookParent)(nil), // 65: aryshare.FacebookParent + (*FacebookComment)(nil), // 66: aryshare.FacebookComment + (*LinkedInMedia)(nil), // 67: aryshare.LinkedInMedia + (*LinkedInFrom)(nil), // 68: aryshare.LinkedInFrom + (*LinkedInComment)(nil), // 69: aryshare.LinkedInComment + (*RedditUser)(nil), // 70: aryshare.RedditUser + (*RedditComment)(nil), // 71: aryshare.RedditComment + (*ThreadsComment)(nil), // 72: aryshare.ThreadsComment + (*TwitterPublicMetrics)(nil), // 73: aryshare.TwitterPublicMetrics + (*TwitterReferencedTweet)(nil), // 74: aryshare.TwitterReferencedTweet + (*TwitterReplyTo)(nil), // 75: aryshare.TwitterReplyTo + (*TwitterComment)(nil), // 76: aryshare.TwitterComment + (*YouTubeReply)(nil), // 77: aryshare.YouTubeReply + (*YouTubeComment)(nil), // 78: aryshare.YouTubeComment + (*GetCommentResponse)(nil), // 79: aryshare.GetCommentResponse + (*DeleteCommentRequest)(nil), // 80: aryshare.DeleteCommentRequest + (*InstagramDeleteResponse)(nil), // 81: aryshare.InstagramDeleteResponse + (*TikTokDeleteResponse)(nil), // 82: aryshare.TikTokDeleteResponse + (*DeleteCommentResponse)(nil), // 83: aryshare.DeleteCommentResponse + (*ReplyCommentRequest)(nil), // 84: aryshare.ReplyCommentRequest + (*InstagramReplyResponse)(nil), // 85: aryshare.InstagramReplyResponse + (*TikTokReplyResponse)(nil), // 86: aryshare.TikTokReplyResponse + (*BlueskyReplyResponse)(nil), // 87: aryshare.BlueskyReplyResponse + (*FacebookReplyResponse)(nil), // 88: aryshare.FacebookReplyResponse + (*LinkedInReplyResponse)(nil), // 89: aryshare.LinkedInReplyResponse + (*TwitterReplyResponse)(nil), // 90: aryshare.TwitterReplyResponse + (*YouTubeReplyResponse)(nil), // 91: aryshare.YouTubeReplyResponse + (*ReplyCommentResponse)(nil), // 92: aryshare.ReplyCommentResponse + (*GetPostAnalyticsRequest)(nil), // 93: aryshare.GetPostAnalyticsRequest + (*GetPostAnalyticsBySocialIDRequest)(nil), // 94: aryshare.GetPostAnalyticsBySocialIDRequest + (*GetPostAnalyticsResponse)(nil), // 95: aryshare.GetPostAnalyticsResponse + (*GetSocialAnalyticsRequest)(nil), // 96: aryshare.GetSocialAnalyticsRequest + (*GetSocialAnalyticsResponse)(nil), // 97: aryshare.GetSocialAnalyticsResponse + (*AutoHashtagsRequest)(nil), // 98: aryshare.AutoHashtagsRequest + (*AutoHashtagsResponse)(nil), // 99: aryshare.AutoHashtagsResponse + (*CheckBannedHashtagRequest)(nil), // 100: aryshare.CheckBannedHashtagRequest + (*CheckBannedHashtagResponse)(nil), // 101: aryshare.CheckBannedHashtagResponse + (*HashtagRecommendation)(nil), // 102: aryshare.HashtagRecommendation + (*RecommendHashtagsRequest)(nil), // 103: aryshare.RecommendHashtagsRequest + (*RecommendHashtagsResponse)(nil), // 104: aryshare.RecommendHashtagsResponse + (*SearchHashtagsRequest)(nil), // 105: aryshare.SearchHashtagsRequest + (*SearchHashtagInfo)(nil), // 106: aryshare.SearchHashtagInfo + (*SearchHashtagChild)(nil), // 107: aryshare.SearchHashtagChild + (*SearchHashtagChildren)(nil), // 108: aryshare.SearchHashtagChildren + (*SearchHashtagMedia)(nil), // 109: aryshare.SearchHashtagMedia + (*SearchHashtagsResponse)(nil), // 110: aryshare.SearchHashtagsResponse } var file_pb_ayrshare_proto_depIdxs = []int32{ 0, // 0: aryshare.InstagramOptions.userTags:type_name -> aryshare.UserTag @@ -12341,113 +11399,115 @@ var file_pb_ayrshare_proto_depIdxs = []int32{ 19, // 13: aryshare.GetProfilesResponse.profiles:type_name -> aryshare.ProfileItem 20, // 14: aryshare.GetProfilesResponse.pagination:type_name -> aryshare.Pagination 22, // 15: aryshare.GenerateJWTRequest.email:type_name -> aryshare.Email - 25, // 16: aryshare.HistoryItem.postIds:type_name -> aryshare.HistoryPostId + 27, // 16: aryshare.HistoryItem.postIds:type_name -> aryshare.HistoryPostId 12, // 17: aryshare.HistoryItem.scheduleDate:type_name -> aryshare.Timestamp - 26, // 18: aryshare.GetHistoryResponse.history:type_name -> aryshare.HistoryItem - 25, // 19: aryshare.GetHistoryByIdResponse.postIds:type_name -> aryshare.HistoryPostId + 28, // 18: aryshare.GetHistoryResponse.history:type_name -> aryshare.HistoryItem + 27, // 19: aryshare.GetHistoryByIdResponse.postIds:type_name -> aryshare.HistoryPostId 12, // 20: aryshare.GetHistoryByIdResponse.scheduleDate:type_name -> aryshare.Timestamp - 31, // 21: aryshare.GetHistoryByPlatformResponse.posts:type_name -> aryshare.PlatformPost - 35, // 22: aryshare.SendMessageResponse.messages:type_name -> aryshare.MessageItem - 39, // 23: aryshare.GetMessagesItem.senderDetails:type_name -> aryshare.MessageSenderDetails - 40, // 24: aryshare.GetMessagesItem.recipientDetails:type_name -> aryshare.MessageRecipientDetails - 38, // 25: aryshare.GetMessagesItem.attachments:type_name -> aryshare.MessageAttachment - 41, // 26: aryshare.GetMessagesItem.reactions:type_name -> aryshare.MessageReaction - 43, // 27: aryshare.ConversationDetail.participant:type_name -> aryshare.ConversationParticipant - 42, // 28: aryshare.GetMessagesResponse.messages:type_name -> aryshare.GetMessagesItem - 44, // 29: aryshare.GetMessagesResponse.conversationsDetails:type_name -> aryshare.ConversationDetail - 47, // 30: aryshare.PostCommentResponse.instagram:type_name -> aryshare.InstagramCommentResponse - 48, // 31: aryshare.PostCommentResponse.tiktok:type_name -> aryshare.TikTokCommentResponse - 54, // 32: aryshare.PostCommentResponse.errors:type_name -> aryshare.PlatformError - 49, // 33: aryshare.PostCommentResponse.bluesky:type_name -> aryshare.BlueskyCommentResponse - 50, // 34: aryshare.PostCommentResponse.facebook:type_name -> aryshare.FacebookCommentResponse - 51, // 35: aryshare.PostCommentResponse.linkedin:type_name -> aryshare.LinkedInCommentResponse - 52, // 36: aryshare.PostCommentResponse.twitter:type_name -> aryshare.TwitterCommentResponse - 53, // 37: aryshare.PostCommentResponse.youtube:type_name -> aryshare.YouTubeCommentResponse - 57, // 38: aryshare.InstagramComment.from:type_name -> aryshare.InstagramUser - 59, // 39: aryshare.InstagramComment.replies:type_name -> aryshare.InstagramComment - 58, // 40: aryshare.InstagramComment.user:type_name -> aryshare.InstagramUserInfo - 60, // 41: aryshare.TikTokComment.replies:type_name -> aryshare.TikTokComment - 61, // 42: aryshare.BlueskyComment.replies:type_name -> aryshare.BlueskyComment - 62, // 43: aryshare.FacebookParent.from:type_name -> aryshare.FacebookUser - 62, // 44: aryshare.FacebookComment.from:type_name -> aryshare.FacebookUser - 63, // 45: aryshare.FacebookComment.parent:type_name -> aryshare.FacebookParent - 64, // 46: aryshare.FacebookComment.replies:type_name -> aryshare.FacebookComment - 66, // 47: aryshare.LinkedInComment.from:type_name -> aryshare.LinkedInFrom - 65, // 48: aryshare.LinkedInComment.media:type_name -> aryshare.LinkedInMedia - 68, // 49: aryshare.RedditComment.from:type_name -> aryshare.RedditUser - 70, // 50: aryshare.ThreadsComment.replies:type_name -> aryshare.ThreadsComment - 71, // 51: aryshare.TwitterReplyTo.publicMetrics:type_name -> aryshare.TwitterPublicMetrics - 71, // 52: aryshare.TwitterComment.publicMetrics:type_name -> aryshare.TwitterPublicMetrics - 72, // 53: aryshare.TwitterComment.referencedTweets:type_name -> aryshare.TwitterReferencedTweet - 73, // 54: aryshare.TwitterComment.replyTo:type_name -> aryshare.TwitterReplyTo - 75, // 55: aryshare.YouTubeComment.replies:type_name -> aryshare.YouTubeReply - 59, // 56: aryshare.GetCommentResponse.instagram:type_name -> aryshare.InstagramComment - 60, // 57: aryshare.GetCommentResponse.tiktok:type_name -> aryshare.TikTokComment - 61, // 58: aryshare.GetCommentResponse.bluesky:type_name -> aryshare.BlueskyComment - 64, // 59: aryshare.GetCommentResponse.facebook:type_name -> aryshare.FacebookComment - 67, // 60: aryshare.GetCommentResponse.linkedin:type_name -> aryshare.LinkedInComment - 69, // 61: aryshare.GetCommentResponse.reddit:type_name -> aryshare.RedditComment - 70, // 62: aryshare.GetCommentResponse.threads:type_name -> aryshare.ThreadsComment - 74, // 63: aryshare.GetCommentResponse.twitter:type_name -> aryshare.TwitterComment - 76, // 64: aryshare.GetCommentResponse.youtube:type_name -> aryshare.YouTubeComment - 83, // 65: aryshare.ReplyCommentResponse.instagram:type_name -> aryshare.InstagramReplyResponse - 84, // 66: aryshare.ReplyCommentResponse.tiktok:type_name -> aryshare.TikTokReplyResponse - 85, // 67: aryshare.ReplyCommentResponse.bluesky:type_name -> aryshare.BlueskyReplyResponse - 86, // 68: aryshare.ReplyCommentResponse.facebook:type_name -> aryshare.FacebookReplyResponse - 87, // 69: aryshare.ReplyCommentResponse.linkedin:type_name -> aryshare.LinkedInReplyResponse - 88, // 70: aryshare.ReplyCommentResponse.twitter:type_name -> aryshare.TwitterReplyResponse - 89, // 71: aryshare.ReplyCommentResponse.youtube:type_name -> aryshare.YouTubeReplyResponse - 100, // 72: aryshare.RecommendHashtagsResponse.recommendations:type_name -> aryshare.HashtagRecommendation - 105, // 73: aryshare.SearchHashtagChildren.data:type_name -> aryshare.SearchHashtagChild - 106, // 74: aryshare.SearchHashtagMedia.children:type_name -> aryshare.SearchHashtagChildren - 104, // 75: aryshare.SearchHashtagsResponse.hashtag:type_name -> aryshare.SearchHashtagInfo - 107, // 76: aryshare.SearchHashtagsResponse.searchResults:type_name -> aryshare.SearchHashtagMedia + 33, // 21: aryshare.GetHistoryByPlatformResponse.posts:type_name -> aryshare.PlatformPost + 37, // 22: aryshare.SendMessageResponse.messages:type_name -> aryshare.MessageItem + 41, // 23: aryshare.GetMessagesItem.senderDetails:type_name -> aryshare.MessageSenderDetails + 42, // 24: aryshare.GetMessagesItem.recipientDetails:type_name -> aryshare.MessageRecipientDetails + 40, // 25: aryshare.GetMessagesItem.attachments:type_name -> aryshare.MessageAttachment + 43, // 26: aryshare.GetMessagesItem.reactions:type_name -> aryshare.MessageReaction + 45, // 27: aryshare.ConversationDetail.participant:type_name -> aryshare.ConversationParticipant + 44, // 28: aryshare.GetMessagesResponse.messages:type_name -> aryshare.GetMessagesItem + 46, // 29: aryshare.GetMessagesResponse.conversationsDetails:type_name -> aryshare.ConversationDetail + 49, // 30: aryshare.PostCommentResponse.instagram:type_name -> aryshare.InstagramCommentResponse + 50, // 31: aryshare.PostCommentResponse.tiktok:type_name -> aryshare.TikTokCommentResponse + 56, // 32: aryshare.PostCommentResponse.errors:type_name -> aryshare.PlatformError + 51, // 33: aryshare.PostCommentResponse.bluesky:type_name -> aryshare.BlueskyCommentResponse + 52, // 34: aryshare.PostCommentResponse.facebook:type_name -> aryshare.FacebookCommentResponse + 53, // 35: aryshare.PostCommentResponse.linkedin:type_name -> aryshare.LinkedInCommentResponse + 54, // 36: aryshare.PostCommentResponse.twitter:type_name -> aryshare.TwitterCommentResponse + 55, // 37: aryshare.PostCommentResponse.youtube:type_name -> aryshare.YouTubeCommentResponse + 59, // 38: aryshare.InstagramComment.from:type_name -> aryshare.InstagramUser + 61, // 39: aryshare.InstagramComment.replies:type_name -> aryshare.InstagramComment + 60, // 40: aryshare.InstagramComment.user:type_name -> aryshare.InstagramUserInfo + 62, // 41: aryshare.TikTokComment.replies:type_name -> aryshare.TikTokComment + 63, // 42: aryshare.BlueskyComment.replies:type_name -> aryshare.BlueskyComment + 64, // 43: aryshare.FacebookParent.from:type_name -> aryshare.FacebookUser + 64, // 44: aryshare.FacebookComment.from:type_name -> aryshare.FacebookUser + 65, // 45: aryshare.FacebookComment.parent:type_name -> aryshare.FacebookParent + 66, // 46: aryshare.FacebookComment.replies:type_name -> aryshare.FacebookComment + 68, // 47: aryshare.LinkedInComment.from:type_name -> aryshare.LinkedInFrom + 67, // 48: aryshare.LinkedInComment.media:type_name -> aryshare.LinkedInMedia + 70, // 49: aryshare.RedditComment.from:type_name -> aryshare.RedditUser + 72, // 50: aryshare.ThreadsComment.replies:type_name -> aryshare.ThreadsComment + 73, // 51: aryshare.TwitterReplyTo.publicMetrics:type_name -> aryshare.TwitterPublicMetrics + 73, // 52: aryshare.TwitterComment.publicMetrics:type_name -> aryshare.TwitterPublicMetrics + 74, // 53: aryshare.TwitterComment.referencedTweets:type_name -> aryshare.TwitterReferencedTweet + 75, // 54: aryshare.TwitterComment.replyTo:type_name -> aryshare.TwitterReplyTo + 77, // 55: aryshare.YouTubeComment.replies:type_name -> aryshare.YouTubeReply + 61, // 56: aryshare.GetCommentResponse.instagram:type_name -> aryshare.InstagramComment + 62, // 57: aryshare.GetCommentResponse.tiktok:type_name -> aryshare.TikTokComment + 63, // 58: aryshare.GetCommentResponse.bluesky:type_name -> aryshare.BlueskyComment + 66, // 59: aryshare.GetCommentResponse.facebook:type_name -> aryshare.FacebookComment + 69, // 60: aryshare.GetCommentResponse.linkedin:type_name -> aryshare.LinkedInComment + 71, // 61: aryshare.GetCommentResponse.reddit:type_name -> aryshare.RedditComment + 72, // 62: aryshare.GetCommentResponse.threads:type_name -> aryshare.ThreadsComment + 76, // 63: aryshare.GetCommentResponse.twitter:type_name -> aryshare.TwitterComment + 78, // 64: aryshare.GetCommentResponse.youtube:type_name -> aryshare.YouTubeComment + 85, // 65: aryshare.ReplyCommentResponse.instagram:type_name -> aryshare.InstagramReplyResponse + 86, // 66: aryshare.ReplyCommentResponse.tiktok:type_name -> aryshare.TikTokReplyResponse + 87, // 67: aryshare.ReplyCommentResponse.bluesky:type_name -> aryshare.BlueskyReplyResponse + 88, // 68: aryshare.ReplyCommentResponse.facebook:type_name -> aryshare.FacebookReplyResponse + 89, // 69: aryshare.ReplyCommentResponse.linkedin:type_name -> aryshare.LinkedInReplyResponse + 90, // 70: aryshare.ReplyCommentResponse.twitter:type_name -> aryshare.TwitterReplyResponse + 91, // 71: aryshare.ReplyCommentResponse.youtube:type_name -> aryshare.YouTubeReplyResponse + 102, // 72: aryshare.RecommendHashtagsResponse.recommendations:type_name -> aryshare.HashtagRecommendation + 107, // 73: aryshare.SearchHashtagChildren.data:type_name -> aryshare.SearchHashtagChild + 108, // 74: aryshare.SearchHashtagMedia.children:type_name -> aryshare.SearchHashtagChildren + 106, // 75: aryshare.SearchHashtagsResponse.hashtag:type_name -> aryshare.SearchHashtagInfo + 109, // 76: aryshare.SearchHashtagsResponse.searchResults:type_name -> aryshare.SearchHashtagMedia 5, // 77: aryshare.Ayrshare.Post:input_type -> aryshare.PostRequest 9, // 78: aryshare.Ayrshare.GetPost:input_type -> aryshare.GetPostRequest 11, // 79: aryshare.Ayrshare.GetUser:input_type -> aryshare.GetUserRequest 16, // 80: aryshare.Ayrshare.CreateProfile:input_type -> aryshare.CreateProfileRequest 18, // 81: aryshare.Ayrshare.GetProfiles:input_type -> aryshare.GetProfilesRequest 23, // 82: aryshare.Ayrshare.GenerateJWT:input_type -> aryshare.GenerateJWTRequest - 27, // 83: aryshare.Ayrshare.GetHistory:input_type -> aryshare.GetHistoryRequest - 29, // 84: aryshare.Ayrshare.GetHistoryById:input_type -> aryshare.GetHistoryByIdRequest - 32, // 85: aryshare.Ayrshare.GetHistoryByPlatform:input_type -> aryshare.GetHistoryByPlatformRequest - 34, // 86: aryshare.Ayrshare.SendMessage:input_type -> aryshare.SendMessageRequest - 37, // 87: aryshare.Ayrshare.GetMessages:input_type -> aryshare.GetMessagesRequest - 46, // 88: aryshare.Ayrshare.PostComment:input_type -> aryshare.PostCommentRequest - 56, // 89: aryshare.Ayrshare.GetComment:input_type -> aryshare.GetCommentRequest - 78, // 90: aryshare.Ayrshare.DeleteComment:input_type -> aryshare.DeleteCommentRequest - 82, // 91: aryshare.Ayrshare.ReplyComment:input_type -> aryshare.ReplyCommentRequest - 91, // 92: aryshare.Ayrshare.GetPostAnalytics:input_type -> aryshare.GetPostAnalyticsRequest - 92, // 93: aryshare.Ayrshare.GetPostAnalyticsBySocialID:input_type -> aryshare.GetPostAnalyticsBySocialIDRequest - 94, // 94: aryshare.Ayrshare.GetSocialAnalytics:input_type -> aryshare.GetSocialAnalyticsRequest - 96, // 95: aryshare.Ayrshare.AutoHashtags:input_type -> aryshare.AutoHashtagsRequest - 98, // 96: aryshare.Ayrshare.CheckBannedHashtag:input_type -> aryshare.CheckBannedHashtagRequest - 101, // 97: aryshare.Ayrshare.RecommendHashtags:input_type -> aryshare.RecommendHashtagsRequest - 103, // 98: aryshare.Ayrshare.SearchHashtags:input_type -> aryshare.SearchHashtagsRequest - 8, // 99: aryshare.Ayrshare.Post:output_type -> aryshare.PostResponse - 10, // 100: aryshare.Ayrshare.GetPost:output_type -> aryshare.GetPostResponse - 15, // 101: aryshare.Ayrshare.GetUser:output_type -> aryshare.GetUserResponse - 17, // 102: aryshare.Ayrshare.CreateProfile:output_type -> aryshare.CreateProfileResponse - 21, // 103: aryshare.Ayrshare.GetProfiles:output_type -> aryshare.GetProfilesResponse - 24, // 104: aryshare.Ayrshare.GenerateJWT:output_type -> aryshare.GenerateJWTResponse - 28, // 105: aryshare.Ayrshare.GetHistory:output_type -> aryshare.GetHistoryResponse - 30, // 106: aryshare.Ayrshare.GetHistoryById:output_type -> aryshare.GetHistoryByIdResponse - 33, // 107: aryshare.Ayrshare.GetHistoryByPlatform:output_type -> aryshare.GetHistoryByPlatformResponse - 36, // 108: aryshare.Ayrshare.SendMessage:output_type -> aryshare.SendMessageResponse - 45, // 109: aryshare.Ayrshare.GetMessages:output_type -> aryshare.GetMessagesResponse - 55, // 110: aryshare.Ayrshare.PostComment:output_type -> aryshare.PostCommentResponse - 77, // 111: aryshare.Ayrshare.GetComment:output_type -> aryshare.GetCommentResponse - 81, // 112: aryshare.Ayrshare.DeleteComment:output_type -> aryshare.DeleteCommentResponse - 90, // 113: aryshare.Ayrshare.ReplyComment:output_type -> aryshare.ReplyCommentResponse - 93, // 114: aryshare.Ayrshare.GetPostAnalytics:output_type -> aryshare.GetPostAnalyticsResponse - 93, // 115: aryshare.Ayrshare.GetPostAnalyticsBySocialID:output_type -> aryshare.GetPostAnalyticsResponse - 95, // 116: aryshare.Ayrshare.GetSocialAnalytics:output_type -> aryshare.GetSocialAnalyticsResponse - 97, // 117: aryshare.Ayrshare.AutoHashtags:output_type -> aryshare.AutoHashtagsResponse - 99, // 118: aryshare.Ayrshare.CheckBannedHashtag:output_type -> aryshare.CheckBannedHashtagResponse - 102, // 119: aryshare.Ayrshare.RecommendHashtags:output_type -> aryshare.RecommendHashtagsResponse - 108, // 120: aryshare.Ayrshare.SearchHashtags:output_type -> aryshare.SearchHashtagsResponse - 99, // [99:121] is the sub-list for method output_type - 77, // [77:99] is the sub-list for method input_type + 25, // 83: aryshare.Ayrshare.UnlinkSocialNetwork:input_type -> aryshare.UnlinkSocialNetworkRequest + 29, // 84: aryshare.Ayrshare.GetHistory:input_type -> aryshare.GetHistoryRequest + 31, // 85: aryshare.Ayrshare.GetHistoryById:input_type -> aryshare.GetHistoryByIdRequest + 34, // 86: aryshare.Ayrshare.GetHistoryByPlatform:input_type -> aryshare.GetHistoryByPlatformRequest + 36, // 87: aryshare.Ayrshare.SendMessage:input_type -> aryshare.SendMessageRequest + 39, // 88: aryshare.Ayrshare.GetMessages:input_type -> aryshare.GetMessagesRequest + 48, // 89: aryshare.Ayrshare.PostComment:input_type -> aryshare.PostCommentRequest + 58, // 90: aryshare.Ayrshare.GetComment:input_type -> aryshare.GetCommentRequest + 80, // 91: aryshare.Ayrshare.DeleteComment:input_type -> aryshare.DeleteCommentRequest + 84, // 92: aryshare.Ayrshare.ReplyComment:input_type -> aryshare.ReplyCommentRequest + 93, // 93: aryshare.Ayrshare.GetPostAnalytics:input_type -> aryshare.GetPostAnalyticsRequest + 94, // 94: aryshare.Ayrshare.GetPostAnalyticsBySocialID:input_type -> aryshare.GetPostAnalyticsBySocialIDRequest + 96, // 95: aryshare.Ayrshare.GetSocialAnalytics:input_type -> aryshare.GetSocialAnalyticsRequest + 98, // 96: aryshare.Ayrshare.AutoHashtags:input_type -> aryshare.AutoHashtagsRequest + 100, // 97: aryshare.Ayrshare.CheckBannedHashtag:input_type -> aryshare.CheckBannedHashtagRequest + 103, // 98: aryshare.Ayrshare.RecommendHashtags:input_type -> aryshare.RecommendHashtagsRequest + 105, // 99: aryshare.Ayrshare.SearchHashtags:input_type -> aryshare.SearchHashtagsRequest + 8, // 100: aryshare.Ayrshare.Post:output_type -> aryshare.PostResponse + 10, // 101: aryshare.Ayrshare.GetPost:output_type -> aryshare.GetPostResponse + 15, // 102: aryshare.Ayrshare.GetUser:output_type -> aryshare.GetUserResponse + 17, // 103: aryshare.Ayrshare.CreateProfile:output_type -> aryshare.CreateProfileResponse + 21, // 104: aryshare.Ayrshare.GetProfiles:output_type -> aryshare.GetProfilesResponse + 24, // 105: aryshare.Ayrshare.GenerateJWT:output_type -> aryshare.GenerateJWTResponse + 26, // 106: aryshare.Ayrshare.UnlinkSocialNetwork:output_type -> aryshare.UnlinkSocialNetworkResponse + 30, // 107: aryshare.Ayrshare.GetHistory:output_type -> aryshare.GetHistoryResponse + 32, // 108: aryshare.Ayrshare.GetHistoryById:output_type -> aryshare.GetHistoryByIdResponse + 35, // 109: aryshare.Ayrshare.GetHistoryByPlatform:output_type -> aryshare.GetHistoryByPlatformResponse + 38, // 110: aryshare.Ayrshare.SendMessage:output_type -> aryshare.SendMessageResponse + 47, // 111: aryshare.Ayrshare.GetMessages:output_type -> aryshare.GetMessagesResponse + 57, // 112: aryshare.Ayrshare.PostComment:output_type -> aryshare.PostCommentResponse + 79, // 113: aryshare.Ayrshare.GetComment:output_type -> aryshare.GetCommentResponse + 83, // 114: aryshare.Ayrshare.DeleteComment:output_type -> aryshare.DeleteCommentResponse + 92, // 115: aryshare.Ayrshare.ReplyComment:output_type -> aryshare.ReplyCommentResponse + 95, // 116: aryshare.Ayrshare.GetPostAnalytics:output_type -> aryshare.GetPostAnalyticsResponse + 95, // 117: aryshare.Ayrshare.GetPostAnalyticsBySocialID:output_type -> aryshare.GetPostAnalyticsResponse + 97, // 118: aryshare.Ayrshare.GetSocialAnalytics:output_type -> aryshare.GetSocialAnalyticsResponse + 99, // 119: aryshare.Ayrshare.AutoHashtags:output_type -> aryshare.AutoHashtagsResponse + 101, // 120: aryshare.Ayrshare.CheckBannedHashtag:output_type -> aryshare.CheckBannedHashtagResponse + 104, // 121: aryshare.Ayrshare.RecommendHashtags:output_type -> aryshare.RecommendHashtagsResponse + 110, // 122: aryshare.Ayrshare.SearchHashtags:output_type -> aryshare.SearchHashtagsResponse + 100, // [100:123] is the sub-list for method output_type + 77, // [77:100] is the sub-list for method input_type 77, // [77:77] is the sub-list for extension type_name 77, // [77:77] is the sub-list for extension extendee 0, // [0:77] is the sub-list for field type_name @@ -12458,1317 +11518,7 @@ func file_pb_ayrshare_proto_init() { if File_pb_ayrshare_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_pb_ayrshare_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserTag); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InstagramOptions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TikTokOptions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*YouTubeOptions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlueskyOptions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostId); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostItem); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPostRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPostResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Timestamp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TwitterUsage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DisplayName); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserResponse); 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].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateProfileRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateProfileResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProfilesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProfileItem); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Pagination); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProfilesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Email); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pb_ayrshare_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenerateJWTRequest); 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.(*GenerateJWTResponse); 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.(*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[26].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[27].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[28].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[29].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[30].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[31].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[32].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[33].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[34].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[35].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[36].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[37].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[38].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[39].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[40].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[41].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[42].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[43].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[44].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[45].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[46].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[47].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[48].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[49].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[50].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[51].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[52].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[53].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[54].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[55].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[56].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[57].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[58].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[59].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[60].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[61].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[62].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[63].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[64].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[65].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[66].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[67].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[68].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[69].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[70].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[71].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[72].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[73].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[74].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[75].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[76].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[77].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[78].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[79].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[80].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[81].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[82].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[83].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[84].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[85].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[86].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[87].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[88].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[89].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[90].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[91].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[92].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[93].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[94].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[95].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[96].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[97].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[98].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[99].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[100].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[101].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[102].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[103].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[104].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[105].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[106].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[107].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[108].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[18].OneofWrappers = []interface{}{ + file_pb_ayrshare_proto_msgTypes[18].OneofWrappers = []any{ (*GetProfilesRequest_ActionLogBool)(nil), (*GetProfilesRequest_ActionLogInt)(nil), } @@ -13776,9 +11526,9 @@ func file_pb_ayrshare_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_pb_ayrshare_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_pb_ayrshare_proto_rawDesc), len(file_pb_ayrshare_proto_rawDesc)), NumEnums: 0, - NumMessages: 109, + NumMessages: 111, NumExtensions: 0, NumServices: 1, }, @@ -13787,7 +11537,6 @@ func file_pb_ayrshare_proto_init() { MessageInfos: file_pb_ayrshare_proto_msgTypes, }.Build() File_pb_ayrshare_proto = out.File - file_pb_ayrshare_proto_rawDesc = nil file_pb_ayrshare_proto_goTypes = nil file_pb_ayrshare_proto_depIdxs = nil } diff --git a/pb/aryshare/ayrshare.validator.pb.go b/pb/aryshare/ayrshare.validator.pb.go index 6854fcd..8df25ee 100644 --- a/pb/aryshare/ayrshare.validator.pb.go +++ b/pb/aryshare/ayrshare.validator.pb.go @@ -206,6 +206,15 @@ func (this *GenerateJWTRequest) Validate() error { func (this *GenerateJWTResponse) Validate() error { return nil } +func (this *UnlinkSocialNetworkRequest) Validate() error { + if this.Platform == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Platform", fmt.Errorf(`platform不能为空`)) + } + return nil +} +func (this *UnlinkSocialNetworkResponse) Validate() error { + return nil +} func (this *HistoryPostId) Validate() error { return nil } diff --git a/pb/aryshare/ayrshare_triple.pb.go b/pb/aryshare/ayrshare_triple.pb.go index 6c186f4..21b8eee 100644 --- a/pb/aryshare/ayrshare_triple.pb.go +++ b/pb/aryshare/ayrshare_triple.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-triple. DO NOT EDIT. // versions: // - protoc-gen-go-triple v1.0.8 -// - protoc v3.21.1 +// - protoc v6.32.0--rc2 // source: pb/ayrshare.proto package aryshare @@ -37,6 +37,7 @@ 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) + UnlinkSocialNetwork(ctx context.Context, in *UnlinkSocialNetworkRequest, opts ...grpc_go.CallOption) (*UnlinkSocialNetworkResponse, 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) @@ -71,6 +72,7 @@ type AyrshareClientImpl struct { 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) + UnlinkSocialNetwork func(ctx context.Context, in *UnlinkSocialNetworkRequest) (*UnlinkSocialNetworkResponse, 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) @@ -137,6 +139,12 @@ func (c *ayrshareClient) GenerateJWT(ctx context.Context, in *GenerateJWTRequest return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GenerateJWT", in, out) } +func (c *ayrshareClient) UnlinkSocialNetwork(ctx context.Context, in *UnlinkSocialNetworkRequest, opts ...grpc_go.CallOption) (*UnlinkSocialNetworkResponse, common.ErrorWithAttachment) { + out := new(UnlinkSocialNetworkResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UnlinkSocialNetwork", 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) @@ -246,6 +254,7 @@ type AyrshareServer interface { CreateProfile(context.Context, *CreateProfileRequest) (*CreateProfileResponse, error) GetProfiles(context.Context, *GetProfilesRequest) (*GetProfilesResponse, error) GenerateJWT(context.Context, *GenerateJWTRequest) (*GenerateJWTResponse, error) + UnlinkSocialNetwork(context.Context, *UnlinkSocialNetworkRequest) (*UnlinkSocialNetworkResponse, error) // 历史记录相关 api GetHistory(context.Context, *GetHistoryRequest) (*GetHistoryResponse, error) GetHistoryById(context.Context, *GetHistoryByIdRequest) (*GetHistoryByIdResponse, error) @@ -293,6 +302,9 @@ 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) UnlinkSocialNetwork(context.Context, *UnlinkSocialNetworkRequest) (*UnlinkSocialNetworkResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UnlinkSocialNetwork not implemented") +} func (UnimplementedAyrshareServer) GetHistory(context.Context, *GetHistoryRequest) (*GetHistoryResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetHistory not implemented") } @@ -543,6 +555,35 @@ func _Ayrshare_GenerateJWT_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _Ayrshare_UnlinkSocialNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UnlinkSocialNetworkRequest) + 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("UnlinkSocialNetwork", 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_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 { @@ -1038,6 +1079,10 @@ var Ayrshare_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "GenerateJWT", Handler: _Ayrshare_GenerateJWT_Handler, }, + { + MethodName: "UnlinkSocialNetwork", + Handler: _Ayrshare_UnlinkSocialNetwork_Handler, + }, { MethodName: "GetHistory", Handler: _Ayrshare_GetHistory_Handler, diff --git a/pb/ayrshare.proto b/pb/ayrshare.proto index aa6f9ab..9a03b47 100644 --- a/pb/ayrshare.proto +++ b/pb/ayrshare.proto @@ -18,6 +18,7 @@ service Ayrshare { rpc CreateProfile(CreateProfileRequest) returns (CreateProfileResponse); rpc GetProfiles(GetProfilesRequest) returns (GetProfilesResponse); rpc GenerateJWT(GenerateJWTRequest) returns (GenerateJWTResponse); + rpc UnlinkSocialNetwork(UnlinkSocialNetworkRequest) returns (UnlinkSocialNetworkResponse); // 历史记录相关 api rpc GetHistory(GetHistoryRequest) returns (GetHistoryResponse); @@ -350,6 +351,19 @@ message GenerateJWTResponse { string expiresIn = 6 [json_name = "expiresIn"]; } +// 解除社交网络连接请求 +message UnlinkSocialNetworkRequest { + string platform = 1 [json_name = "platform", (validator.field) = {string_not_empty: true, human_error: "platform不能为空"}]; + string profileKey = 2 [json_name = "profileKey"]; +} + +// 解除社交网络连接响应 +message UnlinkSocialNetworkResponse { + string status = 1 [json_name = "status"]; + string platform = 2 [json_name = "platform"]; + string refId = 3 [json_name = "refId"]; +} + // 历史记录中的帖子 ID message HistoryPostId { string status = 1 [json_name = "status"]; diff --git a/pkg/msg/profile_msg.go b/pkg/msg/profile_msg.go index dc902bf..6f9ba2c 100644 --- a/pkg/msg/profile_msg.go +++ b/pkg/msg/profile_msg.go @@ -3,6 +3,7 @@ package msg const ( ErrProfileTitleEmpty = "用户配置标题不能为空" ErrProfileEmailRequiredWhenTeamTrue = "当team为true时,email不能为空" + ErrPlatformEmpty = "平台名称不能为空" ErrorCreateProfileFailed = "创建用户配置失败" ErrorGetProfilesFailed = "获取用户配置列表失败" )