// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 // protoc v3.21.8 // source: bili_api.proto package pb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type StatRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid uint64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` } func (x *StatRequest) Reset() { *x = StatRequest{} if protoimpl.UnsafeEnabled { mi := &file_bili_api_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StatRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StatRequest) ProtoMessage() {} func (x *StatRequest) ProtoReflect() protoreflect.Message { mi := &file_bili_api_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StatRequest.ProtoReflect.Descriptor instead. func (*StatRequest) Descriptor() ([]byte, []int) { return file_bili_api_proto_rawDescGZIP(), []int{0} } func (x *StatRequest) GetUid() uint64 { if x != nil { return x.Uid } return 0 } type StatReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` Data *StatReply_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *StatReply) Reset() { *x = StatReply{} if protoimpl.UnsafeEnabled { mi := &file_bili_api_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StatReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*StatReply) ProtoMessage() {} func (x *StatReply) ProtoReflect() protoreflect.Message { mi := &file_bili_api_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StatReply.ProtoReflect.Descriptor instead. func (*StatReply) Descriptor() ([]byte, []int) { return file_bili_api_proto_rawDescGZIP(), []int{1} } func (x *StatReply) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *StatReply) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *StatReply) GetData() *StatReply_Data { if x != nil { return x.Data } return nil } type InfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid uint64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` } func (x *InfoRequest) Reset() { *x = InfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_bili_api_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*InfoRequest) ProtoMessage() {} func (x *InfoRequest) ProtoReflect() protoreflect.Message { mi := &file_bili_api_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InfoRequest.ProtoReflect.Descriptor instead. func (*InfoRequest) Descriptor() ([]byte, []int) { return file_bili_api_proto_rawDescGZIP(), []int{2} } func (x *InfoRequest) GetUid() uint64 { if x != nil { return x.Uid } return 0 } type InfoReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` Data *InfoReply_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *InfoReply) Reset() { *x = InfoReply{} if protoimpl.UnsafeEnabled { mi := &file_bili_api_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InfoReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*InfoReply) ProtoMessage() {} func (x *InfoReply) ProtoReflect() protoreflect.Message { mi := &file_bili_api_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InfoReply.ProtoReflect.Descriptor instead. func (*InfoReply) Descriptor() ([]byte, []int) { return file_bili_api_proto_rawDescGZIP(), []int{3} } func (x *InfoReply) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *InfoReply) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *InfoReply) GetData() *InfoReply_Data { if x != nil { return x.Data } return nil } type SearchVideoReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"` Order string `protobuf:"bytes,2,opt,name=order,proto3" json:"order,omitempty"` Page uint32 `protobuf:"varint,3,opt,name=page,proto3" json:"page,omitempty"` Cookie string `protobuf:"bytes,4,opt,name=cookie,proto3" json:"cookie,omitempty"` } func (x *SearchVideoReq) Reset() { *x = SearchVideoReq{} if protoimpl.UnsafeEnabled { mi := &file_bili_api_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchVideoReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchVideoReq) ProtoMessage() {} func (x *SearchVideoReq) ProtoReflect() protoreflect.Message { mi := &file_bili_api_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SearchVideoReq.ProtoReflect.Descriptor instead. func (*SearchVideoReq) Descriptor() ([]byte, []int) { return file_bili_api_proto_rawDescGZIP(), []int{4} } func (x *SearchVideoReq) GetKeyword() string { if x != nil { return x.Keyword } return "" } func (x *SearchVideoReq) GetOrder() string { if x != nil { return x.Order } return "" } func (x *SearchVideoReq) GetPage() uint32 { if x != nil { return x.Page } return 0 } func (x *SearchVideoReq) GetCookie() string { if x != nil { return x.Cookie } return "" } type SearchVideoResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` Author string `protobuf:"bytes,3,opt,name=author,proto3" json:"author,omitempty"` Mid uint64 `protobuf:"varint,4,opt,name=mid,proto3" json:"mid,omitempty"` Typeid string `protobuf:"bytes,5,opt,name=typeid,proto3" json:"typeid,omitempty"` Typename string `protobuf:"bytes,6,opt,name=typename,proto3" json:"typename,omitempty"` Arcurl string `protobuf:"bytes,7,opt,name=arcurl,proto3" json:"arcurl,omitempty"` Aid uint64 `protobuf:"varint,8,opt,name=aid,proto3" json:"aid,omitempty"` Bvid string `protobuf:"bytes,9,opt,name=bvid,proto3" json:"bvid,omitempty"` Title string `protobuf:"bytes,10,opt,name=title,proto3" json:"title,omitempty"` Description string `protobuf:"bytes,11,opt,name=description,proto3" json:"description,omitempty"` Arcrank string `protobuf:"bytes,12,opt,name=arcrank,proto3" json:"arcrank,omitempty"` Pic string `protobuf:"bytes,13,opt,name=pic,proto3" json:"pic,omitempty"` Play uint32 `protobuf:"varint,14,opt,name=play,proto3" json:"play,omitempty"` VideoReview uint32 `protobuf:"varint,15,opt,name=video_review,json=videoReview,proto3" json:"video_review,omitempty"` Favorites uint32 `protobuf:"varint,16,opt,name=favorites,proto3" json:"favorites,omitempty"` Tag string `protobuf:"bytes,17,opt,name=tag,proto3" json:"tag,omitempty"` Review uint32 `protobuf:"varint,18,opt,name=review,proto3" json:"review,omitempty"` Pubdate uint32 `protobuf:"varint,19,opt,name=pubdate,proto3" json:"pubdate,omitempty"` Senddate uint32 `protobuf:"varint,20,opt,name=senddate,proto3" json:"senddate,omitempty"` Duration string `protobuf:"bytes,21,opt,name=duration,proto3" json:"duration,omitempty"` Badgepay bool `protobuf:"varint,22,opt,name=badgepay,proto3" json:"badgepay,omitempty"` HitColumns []string `protobuf:"bytes,23,rep,name=hit_columns,json=hitColumns,proto3" json:"hit_columns,omitempty"` ViewType string `protobuf:"bytes,24,opt,name=view_type,json=viewType,proto3" json:"view_type,omitempty"` IsPay uint32 `protobuf:"varint,25,opt,name=is_pay,json=isPay,proto3" json:"is_pay,omitempty"` IsUnionVideo uint32 `protobuf:"varint,26,opt,name=is_union_video,json=isUnionVideo,proto3" json:"is_union_video,omitempty"` RecTags []string `protobuf:"bytes,27,rep,name=rec_tags,json=recTags,proto3" json:"rec_tags,omitempty"` NewRecTags []string `protobuf:"bytes,28,rep,name=new_rec_tags,json=newRecTags,proto3" json:"new_rec_tags,omitempty"` RankScore uint32 `protobuf:"varint,29,opt,name=rank_score,json=rankScore,proto3" json:"rank_score,omitempty"` Like uint32 `protobuf:"varint,30,opt,name=like,proto3" json:"like,omitempty"` Upic string `protobuf:"bytes,31,opt,name=upic,proto3" json:"upic,omitempty"` Corner string `protobuf:"bytes,32,opt,name=corner,proto3" json:"corner,omitempty"` Cover string `protobuf:"bytes,33,opt,name=cover,proto3" json:"cover,omitempty"` Desc string `protobuf:"bytes,34,opt,name=desc,proto3" json:"desc,omitempty"` Url string `protobuf:"bytes,35,opt,name=url,proto3" json:"url,omitempty"` RecReason string `protobuf:"bytes,36,opt,name=rec_reason,json=recReason,proto3" json:"rec_reason,omitempty"` Danmaku uint32 `protobuf:"varint,37,opt,name=danmaku,proto3" json:"danmaku,omitempty"` } func (x *SearchVideoResult) Reset() { *x = SearchVideoResult{} if protoimpl.UnsafeEnabled { mi := &file_bili_api_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchVideoResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchVideoResult) ProtoMessage() {} func (x *SearchVideoResult) ProtoReflect() protoreflect.Message { mi := &file_bili_api_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SearchVideoResult.ProtoReflect.Descriptor instead. func (*SearchVideoResult) Descriptor() ([]byte, []int) { return file_bili_api_proto_rawDescGZIP(), []int{5} } func (x *SearchVideoResult) GetType() string { if x != nil { return x.Type } return "" } func (x *SearchVideoResult) GetId() uint64 { if x != nil { return x.Id } return 0 } func (x *SearchVideoResult) GetAuthor() string { if x != nil { return x.Author } return "" } func (x *SearchVideoResult) GetMid() uint64 { if x != nil { return x.Mid } return 0 } func (x *SearchVideoResult) GetTypeid() string { if x != nil { return x.Typeid } return "" } func (x *SearchVideoResult) GetTypename() string { if x != nil { return x.Typename } return "" } func (x *SearchVideoResult) GetArcurl() string { if x != nil { return x.Arcurl } return "" } func (x *SearchVideoResult) GetAid() uint64 { if x != nil { return x.Aid } return 0 } func (x *SearchVideoResult) GetBvid() string { if x != nil { return x.Bvid } return "" } func (x *SearchVideoResult) GetTitle() string { if x != nil { return x.Title } return "" } func (x *SearchVideoResult) GetDescription() string { if x != nil { return x.Description } return "" } func (x *SearchVideoResult) GetArcrank() string { if x != nil { return x.Arcrank } return "" } func (x *SearchVideoResult) GetPic() string { if x != nil { return x.Pic } return "" } func (x *SearchVideoResult) GetPlay() uint32 { if x != nil { return x.Play } return 0 } func (x *SearchVideoResult) GetVideoReview() uint32 { if x != nil { return x.VideoReview } return 0 } func (x *SearchVideoResult) GetFavorites() uint32 { if x != nil { return x.Favorites } return 0 } func (x *SearchVideoResult) GetTag() string { if x != nil { return x.Tag } return "" } func (x *SearchVideoResult) GetReview() uint32 { if x != nil { return x.Review } return 0 } func (x *SearchVideoResult) GetPubdate() uint32 { if x != nil { return x.Pubdate } return 0 } func (x *SearchVideoResult) GetSenddate() uint32 { if x != nil { return x.Senddate } return 0 } func (x *SearchVideoResult) GetDuration() string { if x != nil { return x.Duration } return "" } func (x *SearchVideoResult) GetBadgepay() bool { if x != nil { return x.Badgepay } return false } func (x *SearchVideoResult) GetHitColumns() []string { if x != nil { return x.HitColumns } return nil } func (x *SearchVideoResult) GetViewType() string { if x != nil { return x.ViewType } return "" } func (x *SearchVideoResult) GetIsPay() uint32 { if x != nil { return x.IsPay } return 0 } func (x *SearchVideoResult) GetIsUnionVideo() uint32 { if x != nil { return x.IsUnionVideo } return 0 } func (x *SearchVideoResult) GetRecTags() []string { if x != nil { return x.RecTags } return nil } func (x *SearchVideoResult) GetNewRecTags() []string { if x != nil { return x.NewRecTags } return nil } func (x *SearchVideoResult) GetRankScore() uint32 { if x != nil { return x.RankScore } return 0 } func (x *SearchVideoResult) GetLike() uint32 { if x != nil { return x.Like } return 0 } func (x *SearchVideoResult) GetUpic() string { if x != nil { return x.Upic } return "" } func (x *SearchVideoResult) GetCorner() string { if x != nil { return x.Corner } return "" } func (x *SearchVideoResult) GetCover() string { if x != nil { return x.Cover } return "" } func (x *SearchVideoResult) GetDesc() string { if x != nil { return x.Desc } return "" } func (x *SearchVideoResult) GetUrl() string { if x != nil { return x.Url } return "" } func (x *SearchVideoResult) GetRecReason() string { if x != nil { return x.RecReason } return "" } func (x *SearchVideoResult) GetDanmaku() uint32 { if x != nil { return x.Danmaku } return 0 } type SearchVideoReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` Data *SearchVideoReply_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *SearchVideoReply) Reset() { *x = SearchVideoReply{} if protoimpl.UnsafeEnabled { mi := &file_bili_api_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchVideoReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchVideoReply) ProtoMessage() {} func (x *SearchVideoReply) ProtoReflect() protoreflect.Message { mi := &file_bili_api_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SearchVideoReply.ProtoReflect.Descriptor instead. func (*SearchVideoReply) Descriptor() ([]byte, []int) { return file_bili_api_proto_rawDescGZIP(), []int{6} } func (x *SearchVideoReply) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *SearchVideoReply) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *SearchVideoReply) GetData() *SearchVideoReply_Data { if x != nil { return x.Data } return nil } type SearchLiveRoomReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"` Order string `protobuf:"bytes,2,opt,name=order,proto3" json:"order,omitempty"` Page uint32 `protobuf:"varint,3,opt,name=page,proto3" json:"page,omitempty"` Cookie string `protobuf:"bytes,4,opt,name=cookie,proto3" json:"cookie,omitempty"` } func (x *SearchLiveRoomReq) Reset() { *x = SearchLiveRoomReq{} if protoimpl.UnsafeEnabled { mi := &file_bili_api_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchLiveRoomReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchLiveRoomReq) ProtoMessage() {} func (x *SearchLiveRoomReq) ProtoReflect() protoreflect.Message { mi := &file_bili_api_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SearchLiveRoomReq.ProtoReflect.Descriptor instead. func (*SearchLiveRoomReq) Descriptor() ([]byte, []int) { return file_bili_api_proto_rawDescGZIP(), []int{7} } func (x *SearchLiveRoomReq) GetKeyword() string { if x != nil { return x.Keyword } return "" } func (x *SearchLiveRoomReq) GetOrder() string { if x != nil { return x.Order } return "" } func (x *SearchLiveRoomReq) GetPage() uint32 { if x != nil { return x.Page } return 0 } func (x *SearchLiveRoomReq) GetCookie() string { if x != nil { return x.Cookie } return "" } type SearchLiveRoomResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RankOffset uint32 `protobuf:"varint,1,opt,name=rank_offset,json=rankOffset,proto3" json:"rank_offset,omitempty"` Uid uint64 `protobuf:"varint,2,opt,name=uid,proto3" json:"uid,omitempty"` Tags string `protobuf:"bytes,3,opt,name=tags,proto3" json:"tags,omitempty"` HitColumns []string `protobuf:"bytes,4,rep,name=hit_columns,json=hitColumns,proto3" json:"hit_columns,omitempty"` LiveTime string `protobuf:"bytes,5,opt,name=live_time,json=liveTime,proto3" json:"live_time,omitempty"` CateName string `protobuf:"bytes,6,opt,name=cate_name,json=cateName,proto3" json:"cate_name,omitempty"` LiveStatus uint32 `protobuf:"varint,7,opt,name=live_status,json=liveStatus,proto3" json:"live_status,omitempty"` Uname string `protobuf:"bytes,8,opt,name=uname,proto3" json:"uname,omitempty"` Uface string `protobuf:"bytes,9,opt,name=uface,proto3" json:"uface,omitempty"` UserCover string `protobuf:"bytes,10,opt,name=user_cover,json=userCover,proto3" json:"user_cover,omitempty"` ShortId uint32 `protobuf:"varint,11,opt,name=short_id,json=shortId,proto3" json:"short_id,omitempty"` Area uint32 `protobuf:"varint,12,opt,name=area,proto3" json:"area,omitempty"` Type string `protobuf:"bytes,13,opt,name=type,proto3" json:"type,omitempty"` Title string `protobuf:"bytes,14,opt,name=title,proto3" json:"title,omitempty"` Cover string `protobuf:"bytes,15,opt,name=cover,proto3" json:"cover,omitempty"` Online uint32 `protobuf:"varint,16,opt,name=online,proto3" json:"online,omitempty"` IsLiveRoomInline uint32 `protobuf:"varint,17,opt,name=is_live_room_inline,json=isLiveRoomInline,proto3" json:"is_live_room_inline,omitempty"` RankIndex uint32 `protobuf:"varint,18,opt,name=rank_index,json=rankIndex,proto3" json:"rank_index,omitempty"` RankScore uint32 `protobuf:"varint,19,opt,name=rank_score,json=rankScore,proto3" json:"rank_score,omitempty"` Roomid uint64 `protobuf:"varint,20,opt,name=roomid,proto3" json:"roomid,omitempty"` Attentions uint32 `protobuf:"varint,21,opt,name=attentions,proto3" json:"attentions,omitempty"` } func (x *SearchLiveRoomResult) Reset() { *x = SearchLiveRoomResult{} if protoimpl.UnsafeEnabled { mi := &file_bili_api_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchLiveRoomResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchLiveRoomResult) ProtoMessage() {} func (x *SearchLiveRoomResult) ProtoReflect() protoreflect.Message { mi := &file_bili_api_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SearchLiveRoomResult.ProtoReflect.Descriptor instead. func (*SearchLiveRoomResult) Descriptor() ([]byte, []int) { return file_bili_api_proto_rawDescGZIP(), []int{8} } func (x *SearchLiveRoomResult) GetRankOffset() uint32 { if x != nil { return x.RankOffset } return 0 } func (x *SearchLiveRoomResult) GetUid() uint64 { if x != nil { return x.Uid } return 0 } func (x *SearchLiveRoomResult) GetTags() string { if x != nil { return x.Tags } return "" } func (x *SearchLiveRoomResult) GetHitColumns() []string { if x != nil { return x.HitColumns } return nil } func (x *SearchLiveRoomResult) GetLiveTime() string { if x != nil { return x.LiveTime } return "" } func (x *SearchLiveRoomResult) GetCateName() string { if x != nil { return x.CateName } return "" } func (x *SearchLiveRoomResult) GetLiveStatus() uint32 { if x != nil { return x.LiveStatus } return 0 } func (x *SearchLiveRoomResult) GetUname() string { if x != nil { return x.Uname } return "" } func (x *SearchLiveRoomResult) GetUface() string { if x != nil { return x.Uface } return "" } func (x *SearchLiveRoomResult) GetUserCover() string { if x != nil { return x.UserCover } return "" } func (x *SearchLiveRoomResult) GetShortId() uint32 { if x != nil { return x.ShortId } return 0 } func (x *SearchLiveRoomResult) GetArea() uint32 { if x != nil { return x.Area } return 0 } func (x *SearchLiveRoomResult) GetType() string { if x != nil { return x.Type } return "" } func (x *SearchLiveRoomResult) GetTitle() string { if x != nil { return x.Title } return "" } func (x *SearchLiveRoomResult) GetCover() string { if x != nil { return x.Cover } return "" } func (x *SearchLiveRoomResult) GetOnline() uint32 { if x != nil { return x.Online } return 0 } func (x *SearchLiveRoomResult) GetIsLiveRoomInline() uint32 { if x != nil { return x.IsLiveRoomInline } return 0 } func (x *SearchLiveRoomResult) GetRankIndex() uint32 { if x != nil { return x.RankIndex } return 0 } func (x *SearchLiveRoomResult) GetRankScore() uint32 { if x != nil { return x.RankScore } return 0 } func (x *SearchLiveRoomResult) GetRoomid() uint64 { if x != nil { return x.Roomid } return 0 } func (x *SearchLiveRoomResult) GetAttentions() uint32 { if x != nil { return x.Attentions } return 0 } type SearchLiveRoomReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` Data *SearchLiveRoomReply_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *SearchLiveRoomReply) Reset() { *x = SearchLiveRoomReply{} if protoimpl.UnsafeEnabled { mi := &file_bili_api_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchLiveRoomReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchLiveRoomReply) ProtoMessage() {} func (x *SearchLiveRoomReply) ProtoReflect() protoreflect.Message { mi := &file_bili_api_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SearchLiveRoomReply.ProtoReflect.Descriptor instead. func (*SearchLiveRoomReply) Descriptor() ([]byte, []int) { return file_bili_api_proto_rawDescGZIP(), []int{9} } func (x *SearchLiveRoomReply) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *SearchLiveRoomReply) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *SearchLiveRoomReply) GetData() *SearchLiveRoomReply_Data { if x != nil { return x.Data } return nil } type StatReply_Data struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Mid uint64 `protobuf:"varint,1,opt,name=mid,proto3" json:"mid,omitempty"` Following uint32 `protobuf:"varint,2,opt,name=following,proto3" json:"following,omitempty"` Whisper uint32 `protobuf:"varint,3,opt,name=whisper,proto3" json:"whisper,omitempty"` Black uint32 `protobuf:"varint,4,opt,name=black,proto3" json:"black,omitempty"` Follower uint32 `protobuf:"varint,5,opt,name=follower,proto3" json:"follower,omitempty"` } func (x *StatReply_Data) Reset() { *x = StatReply_Data{} if protoimpl.UnsafeEnabled { mi := &file_bili_api_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StatReply_Data) String() string { return protoimpl.X.MessageStringOf(x) } func (*StatReply_Data) ProtoMessage() {} func (x *StatReply_Data) ProtoReflect() protoreflect.Message { mi := &file_bili_api_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StatReply_Data.ProtoReflect.Descriptor instead. func (*StatReply_Data) Descriptor() ([]byte, []int) { return file_bili_api_proto_rawDescGZIP(), []int{1, 0} } func (x *StatReply_Data) GetMid() uint64 { if x != nil { return x.Mid } return 0 } func (x *StatReply_Data) GetFollowing() uint32 { if x != nil { return x.Following } return 0 } func (x *StatReply_Data) GetWhisper() uint32 { if x != nil { return x.Whisper } return 0 } func (x *StatReply_Data) GetBlack() uint32 { if x != nil { return x.Black } return 0 } func (x *StatReply_Data) GetFollower() uint32 { if x != nil { return x.Follower } return 0 } type InfoReply_LiveRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomStatus uint32 `protobuf:"varint,1,opt,name=roomStatus,proto3" json:"roomStatus,omitempty"` LiveStatus uint32 `protobuf:"varint,2,opt,name=liveStatus,proto3" json:"liveStatus,omitempty"` Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` Title string `protobuf:"bytes,4,opt,name=title,proto3" json:"title,omitempty"` Cover string `protobuf:"bytes,5,opt,name=cover,proto3" json:"cover,omitempty"` Roomid uint64 `protobuf:"varint,6,opt,name=roomid,proto3" json:"roomid,omitempty"` RoundStatus uint32 `protobuf:"varint,7,opt,name=roundStatus,proto3" json:"roundStatus,omitempty"` BroadcastType uint32 `protobuf:"varint,8,opt,name=broadcast_type,json=broadcastType,proto3" json:"broadcast_type,omitempty"` } func (x *InfoReply_LiveRoom) Reset() { *x = InfoReply_LiveRoom{} if protoimpl.UnsafeEnabled { mi := &file_bili_api_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InfoReply_LiveRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*InfoReply_LiveRoom) ProtoMessage() {} func (x *InfoReply_LiveRoom) ProtoReflect() protoreflect.Message { mi := &file_bili_api_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InfoReply_LiveRoom.ProtoReflect.Descriptor instead. func (*InfoReply_LiveRoom) Descriptor() ([]byte, []int) { return file_bili_api_proto_rawDescGZIP(), []int{3, 0} } func (x *InfoReply_LiveRoom) GetRoomStatus() uint32 { if x != nil { return x.RoomStatus } return 0 } func (x *InfoReply_LiveRoom) GetLiveStatus() uint32 { if x != nil { return x.LiveStatus } return 0 } func (x *InfoReply_LiveRoom) GetUrl() string { if x != nil { return x.Url } return "" } func (x *InfoReply_LiveRoom) GetTitle() string { if x != nil { return x.Title } return "" } func (x *InfoReply_LiveRoom) GetCover() string { if x != nil { return x.Cover } return "" } func (x *InfoReply_LiveRoom) GetRoomid() uint64 { if x != nil { return x.Roomid } return 0 } func (x *InfoReply_LiveRoom) GetRoundStatus() uint32 { if x != nil { return x.RoundStatus } return 0 } func (x *InfoReply_LiveRoom) GetBroadcastType() uint32 { if x != nil { return x.BroadcastType } return 0 } type InfoReply_Data struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Mid uint64 `protobuf:"varint,1,opt,name=mid,proto3" json:"mid,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Sex string `protobuf:"bytes,3,opt,name=sex,proto3" json:"sex,omitempty"` Face string `protobuf:"bytes,4,opt,name=face,proto3" json:"face,omitempty"` FaceNft uint32 `protobuf:"varint,5,opt,name=face_nft,json=faceNft,proto3" json:"face_nft,omitempty"` FaceNftType uint32 `protobuf:"varint,6,opt,name=face_nft_type,json=faceNftType,proto3" json:"face_nft_type,omitempty"` Sign string `protobuf:"bytes,7,opt,name=sign,proto3" json:"sign,omitempty"` Rank uint32 `protobuf:"varint,8,opt,name=rank,proto3" json:"rank,omitempty"` Level uint32 `protobuf:"varint,9,opt,name=level,proto3" json:"level,omitempty"` Jointime uint32 `protobuf:"varint,10,opt,name=jointime,proto3" json:"jointime,omitempty"` Moral uint32 `protobuf:"varint,11,opt,name=moral,proto3" json:"moral,omitempty"` Silence uint32 `protobuf:"varint,12,opt,name=silence,proto3" json:"silence,omitempty"` Coins uint32 `protobuf:"varint,13,opt,name=coins,proto3" json:"coins,omitempty"` FansBadge bool `protobuf:"varint,14,opt,name=fans_badge,json=fansBadge,proto3" json:"fans_badge,omitempty"` IsFollowed bool `protobuf:"varint,21,opt,name=is_followed,json=isFollowed,proto3" json:"is_followed,omitempty"` TopPhoto string `protobuf:"bytes,22,opt,name=top_photo,json=topPhoto,proto3" json:"top_photo,omitempty"` LiveRoom *InfoReply_LiveRoom `protobuf:"bytes,25,opt,name=live_room,json=liveRoom,proto3" json:"live_room,omitempty"` Birthday string `protobuf:"bytes,26,opt,name=birthday,proto3" json:"birthday,omitempty"` Tags []string `protobuf:"bytes,29,rep,name=tags,proto3" json:"tags,omitempty"` IsSeniorMember uint32 `protobuf:"varint,31,opt,name=is_senior_member,json=isSeniorMember,proto3" json:"is_senior_member,omitempty"` McnInfo string `protobuf:"bytes,32,opt,name=mcn_info,json=mcnInfo,proto3" json:"mcn_info,omitempty"` GaiaResType uint32 `protobuf:"varint,33,opt,name=gaia_res_type,json=gaiaResType,proto3" json:"gaia_res_type,omitempty"` GaiaData string `protobuf:"bytes,34,opt,name=gaia_data,json=gaiaData,proto3" json:"gaia_data,omitempty"` IsRisk bool `protobuf:"varint,35,opt,name=is_risk,json=isRisk,proto3" json:"is_risk,omitempty"` } func (x *InfoReply_Data) Reset() { *x = InfoReply_Data{} if protoimpl.UnsafeEnabled { mi := &file_bili_api_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InfoReply_Data) String() string { return protoimpl.X.MessageStringOf(x) } func (*InfoReply_Data) ProtoMessage() {} func (x *InfoReply_Data) ProtoReflect() protoreflect.Message { mi := &file_bili_api_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InfoReply_Data.ProtoReflect.Descriptor instead. func (*InfoReply_Data) Descriptor() ([]byte, []int) { return file_bili_api_proto_rawDescGZIP(), []int{3, 1} } func (x *InfoReply_Data) GetMid() uint64 { if x != nil { return x.Mid } return 0 } func (x *InfoReply_Data) GetName() string { if x != nil { return x.Name } return "" } func (x *InfoReply_Data) GetSex() string { if x != nil { return x.Sex } return "" } func (x *InfoReply_Data) GetFace() string { if x != nil { return x.Face } return "" } func (x *InfoReply_Data) GetFaceNft() uint32 { if x != nil { return x.FaceNft } return 0 } func (x *InfoReply_Data) GetFaceNftType() uint32 { if x != nil { return x.FaceNftType } return 0 } func (x *InfoReply_Data) GetSign() string { if x != nil { return x.Sign } return "" } func (x *InfoReply_Data) GetRank() uint32 { if x != nil { return x.Rank } return 0 } func (x *InfoReply_Data) GetLevel() uint32 { if x != nil { return x.Level } return 0 } func (x *InfoReply_Data) GetJointime() uint32 { if x != nil { return x.Jointime } return 0 } func (x *InfoReply_Data) GetMoral() uint32 { if x != nil { return x.Moral } return 0 } func (x *InfoReply_Data) GetSilence() uint32 { if x != nil { return x.Silence } return 0 } func (x *InfoReply_Data) GetCoins() uint32 { if x != nil { return x.Coins } return 0 } func (x *InfoReply_Data) GetFansBadge() bool { if x != nil { return x.FansBadge } return false } func (x *InfoReply_Data) GetIsFollowed() bool { if x != nil { return x.IsFollowed } return false } func (x *InfoReply_Data) GetTopPhoto() string { if x != nil { return x.TopPhoto } return "" } func (x *InfoReply_Data) GetLiveRoom() *InfoReply_LiveRoom { if x != nil { return x.LiveRoom } return nil } func (x *InfoReply_Data) GetBirthday() string { if x != nil { return x.Birthday } return "" } func (x *InfoReply_Data) GetTags() []string { if x != nil { return x.Tags } return nil } func (x *InfoReply_Data) GetIsSeniorMember() uint32 { if x != nil { return x.IsSeniorMember } return 0 } func (x *InfoReply_Data) GetMcnInfo() string { if x != nil { return x.McnInfo } return "" } func (x *InfoReply_Data) GetGaiaResType() uint32 { if x != nil { return x.GaiaResType } return 0 } func (x *InfoReply_Data) GetGaiaData() string { if x != nil { return x.GaiaData } return "" } func (x *InfoReply_Data) GetIsRisk() bool { if x != nil { return x.IsRisk } return false } type SearchVideoReply_Data struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Seid string `protobuf:"bytes,1,opt,name=seid,proto3" json:"seid,omitempty"` Page uint32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` Pagesize uint32 `protobuf:"varint,3,opt,name=pagesize,proto3" json:"pagesize,omitempty"` NumResults uint32 `protobuf:"varint,4,opt,name=numResults,proto3" json:"numResults,omitempty"` NumPages uint32 `protobuf:"varint,5,opt,name=numPages,proto3" json:"numPages,omitempty"` SuggestKeyword string `protobuf:"bytes,6,opt,name=suggest_keyword,json=suggestKeyword,proto3" json:"suggest_keyword,omitempty"` RqtType string `protobuf:"bytes,7,opt,name=rqt_type,json=rqtType,proto3" json:"rqt_type,omitempty"` EggHit uint32 `protobuf:"varint,8,opt,name=egg_hit,json=eggHit,proto3" json:"egg_hit,omitempty"` Result []*SearchVideoResult `protobuf:"bytes,9,rep,name=result,proto3" json:"result,omitempty"` ShowColumn uint32 `protobuf:"varint,10,opt,name=show_column,json=showColumn,proto3" json:"show_column,omitempty"` InBlackKey uint32 `protobuf:"varint,11,opt,name=in_black_key,json=inBlackKey,proto3" json:"in_black_key,omitempty"` InWhiteKey uint32 `protobuf:"varint,12,opt,name=in_white_key,json=inWhiteKey,proto3" json:"in_white_key,omitempty"` } func (x *SearchVideoReply_Data) Reset() { *x = SearchVideoReply_Data{} if protoimpl.UnsafeEnabled { mi := &file_bili_api_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchVideoReply_Data) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchVideoReply_Data) ProtoMessage() {} func (x *SearchVideoReply_Data) ProtoReflect() protoreflect.Message { mi := &file_bili_api_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SearchVideoReply_Data.ProtoReflect.Descriptor instead. func (*SearchVideoReply_Data) Descriptor() ([]byte, []int) { return file_bili_api_proto_rawDescGZIP(), []int{6, 0} } func (x *SearchVideoReply_Data) GetSeid() string { if x != nil { return x.Seid } return "" } func (x *SearchVideoReply_Data) GetPage() uint32 { if x != nil { return x.Page } return 0 } func (x *SearchVideoReply_Data) GetPagesize() uint32 { if x != nil { return x.Pagesize } return 0 } func (x *SearchVideoReply_Data) GetNumResults() uint32 { if x != nil { return x.NumResults } return 0 } func (x *SearchVideoReply_Data) GetNumPages() uint32 { if x != nil { return x.NumPages } return 0 } func (x *SearchVideoReply_Data) GetSuggestKeyword() string { if x != nil { return x.SuggestKeyword } return "" } func (x *SearchVideoReply_Data) GetRqtType() string { if x != nil { return x.RqtType } return "" } func (x *SearchVideoReply_Data) GetEggHit() uint32 { if x != nil { return x.EggHit } return 0 } func (x *SearchVideoReply_Data) GetResult() []*SearchVideoResult { if x != nil { return x.Result } return nil } func (x *SearchVideoReply_Data) GetShowColumn() uint32 { if x != nil { return x.ShowColumn } return 0 } func (x *SearchVideoReply_Data) GetInBlackKey() uint32 { if x != nil { return x.InBlackKey } return 0 } func (x *SearchVideoReply_Data) GetInWhiteKey() uint32 { if x != nil { return x.InWhiteKey } return 0 } type SearchLiveRoomReply_Data struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Seid string `protobuf:"bytes,1,opt,name=seid,proto3" json:"seid,omitempty"` Page uint32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` Pagesize uint32 `protobuf:"varint,3,opt,name=pagesize,proto3" json:"pagesize,omitempty"` NumResults uint32 `protobuf:"varint,4,opt,name=numResults,proto3" json:"numResults,omitempty"` NumPages uint32 `protobuf:"varint,5,opt,name=numPages,proto3" json:"numPages,omitempty"` SuggestKeyword string `protobuf:"bytes,6,opt,name=suggest_keyword,json=suggestKeyword,proto3" json:"suggest_keyword,omitempty"` RqtType string `protobuf:"bytes,7,opt,name=rqt_type,json=rqtType,proto3" json:"rqt_type,omitempty"` EggHit uint32 `protobuf:"varint,8,opt,name=egg_hit,json=eggHit,proto3" json:"egg_hit,omitempty"` Result []*SearchLiveRoomResult `protobuf:"bytes,9,rep,name=result,proto3" json:"result,omitempty"` ShowColumn uint32 `protobuf:"varint,10,opt,name=show_column,json=showColumn,proto3" json:"show_column,omitempty"` InBlackKey uint32 `protobuf:"varint,11,opt,name=in_black_key,json=inBlackKey,proto3" json:"in_black_key,omitempty"` InWhiteKey uint32 `protobuf:"varint,12,opt,name=in_white_key,json=inWhiteKey,proto3" json:"in_white_key,omitempty"` } func (x *SearchLiveRoomReply_Data) Reset() { *x = SearchLiveRoomReply_Data{} if protoimpl.UnsafeEnabled { mi := &file_bili_api_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchLiveRoomReply_Data) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchLiveRoomReply_Data) ProtoMessage() {} func (x *SearchLiveRoomReply_Data) ProtoReflect() protoreflect.Message { mi := &file_bili_api_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SearchLiveRoomReply_Data.ProtoReflect.Descriptor instead. func (*SearchLiveRoomReply_Data) Descriptor() ([]byte, []int) { return file_bili_api_proto_rawDescGZIP(), []int{9, 0} } func (x *SearchLiveRoomReply_Data) GetSeid() string { if x != nil { return x.Seid } return "" } func (x *SearchLiveRoomReply_Data) GetPage() uint32 { if x != nil { return x.Page } return 0 } func (x *SearchLiveRoomReply_Data) GetPagesize() uint32 { if x != nil { return x.Pagesize } return 0 } func (x *SearchLiveRoomReply_Data) GetNumResults() uint32 { if x != nil { return x.NumResults } return 0 } func (x *SearchLiveRoomReply_Data) GetNumPages() uint32 { if x != nil { return x.NumPages } return 0 } func (x *SearchLiveRoomReply_Data) GetSuggestKeyword() string { if x != nil { return x.SuggestKeyword } return "" } func (x *SearchLiveRoomReply_Data) GetRqtType() string { if x != nil { return x.RqtType } return "" } func (x *SearchLiveRoomReply_Data) GetEggHit() uint32 { if x != nil { return x.EggHit } return 0 } func (x *SearchLiveRoomReply_Data) GetResult() []*SearchLiveRoomResult { if x != nil { return x.Result } return nil } func (x *SearchLiveRoomReply_Data) GetShowColumn() uint32 { if x != nil { return x.ShowColumn } return 0 } func (x *SearchLiveRoomReply_Data) GetInBlackKey() uint32 { if x != nil { return x.InBlackKey } return 0 } func (x *SearchLiveRoomReply_Data) GetInWhiteKey() uint32 { if x != nil { return x.InWhiteKey } return 0 } var File_bili_api_proto protoreflect.FileDescriptor var file_bili_api_proto_rawDesc = []byte{ 0x0a, 0x0e, 0x62, 0x69, 0x6c, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x61, 0x70, 0x69, 0x22, 0x1f, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0xdf, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x27, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x82, 0x01, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6d, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x22, 0x1f, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0xdc, 0x07, 0x0a, 0x09, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x27, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xe9, 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x93, 0x05, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6d, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x61, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x66, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x66, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x66, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x66, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x72, 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x6f, 0x72, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x69, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x69, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x61, 0x6e, 0x73, 0x5f, 0x62, 0x61, 0x64, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x61, 0x6e, 0x73, 0x42, 0x61, 0x64, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x34, 0x0a, 0x09, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x08, 0x6c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x69, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x69, 0x73, 0x53, 0x65, 0x6e, 0x69, 0x6f, 0x72, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x63, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x63, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x61, 0x69, 0x61, 0x5f, 0x72, 0x65, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x67, 0x61, 0x69, 0x61, 0x52, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x69, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x61, 0x69, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x72, 0x69, 0x73, 0x6b, 0x18, 0x23, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x52, 0x69, 0x73, 0x6b, 0x22, 0x6c, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 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, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x22, 0xb0, 0x07, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x75, 0x6c, 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, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6d, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x79, 0x70, 0x65, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x63, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x72, 0x63, 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x61, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x76, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x76, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x72, 0x63, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x72, 0x63, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x64, 0x61, 0x74, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x75, 0x62, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x64, 0x61, 0x74, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x64, 0x67, 0x65, 0x70, 0x61, 0x79, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x62, 0x61, 0x64, 0x67, 0x65, 0x70, 0x61, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x69, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x65, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x70, 0x61, 0x79, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x73, 0x50, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x69, 0x73, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x72, 0x65, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x52, 0x65, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6b, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, 0x69, 0x6b, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x70, 0x69, 0x63, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x70, 0x69, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x72, 0x6e, 0x65, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x72, 0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x61, 0x6e, 0x6d, 0x61, 0x6b, 0x75, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, 0x61, 0x6e, 0x6d, 0x61, 0x6b, 0x75, 0x22, 0xe3, 0x03, 0x0a, 0x10, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xf8, 0x02, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x50, 0x61, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x50, 0x61, 0x67, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x71, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x71, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x67, 0x67, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x67, 0x67, 0x48, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x6e, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x57, 0x68, 0x69, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x6f, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 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, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x22, 0xd0, 0x04, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x69, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x66, 0x61, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xec, 0x03, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xfb, 0x02, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x50, 0x61, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x50, 0x61, 0x67, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x71, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x71, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x67, 0x67, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x67, 0x67, 0x48, 0x69, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x6e, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x57, 0x68, 0x69, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x32, 0xf7, 0x01, 0x0a, 0x07, 0x42, 0x69, 0x6c, 0x69, 0x41, 0x50, 0x49, 0x12, 0x31, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x12, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x73, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_bili_api_proto_rawDescOnce sync.Once file_bili_api_proto_rawDescData = file_bili_api_proto_rawDesc ) func file_bili_api_proto_rawDescGZIP() []byte { file_bili_api_proto_rawDescOnce.Do(func() { file_bili_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_bili_api_proto_rawDescData) }) return file_bili_api_proto_rawDescData } var file_bili_api_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_bili_api_proto_goTypes = []interface{}{ (*StatRequest)(nil), // 0: api.StatRequest (*StatReply)(nil), // 1: api.StatReply (*InfoRequest)(nil), // 2: api.InfoRequest (*InfoReply)(nil), // 3: api.InfoReply (*SearchVideoReq)(nil), // 4: api.SearchVideoReq (*SearchVideoResult)(nil), // 5: api.SearchVideoResult (*SearchVideoReply)(nil), // 6: api.SearchVideoReply (*SearchLiveRoomReq)(nil), // 7: api.SearchLiveRoomReq (*SearchLiveRoomResult)(nil), // 8: api.SearchLiveRoomResult (*SearchLiveRoomReply)(nil), // 9: api.SearchLiveRoomReply (*StatReply_Data)(nil), // 10: api.StatReply.Data (*InfoReply_LiveRoom)(nil), // 11: api.InfoReply.LiveRoom (*InfoReply_Data)(nil), // 12: api.InfoReply.Data (*SearchVideoReply_Data)(nil), // 13: api.SearchVideoReply.Data (*SearchLiveRoomReply_Data)(nil), // 14: api.SearchLiveRoomReply.Data } var file_bili_api_proto_depIdxs = []int32{ 10, // 0: api.StatReply.data:type_name -> api.StatReply.Data 12, // 1: api.InfoReply.data:type_name -> api.InfoReply.Data 13, // 2: api.SearchVideoReply.data:type_name -> api.SearchVideoReply.Data 14, // 3: api.SearchLiveRoomReply.data:type_name -> api.SearchLiveRoomReply.Data 11, // 4: api.InfoReply.Data.live_room:type_name -> api.InfoReply.LiveRoom 5, // 5: api.SearchVideoReply.Data.result:type_name -> api.SearchVideoResult 8, // 6: api.SearchLiveRoomReply.Data.result:type_name -> api.SearchLiveRoomResult 0, // 7: api.BiliAPI.GetUserStat:input_type -> api.StatRequest 2, // 8: api.BiliAPI.GetUserBasicInfo:input_type -> api.InfoRequest 4, // 9: api.BiliAPI.SearchVideo:input_type -> api.SearchVideoReq 7, // 10: api.BiliAPI.SearchLiveRoom:input_type -> api.SearchLiveRoomReq 1, // 11: api.BiliAPI.GetUserStat:output_type -> api.StatReply 3, // 12: api.BiliAPI.GetUserBasicInfo:output_type -> api.InfoReply 6, // 13: api.BiliAPI.SearchVideo:output_type -> api.SearchVideoReply 9, // 14: api.BiliAPI.SearchLiveRoom:output_type -> api.SearchLiveRoomReply 11, // [11:15] is the sub-list for method output_type 7, // [7:11] is the sub-list for method input_type 7, // [7:7] is the sub-list for extension type_name 7, // [7:7] is the sub-list for extension extendee 0, // [0:7] is the sub-list for field type_name } func init() { file_bili_api_proto_init() } func file_bili_api_proto_init() { if File_bili_api_proto != nil { return } if !protoimpl.UnsafeEnabled { file_bili_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bili_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bili_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bili_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InfoReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bili_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchVideoReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bili_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchVideoResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bili_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchVideoReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bili_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchLiveRoomReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bili_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchLiveRoomResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bili_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchLiveRoomReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bili_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatReply_Data); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bili_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InfoReply_LiveRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bili_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InfoReply_Data); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bili_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchVideoReply_Data); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bili_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchLiveRoomReply_Data); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_bili_api_proto_rawDesc, NumEnums: 0, NumMessages: 15, NumExtensions: 0, NumServices: 1, }, GoTypes: file_bili_api_proto_goTypes, DependencyIndexes: file_bili_api_proto_depIdxs, MessageInfos: file_bili_api_proto_msgTypes, }.Build() File_bili_api_proto = out.File file_bili_api_proto_rawDesc = nil file_bili_api_proto_goTypes = nil file_bili_api_proto_depIdxs = nil }