// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.23.0
// 	protoc        v3.9.1
// source: guess.proto

package types

import (
	context "context"
	reflect "reflect"
	sync "sync"

	types "github.com/33cn/chain33/types"
	proto "github.com/golang/protobuf/proto"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

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)
)

// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4

// GuessGame 竞猜游戏详情
type GuessGame struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameID         string         `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`  //游戏ID
	Status         int32          `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` //游戏的状态：创建->投注->截止投注->开奖
	PreStatus      int32          `protobuf:"varint,3,opt,name=preStatus,proto3" json:"preStatus,omitempty"`
	StartTime      int64          `protobuf:"varint,4,opt,name=startTime,proto3" json:"startTime,omitempty"`            //创建游戏的时间
	StartHeight    int64          `protobuf:"varint,5,opt,name=startHeight,proto3" json:"startHeight,omitempty"`        //创建游戏的时间
	StartTxHash    string         `protobuf:"bytes,6,opt,name=startTxHash,proto3" json:"startTxHash,omitempty"`         //创建游戏的交易hash
	StartIndex     int64          `protobuf:"varint,7,opt,name=startIndex,proto3" json:"startIndex,omitempty"`          //创建游戏的交易index
	Topic          string         `protobuf:"bytes,8,opt,name=topic,proto3" json:"topic,omitempty"`                     //主题
	Category       string         `protobuf:"bytes,9,opt,name=category,proto3" json:"category,omitempty"`               //分类
	Options        string         `protobuf:"bytes,10,opt,name=options,proto3" json:"options,omitempty"`                //选项
	MaxBetHeight   int64          `protobuf:"varint,11,opt,name=maxBetHeight,proto3" json:"maxBetHeight,omitempty"`     //截止下注的块高
	MaxBetsOneTime int64          `protobuf:"varint,12,opt,name=maxBetsOneTime,proto3" json:"maxBetsOneTime,omitempty"` //单次可以下多少注，默认100
	MaxBetsNumber  int64          `protobuf:"varint,13,opt,name=maxBetsNumber,proto3" json:"maxBetsNumber,omitempty"`   //最多可以下多少注
	DevFeeFactor   int64          `protobuf:"varint,14,opt,name=devFeeFactor,proto3" json:"devFeeFactor,omitempty"`     //开发者抽成比例
	DevFeeAddr     string         `protobuf:"bytes,15,opt,name=devFeeAddr,proto3" json:"devFeeAddr,omitempty"`          //开发者地址
	PlatFeeFactor  int64          `protobuf:"varint,16,opt,name=platFeeFactor,proto3" json:"platFeeFactor,omitempty"`   //平台抽成比例
	PlatFeeAddr    string         `protobuf:"bytes,17,opt,name=platFeeAddr,proto3" json:"platFeeAddr,omitempty"`        //平台地址
	ExpireHeight   int64          `protobuf:"varint,18,opt,name=expireHeight,proto3" json:"expireHeight,omitempty"`     //游戏过期区块高度
	AdminAddr      string         `protobuf:"bytes,19,opt,name=adminAddr,proto3" json:"adminAddr,omitempty"`            //游戏创建者地址,只有该地址可以开奖
	BetsNumber     int64          `protobuf:"varint,20,opt,name=betsNumber,proto3" json:"betsNumber,omitempty"`         //已下注数,如果数量达到maxBetsNumber，则不允许再下注
	Plays          []*GuessPlayer `protobuf:"bytes,21,rep,name=plays,proto3" json:"plays,omitempty"`                    //参与游戏下注的玩家投注信息
	Result         string         `protobuf:"bytes,22,opt,name=result,proto3" json:"result,omitempty"`                  //公布的中奖结果
	BetStat        *GuessBetStat  `protobuf:"bytes,23,opt,name=betStat,proto3" json:"betStat,omitempty"`
	Index          int64          `protobuf:"varint,24,opt,name=index,proto3" json:"index,omitempty"`
	PreIndex       int64          `protobuf:"varint,25,opt,name=preIndex,proto3" json:"preIndex,omitempty"`
	DrivenByAdmin  bool           `protobuf:"varint,26,opt,name=drivenByAdmin,proto3" json:"drivenByAdmin,omitempty"`
}

func (x *GuessGame) Reset() {
	*x = GuessGame{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessGame) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessGame) ProtoMessage() {}

func (x *GuessGame) ProtoReflect() protoreflect.Message {
	mi := &file_guess_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 GuessGame.ProtoReflect.Descriptor instead.
func (*GuessGame) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{0}
}

func (x *GuessGame) GetGameID() string {
	if x != nil {
		return x.GameID
	}
	return ""
}

func (x *GuessGame) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *GuessGame) GetPreStatus() int32 {
	if x != nil {
		return x.PreStatus
	}
	return 0
}

func (x *GuessGame) GetStartTime() int64 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *GuessGame) GetStartHeight() int64 {
	if x != nil {
		return x.StartHeight
	}
	return 0
}

func (x *GuessGame) GetStartTxHash() string {
	if x != nil {
		return x.StartTxHash
	}
	return ""
}

func (x *GuessGame) GetStartIndex() int64 {
	if x != nil {
		return x.StartIndex
	}
	return 0
}

func (x *GuessGame) GetTopic() string {
	if x != nil {
		return x.Topic
	}
	return ""
}

func (x *GuessGame) GetCategory() string {
	if x != nil {
		return x.Category
	}
	return ""
}

func (x *GuessGame) GetOptions() string {
	if x != nil {
		return x.Options
	}
	return ""
}

func (x *GuessGame) GetMaxBetHeight() int64 {
	if x != nil {
		return x.MaxBetHeight
	}
	return 0
}

func (x *GuessGame) GetMaxBetsOneTime() int64 {
	if x != nil {
		return x.MaxBetsOneTime
	}
	return 0
}

func (x *GuessGame) GetMaxBetsNumber() int64 {
	if x != nil {
		return x.MaxBetsNumber
	}
	return 0
}

func (x *GuessGame) GetDevFeeFactor() int64 {
	if x != nil {
		return x.DevFeeFactor
	}
	return 0
}

func (x *GuessGame) GetDevFeeAddr() string {
	if x != nil {
		return x.DevFeeAddr
	}
	return ""
}

func (x *GuessGame) GetPlatFeeFactor() int64 {
	if x != nil {
		return x.PlatFeeFactor
	}
	return 0
}

func (x *GuessGame) GetPlatFeeAddr() string {
	if x != nil {
		return x.PlatFeeAddr
	}
	return ""
}

func (x *GuessGame) GetExpireHeight() int64 {
	if x != nil {
		return x.ExpireHeight
	}
	return 0
}

func (x *GuessGame) GetAdminAddr() string {
	if x != nil {
		return x.AdminAddr
	}
	return ""
}

func (x *GuessGame) GetBetsNumber() int64 {
	if x != nil {
		return x.BetsNumber
	}
	return 0
}

func (x *GuessGame) GetPlays() []*GuessPlayer {
	if x != nil {
		return x.Plays
	}
	return nil
}

func (x *GuessGame) GetResult() string {
	if x != nil {
		return x.Result
	}
	return ""
}

func (x *GuessGame) GetBetStat() *GuessBetStat {
	if x != nil {
		return x.BetStat
	}
	return nil
}

func (x *GuessGame) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *GuessGame) GetPreIndex() int64 {
	if x != nil {
		return x.PreIndex
	}
	return 0
}

func (x *GuessGame) GetDrivenByAdmin() bool {
	if x != nil {
		return x.DrivenByAdmin
	}
	return false
}

// GuessPlayer 竞猜玩家信息
type GuessPlayer struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Addr string    `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
	Bet  *GuessBet `protobuf:"bytes,2,opt,name=bet,proto3" json:"bet,omitempty"`
}

func (x *GuessPlayer) Reset() {
	*x = GuessPlayer{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessPlayer) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessPlayer) ProtoMessage() {}

func (x *GuessPlayer) ProtoReflect() protoreflect.Message {
	mi := &file_guess_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 GuessPlayer.ProtoReflect.Descriptor instead.
func (*GuessPlayer) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{1}
}

func (x *GuessPlayer) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

func (x *GuessPlayer) GetBet() *GuessBet {
	if x != nil {
		return x.Bet
	}
	return nil
}

// GuessBet 竞猜下注信息
type GuessBet struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Option     string `protobuf:"bytes,1,opt,name=option,proto3" json:"option,omitempty"`
	BetsNumber int64  `protobuf:"varint,2,opt,name=betsNumber,proto3" json:"betsNumber,omitempty"`
	IsWinner   bool   `protobuf:"varint,3,opt,name=isWinner,proto3" json:"isWinner,omitempty"`
	Profit     int64  `protobuf:"varint,4,opt,name=profit,proto3" json:"profit,omitempty"`
	Index      int64  `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"`
	PreIndex   int64  `protobuf:"varint,6,opt,name=preIndex,proto3" json:"preIndex,omitempty"`
}

func (x *GuessBet) Reset() {
	*x = GuessBet{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessBet) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessBet) ProtoMessage() {}

func (x *GuessBet) ProtoReflect() protoreflect.Message {
	mi := &file_guess_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 GuessBet.ProtoReflect.Descriptor instead.
func (*GuessBet) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{2}
}

func (x *GuessBet) GetOption() string {
	if x != nil {
		return x.Option
	}
	return ""
}

func (x *GuessBet) GetBetsNumber() int64 {
	if x != nil {
		return x.BetsNumber
	}
	return 0
}

func (x *GuessBet) GetIsWinner() bool {
	if x != nil {
		return x.IsWinner
	}
	return false
}

func (x *GuessBet) GetProfit() int64 {
	if x != nil {
		return x.Profit
	}
	return 0
}

func (x *GuessBet) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *GuessBet) GetPreIndex() int64 {
	if x != nil {
		return x.PreIndex
	}
	return 0
}

// GuessBetStat 竞猜下注统计信息
type GuessBetStat struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TotalBetTimes   int64               `protobuf:"varint,1,opt,name=totalBetTimes,proto3" json:"totalBetTimes,omitempty"`
	TotalBetsNumber int64               `protobuf:"varint,2,opt,name=totalBetsNumber,proto3" json:"totalBetsNumber,omitempty"`
	Items           []*GuessBetStatItem `protobuf:"bytes,3,rep,name=items,proto3" json:"items,omitempty"`
}

func (x *GuessBetStat) Reset() {
	*x = GuessBetStat{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessBetStat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessBetStat) ProtoMessage() {}

func (x *GuessBetStat) ProtoReflect() protoreflect.Message {
	mi := &file_guess_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 GuessBetStat.ProtoReflect.Descriptor instead.
func (*GuessBetStat) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{3}
}

func (x *GuessBetStat) GetTotalBetTimes() int64 {
	if x != nil {
		return x.TotalBetTimes
	}
	return 0
}

func (x *GuessBetStat) GetTotalBetsNumber() int64 {
	if x != nil {
		return x.TotalBetsNumber
	}
	return 0
}

func (x *GuessBetStat) GetItems() []*GuessBetStatItem {
	if x != nil {
		return x.Items
	}
	return nil
}

// GuessBetStat 竞猜下注子选项统计信息
type GuessBetStatItem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Option     string `protobuf:"bytes,1,opt,name=option,proto3" json:"option,omitempty"`
	BetsNumber int64  `protobuf:"varint,2,opt,name=betsNumber,proto3" json:"betsNumber,omitempty"`
	BetsTimes  int64  `protobuf:"varint,3,opt,name=betsTimes,proto3" json:"betsTimes,omitempty"`
}

func (x *GuessBetStatItem) Reset() {
	*x = GuessBetStatItem{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessBetStatItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessBetStatItem) ProtoMessage() {}

func (x *GuessBetStatItem) ProtoReflect() protoreflect.Message {
	mi := &file_guess_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 GuessBetStatItem.ProtoReflect.Descriptor instead.
func (*GuessBetStatItem) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{4}
}

func (x *GuessBetStatItem) GetOption() string {
	if x != nil {
		return x.Option
	}
	return ""
}

func (x *GuessBetStatItem) GetBetsNumber() int64 {
	if x != nil {
		return x.BetsNumber
	}
	return 0
}

func (x *GuessBetStatItem) GetBetsTimes() int64 {
	if x != nil {
		return x.BetsTimes
	}
	return 0
}

// GuessGameAction 竞猜游戏动作
type GuessGameAction struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Value:
	//	*GuessGameAction_Start
	//	*GuessGameAction_Bet
	//	*GuessGameAction_StopBet
	//	*GuessGameAction_Abort
	//	*GuessGameAction_Publish
	//	*GuessGameAction_Query
	Value isGuessGameAction_Value `protobuf_oneof:"value"`
	Ty    int32                   `protobuf:"varint,7,opt,name=ty,proto3" json:"ty,omitempty"`
}

func (x *GuessGameAction) Reset() {
	*x = GuessGameAction{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessGameAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessGameAction) ProtoMessage() {}

func (x *GuessGameAction) ProtoReflect() protoreflect.Message {
	mi := &file_guess_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 GuessGameAction.ProtoReflect.Descriptor instead.
func (*GuessGameAction) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{5}
}

func (m *GuessGameAction) GetValue() isGuessGameAction_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *GuessGameAction) GetStart() *GuessGameStart {
	if x, ok := x.GetValue().(*GuessGameAction_Start); ok {
		return x.Start
	}
	return nil
}

func (x *GuessGameAction) GetBet() *GuessGameBet {
	if x, ok := x.GetValue().(*GuessGameAction_Bet); ok {
		return x.Bet
	}
	return nil
}

func (x *GuessGameAction) GetStopBet() *GuessGameStopBet {
	if x, ok := x.GetValue().(*GuessGameAction_StopBet); ok {
		return x.StopBet
	}
	return nil
}

func (x *GuessGameAction) GetAbort() *GuessGameAbort {
	if x, ok := x.GetValue().(*GuessGameAction_Abort); ok {
		return x.Abort
	}
	return nil
}

func (x *GuessGameAction) GetPublish() *GuessGamePublish {
	if x, ok := x.GetValue().(*GuessGameAction_Publish); ok {
		return x.Publish
	}
	return nil
}

func (x *GuessGameAction) GetQuery() *GuessGameQuery {
	if x, ok := x.GetValue().(*GuessGameAction_Query); ok {
		return x.Query
	}
	return nil
}

func (x *GuessGameAction) GetTy() int32 {
	if x != nil {
		return x.Ty
	}
	return 0
}

type isGuessGameAction_Value interface {
	isGuessGameAction_Value()
}

type GuessGameAction_Start struct {
	Start *GuessGameStart `protobuf:"bytes,1,opt,name=start,proto3,oneof"`
}

type GuessGameAction_Bet struct {
	Bet *GuessGameBet `protobuf:"bytes,2,opt,name=bet,proto3,oneof"`
}

type GuessGameAction_StopBet struct {
	StopBet *GuessGameStopBet `protobuf:"bytes,3,opt,name=stopBet,proto3,oneof"`
}

type GuessGameAction_Abort struct {
	Abort *GuessGameAbort `protobuf:"bytes,4,opt,name=abort,proto3,oneof"`
}

type GuessGameAction_Publish struct {
	Publish *GuessGamePublish `protobuf:"bytes,5,opt,name=publish,proto3,oneof"`
}

type GuessGameAction_Query struct {
	Query *GuessGameQuery `protobuf:"bytes,6,opt,name=query,proto3,oneof"`
}

func (*GuessGameAction_Start) isGuessGameAction_Value() {}

func (*GuessGameAction_Bet) isGuessGameAction_Value() {}

func (*GuessGameAction_StopBet) isGuessGameAction_Value() {}

func (*GuessGameAction_Abort) isGuessGameAction_Value() {}

func (*GuessGameAction_Publish) isGuessGameAction_Value() {}

func (*GuessGameAction_Query) isGuessGameAction_Value() {}

// GuessGameStart 游戏创建
type GuessGameStart struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Topic          string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
	Options        string `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"`
	Category       string `protobuf:"bytes,3,opt,name=category,proto3" json:"category,omitempty"`
	MaxBetHeight   int64  `protobuf:"varint,4,opt,name=maxBetHeight,proto3" json:"maxBetHeight,omitempty"`
	MaxBetsOneTime int64  `protobuf:"varint,5,opt,name=maxBetsOneTime,proto3" json:"maxBetsOneTime,omitempty"`
	MaxBetsNumber  int64  `protobuf:"varint,6,opt,name=maxBetsNumber,proto3" json:"maxBetsNumber,omitempty"`
	DevFeeFactor   int64  `protobuf:"varint,7,opt,name=devFeeFactor,proto3" json:"devFeeFactor,omitempty"`   //开发者抽成比例
	DevFeeAddr     string `protobuf:"bytes,8,opt,name=devFeeAddr,proto3" json:"devFeeAddr,omitempty"`        //开发者地址
	PlatFeeFactor  int64  `protobuf:"varint,9,opt,name=platFeeFactor,proto3" json:"platFeeFactor,omitempty"` //平台抽成比例
	PlatFeeAddr    string `protobuf:"bytes,10,opt,name=platFeeAddr,proto3" json:"platFeeAddr,omitempty"`     //平台地址
	ExpireHeight   int64  `protobuf:"varint,11,opt,name=expireHeight,proto3" json:"expireHeight,omitempty"`
	DrivenByAdmin  bool   `protobuf:"varint,12,opt,name=drivenByAdmin,proto3" json:"drivenByAdmin,omitempty"`
}

func (x *GuessGameStart) Reset() {
	*x = GuessGameStart{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessGameStart) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessGameStart) ProtoMessage() {}

func (x *GuessGameStart) ProtoReflect() protoreflect.Message {
	mi := &file_guess_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 GuessGameStart.ProtoReflect.Descriptor instead.
func (*GuessGameStart) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{6}
}

func (x *GuessGameStart) GetTopic() string {
	if x != nil {
		return x.Topic
	}
	return ""
}

func (x *GuessGameStart) GetOptions() string {
	if x != nil {
		return x.Options
	}
	return ""
}

func (x *GuessGameStart) GetCategory() string {
	if x != nil {
		return x.Category
	}
	return ""
}

func (x *GuessGameStart) GetMaxBetHeight() int64 {
	if x != nil {
		return x.MaxBetHeight
	}
	return 0
}

func (x *GuessGameStart) GetMaxBetsOneTime() int64 {
	if x != nil {
		return x.MaxBetsOneTime
	}
	return 0
}

func (x *GuessGameStart) GetMaxBetsNumber() int64 {
	if x != nil {
		return x.MaxBetsNumber
	}
	return 0
}

func (x *GuessGameStart) GetDevFeeFactor() int64 {
	if x != nil {
		return x.DevFeeFactor
	}
	return 0
}

func (x *GuessGameStart) GetDevFeeAddr() string {
	if x != nil {
		return x.DevFeeAddr
	}
	return ""
}

func (x *GuessGameStart) GetPlatFeeFactor() int64 {
	if x != nil {
		return x.PlatFeeFactor
	}
	return 0
}

func (x *GuessGameStart) GetPlatFeeAddr() string {
	if x != nil {
		return x.PlatFeeAddr
	}
	return ""
}

func (x *GuessGameStart) GetExpireHeight() int64 {
	if x != nil {
		return x.ExpireHeight
	}
	return 0
}

func (x *GuessGameStart) GetDrivenByAdmin() bool {
	if x != nil {
		return x.DrivenByAdmin
	}
	return false
}

// GuessGameBet 参与游戏下注
type GuessGameBet struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameID  string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	Option  string `protobuf:"bytes,2,opt,name=option,proto3" json:"option,omitempty"`
	BetsNum int64  `protobuf:"varint,3,opt,name=betsNum,proto3" json:"betsNum,omitempty"`
}

func (x *GuessGameBet) Reset() {
	*x = GuessGameBet{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessGameBet) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessGameBet) ProtoMessage() {}

func (x *GuessGameBet) ProtoReflect() protoreflect.Message {
	mi := &file_guess_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 GuessGameBet.ProtoReflect.Descriptor instead.
func (*GuessGameBet) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{7}
}

func (x *GuessGameBet) GetGameID() string {
	if x != nil {
		return x.GameID
	}
	return ""
}

func (x *GuessGameBet) GetOption() string {
	if x != nil {
		return x.Option
	}
	return ""
}

func (x *GuessGameBet) GetBetsNum() int64 {
	if x != nil {
		return x.BetsNum
	}
	return 0
}

// GuessGameStopBet 游戏停止下注
type GuessGameStopBet struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameID string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
}

func (x *GuessGameStopBet) Reset() {
	*x = GuessGameStopBet{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessGameStopBet) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessGameStopBet) ProtoMessage() {}

func (x *GuessGameStopBet) ProtoReflect() protoreflect.Message {
	mi := &file_guess_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 GuessGameStopBet.ProtoReflect.Descriptor instead.
func (*GuessGameStopBet) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{8}
}

func (x *GuessGameStopBet) GetGameID() string {
	if x != nil {
		return x.GameID
	}
	return ""
}

// GuessGameAbort 游戏异常终止,退还下注
type GuessGameAbort struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameID string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
}

func (x *GuessGameAbort) Reset() {
	*x = GuessGameAbort{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessGameAbort) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessGameAbort) ProtoMessage() {}

func (x *GuessGameAbort) ProtoReflect() protoreflect.Message {
	mi := &file_guess_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 GuessGameAbort.ProtoReflect.Descriptor instead.
func (*GuessGameAbort) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{9}
}

func (x *GuessGameAbort) GetGameID() string {
	if x != nil {
		return x.GameID
	}
	return ""
}

// GuessGamePublish 游戏结果揭晓
type GuessGamePublish struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameID string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	Result string `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
}

func (x *GuessGamePublish) Reset() {
	*x = GuessGamePublish{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessGamePublish) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessGamePublish) ProtoMessage() {}

func (x *GuessGamePublish) ProtoReflect() protoreflect.Message {
	mi := &file_guess_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 GuessGamePublish.ProtoReflect.Descriptor instead.
func (*GuessGamePublish) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{10}
}

func (x *GuessGamePublish) GetGameID() string {
	if x != nil {
		return x.GameID
	}
	return ""
}

func (x *GuessGamePublish) GetResult() string {
	if x != nil {
		return x.Result
	}
	return ""
}

// GuessGameQuery 查询游戏结果
type GuessGameQuery struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameID string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	Ty     uint32 `protobuf:"varint,2,opt,name=ty,proto3" json:"ty,omitempty"`
}

func (x *GuessGameQuery) Reset() {
	*x = GuessGameQuery{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessGameQuery) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessGameQuery) ProtoMessage() {}

func (x *GuessGameQuery) ProtoReflect() protoreflect.Message {
	mi := &file_guess_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 GuessGameQuery.ProtoReflect.Descriptor instead.
func (*GuessGameQuery) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{11}
}

func (x *GuessGameQuery) GetGameID() string {
	if x != nil {
		return x.GameID
	}
	return ""
}

func (x *GuessGameQuery) GetTy() uint32 {
	if x != nil {
		return x.Ty
	}
	return 0
}

// QueryGuessGameInfo 游戏信息查询消息
type QueryGuessGameInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameID     string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	Addr       string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`
	Status     int32  `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"`
	Index      int64  `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"`
	AdminAddr  string `protobuf:"bytes,5,opt,name=adminAddr,proto3" json:"adminAddr,omitempty"`
	Category   string `protobuf:"bytes,6,opt,name=category,proto3" json:"category,omitempty"`
	PrimaryKey string `protobuf:"bytes,7,opt,name=primaryKey,proto3" json:"primaryKey,omitempty"`
}

func (x *QueryGuessGameInfo) Reset() {
	*x = QueryGuessGameInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QueryGuessGameInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryGuessGameInfo) ProtoMessage() {}

func (x *QueryGuessGameInfo) ProtoReflect() protoreflect.Message {
	mi := &file_guess_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 QueryGuessGameInfo.ProtoReflect.Descriptor instead.
func (*QueryGuessGameInfo) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{12}
}

func (x *QueryGuessGameInfo) GetGameID() string {
	if x != nil {
		return x.GameID
	}
	return ""
}

func (x *QueryGuessGameInfo) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

func (x *QueryGuessGameInfo) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *QueryGuessGameInfo) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *QueryGuessGameInfo) GetAdminAddr() string {
	if x != nil {
		return x.AdminAddr
	}
	return ""
}

func (x *QueryGuessGameInfo) GetCategory() string {
	if x != nil {
		return x.Category
	}
	return ""
}

func (x *QueryGuessGameInfo) GetPrimaryKey() string {
	if x != nil {
		return x.PrimaryKey
	}
	return ""
}

// ReplyGuessGameInfo 游戏信息查询响应消息
type ReplyGuessGameInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Game *GuessGame `protobuf:"bytes,1,opt,name=game,proto3" json:"game,omitempty"`
}

func (x *ReplyGuessGameInfo) Reset() {
	*x = ReplyGuessGameInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReplyGuessGameInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReplyGuessGameInfo) ProtoMessage() {}

func (x *ReplyGuessGameInfo) ProtoReflect() protoreflect.Message {
	mi := &file_guess_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 ReplyGuessGameInfo.ProtoReflect.Descriptor instead.
func (*ReplyGuessGameInfo) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{13}
}

func (x *ReplyGuessGameInfo) GetGame() *GuessGame {
	if x != nil {
		return x.Game
	}
	return nil
}

// QueryGuessGameInfos 游戏信息列表查询消息
type QueryGuessGameInfos struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameIDs []string `protobuf:"bytes,1,rep,name=gameIDs,proto3" json:"gameIDs,omitempty"`
}

func (x *QueryGuessGameInfos) Reset() {
	*x = QueryGuessGameInfos{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QueryGuessGameInfos) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryGuessGameInfos) ProtoMessage() {}

func (x *QueryGuessGameInfos) ProtoReflect() protoreflect.Message {
	mi := &file_guess_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 QueryGuessGameInfos.ProtoReflect.Descriptor instead.
func (*QueryGuessGameInfos) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{14}
}

func (x *QueryGuessGameInfos) GetGameIDs() []string {
	if x != nil {
		return x.GameIDs
	}
	return nil
}

// ReplyGuessGameInfos 游戏信息列表查询响应消息
type ReplyGuessGameInfos struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Games []*GuessGame `protobuf:"bytes,1,rep,name=games,proto3" json:"games,omitempty"`
}

func (x *ReplyGuessGameInfos) Reset() {
	*x = ReplyGuessGameInfos{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReplyGuessGameInfos) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReplyGuessGameInfos) ProtoMessage() {}

func (x *ReplyGuessGameInfos) ProtoReflect() protoreflect.Message {
	mi := &file_guess_proto_msgTypes[15]
	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 ReplyGuessGameInfos.ProtoReflect.Descriptor instead.
func (*ReplyGuessGameInfos) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{15}
}

func (x *ReplyGuessGameInfos) GetGames() []*GuessGame {
	if x != nil {
		return x.Games
	}
	return nil
}

// ReceiptGuessGame 竞猜游戏收据信息
type ReceiptGuessGame struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	StartIndex   int64      `protobuf:"varint,1,opt,name=startIndex,proto3" json:"startIndex,omitempty"`
	GameID       string     `protobuf:"bytes,2,opt,name=gameID,proto3" json:"gameID,omitempty"`
	PreStatus    int32      `protobuf:"varint,3,opt,name=preStatus,proto3" json:"preStatus,omitempty"`
	Status       int32      `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"`
	Addr         string     `protobuf:"bytes,5,opt,name=addr,proto3" json:"addr,omitempty"`
	AdminAddr    string     `protobuf:"bytes,6,opt,name=adminAddr,proto3" json:"adminAddr,omitempty"`
	PreIndex     int64      `protobuf:"varint,7,opt,name=preIndex,proto3" json:"preIndex,omitempty"`
	Index        int64      `protobuf:"varint,8,opt,name=index,proto3" json:"index,omitempty"`
	Category     string     `protobuf:"bytes,9,opt,name=category,proto3" json:"category,omitempty"`
	StatusChange bool       `protobuf:"varint,10,opt,name=statusChange,proto3" json:"statusChange,omitempty"`
	Bet          bool       `protobuf:"varint,11,opt,name=bet,proto3" json:"bet,omitempty"`
	Option       string     `protobuf:"bytes,12,opt,name=option,proto3" json:"option,omitempty"`
	BetsNumber   int64      `protobuf:"varint,13,opt,name=betsNumber,proto3" json:"betsNumber,omitempty"`
	Game         *GuessGame `protobuf:"bytes,14,opt,name=game,proto3" json:"game,omitempty"`
}

func (x *ReceiptGuessGame) Reset() {
	*x = ReceiptGuessGame{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReceiptGuessGame) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReceiptGuessGame) ProtoMessage() {}

func (x *ReceiptGuessGame) ProtoReflect() protoreflect.Message {
	mi := &file_guess_proto_msgTypes[16]
	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 ReceiptGuessGame.ProtoReflect.Descriptor instead.
func (*ReceiptGuessGame) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{16}
}

func (x *ReceiptGuessGame) GetStartIndex() int64 {
	if x != nil {
		return x.StartIndex
	}
	return 0
}

func (x *ReceiptGuessGame) GetGameID() string {
	if x != nil {
		return x.GameID
	}
	return ""
}

func (x *ReceiptGuessGame) GetPreStatus() int32 {
	if x != nil {
		return x.PreStatus
	}
	return 0
}

func (x *ReceiptGuessGame) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *ReceiptGuessGame) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

func (x *ReceiptGuessGame) GetAdminAddr() string {
	if x != nil {
		return x.AdminAddr
	}
	return ""
}

func (x *ReceiptGuessGame) GetPreIndex() int64 {
	if x != nil {
		return x.PreIndex
	}
	return 0
}

func (x *ReceiptGuessGame) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *ReceiptGuessGame) GetCategory() string {
	if x != nil {
		return x.Category
	}
	return ""
}

func (x *ReceiptGuessGame) GetStatusChange() bool {
	if x != nil {
		return x.StatusChange
	}
	return false
}

func (x *ReceiptGuessGame) GetBet() bool {
	if x != nil {
		return x.Bet
	}
	return false
}

func (x *ReceiptGuessGame) GetOption() string {
	if x != nil {
		return x.Option
	}
	return ""
}

func (x *ReceiptGuessGame) GetBetsNumber() int64 {
	if x != nil {
		return x.BetsNumber
	}
	return 0
}

func (x *ReceiptGuessGame) GetGame() *GuessGame {
	if x != nil {
		return x.Game
	}
	return nil
}

// UserBet 用户下注信息
type UserBet struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	StartIndex int64  `protobuf:"varint,1,opt,name=startIndex,proto3" json:"startIndex,omitempty"`
	Index      int64  `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
	GameID     string `protobuf:"bytes,3,opt,name=gameID,proto3" json:"gameID,omitempty"`
	Addr       string `protobuf:"bytes,4,opt,name=addr,proto3" json:"addr,omitempty"`
	Option     string `protobuf:"bytes,5,opt,name=option,proto3" json:"option,omitempty"`
	BetsNumber int64  `protobuf:"varint,6,opt,name=betsNumber,proto3" json:"betsNumber,omitempty"`
}

func (x *UserBet) Reset() {
	*x = UserBet{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserBet) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserBet) ProtoMessage() {}

func (x *UserBet) ProtoReflect() protoreflect.Message {
	mi := &file_guess_proto_msgTypes[17]
	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 UserBet.ProtoReflect.Descriptor instead.
func (*UserBet) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{17}
}

func (x *UserBet) GetStartIndex() int64 {
	if x != nil {
		return x.StartIndex
	}
	return 0
}

func (x *UserBet) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *UserBet) GetGameID() string {
	if x != nil {
		return x.GameID
	}
	return ""
}

func (x *UserBet) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

func (x *UserBet) GetOption() string {
	if x != nil {
		return x.Option
	}
	return ""
}

func (x *UserBet) GetBetsNumber() int64 {
	if x != nil {
		return x.BetsNumber
	}
	return 0
}

// GuessStartTxReq 构造start交易的请求
type GuessStartTxReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Topic          string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
	Options        string `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"`
	Category       string `protobuf:"bytes,3,opt,name=category,proto3" json:"category,omitempty"`
	MaxHeight      int64  `protobuf:"varint,4,opt,name=maxHeight,proto3" json:"maxHeight,omitempty"`
	MaxBetHeight   int64  `protobuf:"varint,5,opt,name=maxBetHeight,proto3" json:"maxBetHeight,omitempty"`
	MaxBetsOneTime int64  `protobuf:"varint,6,opt,name=maxBetsOneTime,proto3" json:"maxBetsOneTime,omitempty"`
	MaxBetsNumber  int64  `protobuf:"varint,7,opt,name=maxBetsNumber,proto3" json:"maxBetsNumber,omitempty"`
	DevFeeFactor   int64  `protobuf:"varint,8,opt,name=devFeeFactor,proto3" json:"devFeeFactor,omitempty"`
	DevFeeAddr     string `protobuf:"bytes,9,opt,name=devFeeAddr,proto3" json:"devFeeAddr,omitempty"`
	PlatFeeFactor  int64  `protobuf:"varint,10,opt,name=platFeeFactor,proto3" json:"platFeeFactor,omitempty"`
	PlatFeeAddr    string `protobuf:"bytes,11,opt,name=platFeeAddr,proto3" json:"platFeeAddr,omitempty"`
	ExpireHeight   int64  `protobuf:"varint,12,opt,name=expireHeight,proto3" json:"expireHeight,omitempty"`
	Fee            int64  `protobuf:"varint,13,opt,name=fee,proto3" json:"fee,omitempty"`
}

func (x *GuessStartTxReq) Reset() {
	*x = GuessStartTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessStartTxReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessStartTxReq) ProtoMessage() {}

func (x *GuessStartTxReq) ProtoReflect() protoreflect.Message {
	mi := &file_guess_proto_msgTypes[18]
	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 GuessStartTxReq.ProtoReflect.Descriptor instead.
func (*GuessStartTxReq) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{18}
}

func (x *GuessStartTxReq) GetTopic() string {
	if x != nil {
		return x.Topic
	}
	return ""
}

func (x *GuessStartTxReq) GetOptions() string {
	if x != nil {
		return x.Options
	}
	return ""
}

func (x *GuessStartTxReq) GetCategory() string {
	if x != nil {
		return x.Category
	}
	return ""
}

func (x *GuessStartTxReq) GetMaxHeight() int64 {
	if x != nil {
		return x.MaxHeight
	}
	return 0
}

func (x *GuessStartTxReq) GetMaxBetHeight() int64 {
	if x != nil {
		return x.MaxBetHeight
	}
	return 0
}

func (x *GuessStartTxReq) GetMaxBetsOneTime() int64 {
	if x != nil {
		return x.MaxBetsOneTime
	}
	return 0
}

func (x *GuessStartTxReq) GetMaxBetsNumber() int64 {
	if x != nil {
		return x.MaxBetsNumber
	}
	return 0
}

func (x *GuessStartTxReq) GetDevFeeFactor() int64 {
	if x != nil {
		return x.DevFeeFactor
	}
	return 0
}

func (x *GuessStartTxReq) GetDevFeeAddr() string {
	if x != nil {
		return x.DevFeeAddr
	}
	return ""
}

func (x *GuessStartTxReq) GetPlatFeeFactor() int64 {
	if x != nil {
		return x.PlatFeeFactor
	}
	return 0
}

func (x *GuessStartTxReq) GetPlatFeeAddr() string {
	if x != nil {
		return x.PlatFeeAddr
	}
	return ""
}

func (x *GuessStartTxReq) GetExpireHeight() int64 {
	if x != nil {
		return x.ExpireHeight
	}
	return 0
}

func (x *GuessStartTxReq) GetFee() int64 {
	if x != nil {
		return x.Fee
	}
	return 0
}

// GuessBetTxReq 构造bet交易的请求
type GuessBetTxReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameID string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	Option string `protobuf:"bytes,2,opt,name=option,proto3" json:"option,omitempty"`
	Bets   int64  `protobuf:"varint,3,opt,name=bets,proto3" json:"bets,omitempty"`
	Fee    int64  `protobuf:"varint,4,opt,name=fee,proto3" json:"fee,omitempty"`
}

func (x *GuessBetTxReq) Reset() {
	*x = GuessBetTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessBetTxReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessBetTxReq) ProtoMessage() {}

func (x *GuessBetTxReq) ProtoReflect() protoreflect.Message {
	mi := &file_guess_proto_msgTypes[19]
	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 GuessBetTxReq.ProtoReflect.Descriptor instead.
func (*GuessBetTxReq) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{19}
}

func (x *GuessBetTxReq) GetGameID() string {
	if x != nil {
		return x.GameID
	}
	return ""
}

func (x *GuessBetTxReq) GetOption() string {
	if x != nil {
		return x.Option
	}
	return ""
}

func (x *GuessBetTxReq) GetBets() int64 {
	if x != nil {
		return x.Bets
	}
	return 0
}

func (x *GuessBetTxReq) GetFee() int64 {
	if x != nil {
		return x.Fee
	}
	return 0
}

// GuessStopBetTxReq 构造stopBet交易的请求
type GuessStopBetTxReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameID string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	Fee    int64  `protobuf:"varint,2,opt,name=fee,proto3" json:"fee,omitempty"`
}

func (x *GuessStopBetTxReq) Reset() {
	*x = GuessStopBetTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessStopBetTxReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessStopBetTxReq) ProtoMessage() {}

func (x *GuessStopBetTxReq) ProtoReflect() protoreflect.Message {
	mi := &file_guess_proto_msgTypes[20]
	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 GuessStopBetTxReq.ProtoReflect.Descriptor instead.
func (*GuessStopBetTxReq) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{20}
}

func (x *GuessStopBetTxReq) GetGameID() string {
	if x != nil {
		return x.GameID
	}
	return ""
}

func (x *GuessStopBetTxReq) GetFee() int64 {
	if x != nil {
		return x.Fee
	}
	return 0
}

// GuessAbortTxReq 构造abort交易的请求
type GuessAbortTxReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameID string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	Fee    int64  `protobuf:"varint,2,opt,name=fee,proto3" json:"fee,omitempty"`
}

func (x *GuessAbortTxReq) Reset() {
	*x = GuessAbortTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessAbortTxReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessAbortTxReq) ProtoMessage() {}

func (x *GuessAbortTxReq) ProtoReflect() protoreflect.Message {
	mi := &file_guess_proto_msgTypes[21]
	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 GuessAbortTxReq.ProtoReflect.Descriptor instead.
func (*GuessAbortTxReq) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{21}
}

func (x *GuessAbortTxReq) GetGameID() string {
	if x != nil {
		return x.GameID
	}
	return ""
}

func (x *GuessAbortTxReq) GetFee() int64 {
	if x != nil {
		return x.Fee
	}
	return 0
}

// GuessPublishTxReq 构造publish交易的请求
type GuessPublishTxReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameID string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	Result string `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
	Fee    int64  `protobuf:"varint,3,opt,name=fee,proto3" json:"fee,omitempty"`
}

func (x *GuessPublishTxReq) Reset() {
	*x = GuessPublishTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessPublishTxReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessPublishTxReq) ProtoMessage() {}

func (x *GuessPublishTxReq) ProtoReflect() protoreflect.Message {
	mi := &file_guess_proto_msgTypes[22]
	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 GuessPublishTxReq.ProtoReflect.Descriptor instead.
func (*GuessPublishTxReq) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{22}
}

func (x *GuessPublishTxReq) GetGameID() string {
	if x != nil {
		return x.GameID
	}
	return ""
}

func (x *GuessPublishTxReq) GetResult() string {
	if x != nil {
		return x.Result
	}
	return ""
}

func (x *GuessPublishTxReq) GetFee() int64 {
	if x != nil {
		return x.Fee
	}
	return 0
}

// GuessGameRecord game信息查询记录
type GuessGameRecord struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GameID     string `protobuf:"bytes,1,opt,name=gameID,proto3" json:"gameID,omitempty"`
	StartIndex int64  `protobuf:"varint,2,opt,name=startIndex,proto3" json:"startIndex,omitempty"`
}

func (x *GuessGameRecord) Reset() {
	*x = GuessGameRecord{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessGameRecord) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessGameRecord) ProtoMessage() {}

func (x *GuessGameRecord) ProtoReflect() protoreflect.Message {
	mi := &file_guess_proto_msgTypes[23]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GuessGameRecord.ProtoReflect.Descriptor instead.
func (*GuessGameRecord) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{23}
}

func (x *GuessGameRecord) GetGameID() string {
	if x != nil {
		return x.GameID
	}
	return ""
}

func (x *GuessGameRecord) GetStartIndex() int64 {
	if x != nil {
		return x.StartIndex
	}
	return 0
}

// GuessGameRecords game信息查询记录集
type GuessGameRecords struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Records    []*GuessGameRecord `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"`
	PrimaryKey string             `protobuf:"bytes,2,opt,name=primaryKey,proto3" json:"primaryKey,omitempty"`
}

func (x *GuessGameRecords) Reset() {
	*x = GuessGameRecords{}
	if protoimpl.UnsafeEnabled {
		mi := &file_guess_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GuessGameRecords) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GuessGameRecords) ProtoMessage() {}

func (x *GuessGameRecords) ProtoReflect() protoreflect.Message {
	mi := &file_guess_proto_msgTypes[24]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GuessGameRecords.ProtoReflect.Descriptor instead.
func (*GuessGameRecords) Descriptor() ([]byte, []int) {
	return file_guess_proto_rawDescGZIP(), []int{24}
}

func (x *GuessGameRecords) GetRecords() []*GuessGameRecord {
	if x != nil {
		return x.Records
	}
	return nil
}

func (x *GuessGameRecords) GetPrimaryKey() string {
	if x != nil {
		return x.PrimaryKey
	}
	return ""
}

var File_guess_proto protoreflect.FileDescriptor

var file_guess_proto_rawDesc = []byte{
	0x0a, 0x0b, 0x67, 0x75, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x1a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd0, 0x06, 0x0a, 0x09, 0x47, 0x75, 0x65, 0x73,
	0x73, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x65, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d,
	0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x65, 0x69,
	0x67, 0x68, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x78, 0x48, 0x61,
	0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54,
	0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x63,
	0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63,
	0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x48,
	0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x73,
	0x4f, 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d,
	0x61, 0x78, 0x42, 0x65, 0x74, 0x73, 0x4f, 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a,
	0x0d, 0x6d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x73, 0x4e, 0x75, 0x6d,
	0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x76, 0x46, 0x65, 0x65, 0x46, 0x61, 0x63,
	0x74, 0x6f, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x64, 0x65, 0x76, 0x46, 0x65,
	0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x46, 0x65,
	0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76,
	0x46, 0x65, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x74, 0x46,
	0x65, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d,
	0x70, 0x6c, 0x61, 0x74, 0x46, 0x65, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a,
	0x0b, 0x70, 0x6c, 0x61, 0x74, 0x46, 0x65, 0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x11, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x46, 0x65, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12,
	0x22, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18,
	0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x48, 0x65, 0x69,
	0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72,
	0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, 0x64,
	0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x65, 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18,
	0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x65, 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65,
	0x72, 0x12, 0x28, 0x0a, 0x05, 0x70, 0x6c, 0x61, 0x79, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x50, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x52, 0x05, 0x70, 0x6c, 0x61, 0x79, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x07, 0x62, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x18, 0x17,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x75, 0x65,
	0x73, 0x73, 0x42, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x52, 0x07, 0x62, 0x65, 0x74, 0x53, 0x74,
	0x61, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x49,
	0x6e, 0x64, 0x65, 0x78, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x72, 0x65, 0x49,
	0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x72, 0x69, 0x76, 0x65, 0x6e, 0x42, 0x79,
	0x41, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x72, 0x69,
	0x76, 0x65, 0x6e, 0x42, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x44, 0x0a, 0x0b, 0x47, 0x75,
	0x65, 0x73, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x21, 0x0a,
	0x03, 0x62, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x42, 0x65, 0x74, 0x52, 0x03, 0x62, 0x65, 0x74,
	0x22, 0xa8, 0x01, 0x0a, 0x08, 0x47, 0x75, 0x65, 0x73, 0x73, 0x42, 0x65, 0x74, 0x12, 0x16, 0x0a,
	0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x65, 0x74, 0x73, 0x4e, 0x75, 0x6d,
	0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x65, 0x74, 0x73, 0x4e,
	0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x57, 0x69, 0x6e, 0x6e, 0x65,
	0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x57, 0x69, 0x6e, 0x6e, 0x65,
	0x72, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64,
	0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12,
	0x1a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x08, 0x70, 0x72, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x8d, 0x01, 0x0a, 0x0c,
	0x47, 0x75, 0x65, 0x73, 0x73, 0x42, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x12, 0x24, 0x0a, 0x0d,
	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x65, 0x74, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x65, 0x74, 0x73, 0x4e,
	0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x6f, 0x74,
	0x61, 0x6c, 0x42, 0x65, 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x05,
	0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x42, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74,
	0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x68, 0x0a, 0x10, 0x47,
	0x75, 0x65, 0x73, 0x73, 0x42, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12,
	0x16, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x65, 0x74, 0x73, 0x4e,
	0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x65, 0x74,
	0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x65, 0x74, 0x73, 0x54,
	0x69, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x65, 0x74, 0x73,
	0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0xca, 0x02, 0x0a, 0x0f, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47,
	0x61, 0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48,
	0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x27, 0x0a, 0x03, 0x62, 0x65, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x75,
	0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x65, 0x74, 0x48, 0x00, 0x52, 0x03, 0x62, 0x65,
	0x74, 0x12, 0x33, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x42, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x73,
	0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x65, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73,
	0x74, 0x6f, 0x70, 0x42, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x75,
	0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x05,
	0x61, 0x62, 0x6f, 0x72, 0x74, 0x12, 0x33, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47,
	0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x48,
	0x00, 0x52, 0x07, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, 0x2d, 0x0a, 0x05, 0x71, 0x75,
	0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79,
	0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x79, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x74, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x22, 0xa4, 0x03, 0x0a, 0x0e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65,
	0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x6f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72,
	0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72,
	0x79, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x48,
	0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x73,
	0x4f, 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d,
	0x61, 0x78, 0x42, 0x65, 0x74, 0x73, 0x4f, 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a,
	0x0d, 0x6d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x73, 0x4e, 0x75, 0x6d,
	0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x76, 0x46, 0x65, 0x65, 0x46, 0x61, 0x63,
	0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x64, 0x65, 0x76, 0x46, 0x65,
	0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x46, 0x65,
	0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76,
	0x46, 0x65, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x74, 0x46,
	0x65, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d,
	0x70, 0x6c, 0x61, 0x74, 0x46, 0x65, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a,
	0x0b, 0x70, 0x6c, 0x61, 0x74, 0x46, 0x65, 0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0a, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x46, 0x65, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12,
	0x22, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18,
	0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x48, 0x65, 0x69,
	0x67, 0x68, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x72, 0x69, 0x76, 0x65, 0x6e, 0x42, 0x79, 0x41,
	0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x72, 0x69, 0x76,
	0x65, 0x6e, 0x42, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x58, 0x0a, 0x0c, 0x47, 0x75, 0x65,
	0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d,
	0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49,
	0x44, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x65, 0x74,
	0x73, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x65, 0x74, 0x73,
	0x4e, 0x75, 0x6d, 0x22, 0x2a, 0x0a, 0x10, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65,
	0x53, 0x74, 0x6f, 0x70, 0x42, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49,
	0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x22,
	0x28, 0x0a, 0x0e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x62, 0x6f, 0x72,
	0x74, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x22, 0x42, 0x0a, 0x10, 0x47, 0x75, 0x65,
	0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, 0x16, 0x0a,
	0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67,
	0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x38, 0x0a,
	0x0e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12,
	0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x79, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x02, 0x74, 0x79, 0x22, 0xc8, 0x01, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72,
	0x79, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16,
	0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x6d, 0x69,
	0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x6d,
	0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f,
	0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f,
	0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b,
	0x65, 0x79, 0x22, 0x3a, 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x47, 0x75, 0x65, 0x73, 0x73,
	0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x04, 0x67, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47,
	0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x67, 0x61, 0x6d, 0x65, 0x22, 0x2f,
	0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65,
	0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x73, 0x22,
	0x3d, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d,
	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x26, 0x0a, 0x05, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x75,
	0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x05, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x94,
	0x03, 0x0a, 0x10, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47,
	0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70,
	0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
	0x70, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64,
	0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41,
	0x64, 0x64, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x72, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12,
	0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72,
	0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72,
	0x79, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x03, 0x62, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x1e, 0x0a, 0x0a, 0x62, 0x65, 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x65, 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12,
	0x24, 0x0a, 0x04, 0x67, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x52,
	0x04, 0x67, 0x61, 0x6d, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x42, 0x65,
	0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49,
	0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12,
	0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61,
	0x64, 0x64, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62,
	0x65, 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0a, 0x62, 0x65, 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xaf, 0x03, 0x0a, 0x0f,
	0x47, 0x75, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x12,
	0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
	0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
	0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6d,
	0x61, 0x78, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
	0x6d, 0x61, 0x78, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x78,
	0x42, 0x65, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0c, 0x6d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x26, 0x0a,
	0x0e, 0x6d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x73, 0x4f, 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x73, 0x4f, 0x6e,
	0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x73,
	0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61,
	0x78, 0x42, 0x65, 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x64,
	0x65, 0x76, 0x46, 0x65, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0c, 0x64, 0x65, 0x76, 0x46, 0x65, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12,
	0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x46, 0x65, 0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x46, 0x65, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12,
	0x24, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x74, 0x46, 0x65, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x70, 0x6c, 0x61, 0x74, 0x46, 0x65, 0x65, 0x46,
	0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x46, 0x65, 0x65,
	0x41, 0x64, 0x64, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74,
	0x46, 0x65, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72,
	0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x65,
	0x78, 0x70, 0x69, 0x72, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x66,
	0x65, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x66, 0x65, 0x65, 0x22, 0x65, 0x0a,
	0x0d, 0x47, 0x75, 0x65, 0x73, 0x73, 0x42, 0x65, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x12, 0x16,
	0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12,
	0x0a, 0x04, 0x62, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x62, 0x65,
	0x74, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x03, 0x66, 0x65, 0x65, 0x22, 0x3d, 0x0a, 0x11, 0x47, 0x75, 0x65, 0x73, 0x73, 0x53, 0x74, 0x6f,
	0x70, 0x42, 0x65, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d,
	0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49,
	0x44, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03,
	0x66, 0x65, 0x65, 0x22, 0x3b, 0x0a, 0x0f, 0x47, 0x75, 0x65, 0x73, 0x73, 0x41, 0x62, 0x6f, 0x72,
	0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x10,
	0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x66, 0x65, 0x65,
	0x22, 0x55, 0x0a, 0x11, 0x47, 0x75, 0x65, 0x73, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68,
	0x54, 0x78, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a,
	0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x03, 0x66, 0x65, 0x65, 0x22, 0x49, 0x0a, 0x0f, 0x47, 0x75, 0x65, 0x73, 0x73,
	0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61,
	0x6d, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x61, 0x6d, 0x65,
	0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64,
	0x65, 0x78, 0x22, 0x64, 0x0a, 0x10, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x52,
	0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x47, 0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52,
	0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x6d,
	0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72,
	0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x32, 0xa3, 0x02, 0x0a, 0x05, 0x67, 0x75, 0x65,
	0x73, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x47, 0x75, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74,
	0x12, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47, 0x61,
	0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x1a, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x78, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x08, 0x47, 0x75,
	0x65, 0x73, 0x73, 0x42, 0x65, 0x74, 0x12, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47,
	0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x65, 0x74, 0x1a, 0x0f, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x78, 0x22, 0x00, 0x12, 0x3a,
	0x0a, 0x0c, 0x47, 0x75, 0x65, 0x73, 0x73, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x65, 0x74, 0x12, 0x17,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65,
	0x53, 0x74, 0x6f, 0x70, 0x42, 0x65, 0x74, 0x1a, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x78, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x0a, 0x47, 0x75,
	0x65, 0x73, 0x73, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x12, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x47, 0x75, 0x65, 0x73, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x1a,
	0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x78,
	0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0c, 0x47, 0x75, 0x65, 0x73, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69,
	0x73, 0x68, 0x12, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x73,
	0x47, 0x61, 0x6d, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x1a, 0x0f, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x78, 0x22, 0x00, 0x42, 0x0a,
	0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x33,
}

var (
	file_guess_proto_rawDescOnce sync.Once
	file_guess_proto_rawDescData = file_guess_proto_rawDesc
)

func file_guess_proto_rawDescGZIP() []byte {
	file_guess_proto_rawDescOnce.Do(func() {
		file_guess_proto_rawDescData = protoimpl.X.CompressGZIP(file_guess_proto_rawDescData)
	})
	return file_guess_proto_rawDescData
}

var file_guess_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
var file_guess_proto_goTypes = []interface{}{
	(*GuessGame)(nil),           // 0: types.GuessGame
	(*GuessPlayer)(nil),         // 1: types.GuessPlayer
	(*GuessBet)(nil),            // 2: types.GuessBet
	(*GuessBetStat)(nil),        // 3: types.GuessBetStat
	(*GuessBetStatItem)(nil),    // 4: types.GuessBetStatItem
	(*GuessGameAction)(nil),     // 5: types.GuessGameAction
	(*GuessGameStart)(nil),      // 6: types.GuessGameStart
	(*GuessGameBet)(nil),        // 7: types.GuessGameBet
	(*GuessGameStopBet)(nil),    // 8: types.GuessGameStopBet
	(*GuessGameAbort)(nil),      // 9: types.GuessGameAbort
	(*GuessGamePublish)(nil),    // 10: types.GuessGamePublish
	(*GuessGameQuery)(nil),      // 11: types.GuessGameQuery
	(*QueryGuessGameInfo)(nil),  // 12: types.QueryGuessGameInfo
	(*ReplyGuessGameInfo)(nil),  // 13: types.ReplyGuessGameInfo
	(*QueryGuessGameInfos)(nil), // 14: types.QueryGuessGameInfos
	(*ReplyGuessGameInfos)(nil), // 15: types.ReplyGuessGameInfos
	(*ReceiptGuessGame)(nil),    // 16: types.ReceiptGuessGame
	(*UserBet)(nil),             // 17: types.UserBet
	(*GuessStartTxReq)(nil),     // 18: types.GuessStartTxReq
	(*GuessBetTxReq)(nil),       // 19: types.GuessBetTxReq
	(*GuessStopBetTxReq)(nil),   // 20: types.GuessStopBetTxReq
	(*GuessAbortTxReq)(nil),     // 21: types.GuessAbortTxReq
	(*GuessPublishTxReq)(nil),   // 22: types.GuessPublishTxReq
	(*GuessGameRecord)(nil),     // 23: types.GuessGameRecord
	(*GuessGameRecords)(nil),    // 24: types.GuessGameRecords
	(*types.UnsignTx)(nil),      // 25: types.UnsignTx
}
var file_guess_proto_depIdxs = []int32{
	1,  // 0: types.GuessGame.plays:type_name -> types.GuessPlayer
	3,  // 1: types.GuessGame.betStat:type_name -> types.GuessBetStat
	2,  // 2: types.GuessPlayer.bet:type_name -> types.GuessBet
	4,  // 3: types.GuessBetStat.items:type_name -> types.GuessBetStatItem
	6,  // 4: types.GuessGameAction.start:type_name -> types.GuessGameStart
	7,  // 5: types.GuessGameAction.bet:type_name -> types.GuessGameBet
	8,  // 6: types.GuessGameAction.stopBet:type_name -> types.GuessGameStopBet
	9,  // 7: types.GuessGameAction.abort:type_name -> types.GuessGameAbort
	10, // 8: types.GuessGameAction.publish:type_name -> types.GuessGamePublish
	11, // 9: types.GuessGameAction.query:type_name -> types.GuessGameQuery
	0,  // 10: types.ReplyGuessGameInfo.game:type_name -> types.GuessGame
	0,  // 11: types.ReplyGuessGameInfos.games:type_name -> types.GuessGame
	0,  // 12: types.ReceiptGuessGame.game:type_name -> types.GuessGame
	23, // 13: types.GuessGameRecords.records:type_name -> types.GuessGameRecord
	6,  // 14: types.guess.GuessStart:input_type -> types.GuessGameStart
	7,  // 15: types.guess.GuessBet:input_type -> types.GuessGameBet
	8,  // 16: types.guess.GuessStopBet:input_type -> types.GuessGameStopBet
	9,  // 17: types.guess.GuessAbort:input_type -> types.GuessGameAbort
	10, // 18: types.guess.GuessPublish:input_type -> types.GuessGamePublish
	25, // 19: types.guess.GuessStart:output_type -> types.UnsignTx
	25, // 20: types.guess.GuessBet:output_type -> types.UnsignTx
	25, // 21: types.guess.GuessStopBet:output_type -> types.UnsignTx
	25, // 22: types.guess.GuessAbort:output_type -> types.UnsignTx
	25, // 23: types.guess.GuessPublish:output_type -> types.UnsignTx
	19, // [19:24] is the sub-list for method output_type
	14, // [14:19] is the sub-list for method input_type
	14, // [14:14] is the sub-list for extension type_name
	14, // [14:14] is the sub-list for extension extendee
	0,  // [0:14] is the sub-list for field type_name
}

func init() { file_guess_proto_init() }
func file_guess_proto_init() {
	if File_guess_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_guess_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessGame); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessPlayer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessBet); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessBetStat); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessBetStatItem); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessGameAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessGameStart); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessGameBet); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessGameStopBet); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessGameAbort); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessGamePublish); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessGameQuery); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryGuessGameInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyGuessGameInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryGuessGameInfos); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyGuessGameInfos); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptGuessGame); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserBet); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessStartTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessBetTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessStopBetTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessAbortTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessPublishTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessGameRecord); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_guess_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GuessGameRecords); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_guess_proto_msgTypes[5].OneofWrappers = []interface{}{
		(*GuessGameAction_Start)(nil),
		(*GuessGameAction_Bet)(nil),
		(*GuessGameAction_StopBet)(nil),
		(*GuessGameAction_Abort)(nil),
		(*GuessGameAction_Publish)(nil),
		(*GuessGameAction_Query)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_guess_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   25,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_guess_proto_goTypes,
		DependencyIndexes: file_guess_proto_depIdxs,
		MessageInfos:      file_guess_proto_msgTypes,
	}.Build()
	File_guess_proto = out.File
	file_guess_proto_rawDesc = nil
	file_guess_proto_goTypes = nil
	file_guess_proto_depIdxs = nil
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// GuessClient is the client API for Guess service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type GuessClient interface {
	//游戏开始
	GuessStart(ctx context.Context, in *GuessGameStart, opts ...grpc.CallOption) (*types.UnsignTx, error)
	//游戏下注
	GuessBet(ctx context.Context, in *GuessGameBet, opts ...grpc.CallOption) (*types.UnsignTx, error)
	//游戏终止下注
	GuessStopBet(ctx context.Context, in *GuessGameStopBet, opts ...grpc.CallOption) (*types.UnsignTx, error)
	//游戏异常终止
	GuessAbort(ctx context.Context, in *GuessGameAbort, opts ...grpc.CallOption) (*types.UnsignTx, error)
	//游戏结束
	GuessPublish(ctx context.Context, in *GuessGamePublish, opts ...grpc.CallOption) (*types.UnsignTx, error)
}

type guessClient struct {
	cc grpc.ClientConnInterface
}

func NewGuessClient(cc grpc.ClientConnInterface) GuessClient {
	return &guessClient{cc}
}

func (c *guessClient) GuessStart(ctx context.Context, in *GuessGameStart, opts ...grpc.CallOption) (*types.UnsignTx, error) {
	out := new(types.UnsignTx)
	err := c.cc.Invoke(ctx, "/types.guess/GuessStart", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *guessClient) GuessBet(ctx context.Context, in *GuessGameBet, opts ...grpc.CallOption) (*types.UnsignTx, error) {
	out := new(types.UnsignTx)
	err := c.cc.Invoke(ctx, "/types.guess/GuessBet", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *guessClient) GuessStopBet(ctx context.Context, in *GuessGameStopBet, opts ...grpc.CallOption) (*types.UnsignTx, error) {
	out := new(types.UnsignTx)
	err := c.cc.Invoke(ctx, "/types.guess/GuessStopBet", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *guessClient) GuessAbort(ctx context.Context, in *GuessGameAbort, opts ...grpc.CallOption) (*types.UnsignTx, error) {
	out := new(types.UnsignTx)
	err := c.cc.Invoke(ctx, "/types.guess/GuessAbort", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *guessClient) GuessPublish(ctx context.Context, in *GuessGamePublish, opts ...grpc.CallOption) (*types.UnsignTx, error) {
	out := new(types.UnsignTx)
	err := c.cc.Invoke(ctx, "/types.guess/GuessPublish", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// GuessServer is the server API for Guess service.
type GuessServer interface {
	//游戏开始
	GuessStart(context.Context, *GuessGameStart) (*types.UnsignTx, error)
	//游戏下注
	GuessBet(context.Context, *GuessGameBet) (*types.UnsignTx, error)
	//游戏终止下注
	GuessStopBet(context.Context, *GuessGameStopBet) (*types.UnsignTx, error)
	//游戏异常终止
	GuessAbort(context.Context, *GuessGameAbort) (*types.UnsignTx, error)
	//游戏结束
	GuessPublish(context.Context, *GuessGamePublish) (*types.UnsignTx, error)
}

// UnimplementedGuessServer can be embedded to have forward compatible implementations.
type UnimplementedGuessServer struct {
}

func (*UnimplementedGuessServer) GuessStart(context.Context, *GuessGameStart) (*types.UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GuessStart not implemented")
}
func (*UnimplementedGuessServer) GuessBet(context.Context, *GuessGameBet) (*types.UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GuessBet not implemented")
}
func (*UnimplementedGuessServer) GuessStopBet(context.Context, *GuessGameStopBet) (*types.UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GuessStopBet not implemented")
}
func (*UnimplementedGuessServer) GuessAbort(context.Context, *GuessGameAbort) (*types.UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GuessAbort not implemented")
}
func (*UnimplementedGuessServer) GuessPublish(context.Context, *GuessGamePublish) (*types.UnsignTx, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GuessPublish not implemented")
}

func RegisterGuessServer(s *grpc.Server, srv GuessServer) {
	s.RegisterService(&_Guess_serviceDesc, srv)
}

func _Guess_GuessStart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GuessGameStart)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GuessServer).GuessStart(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.guess/GuessStart",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GuessServer).GuessStart(ctx, req.(*GuessGameStart))
	}
	return interceptor(ctx, in, info, handler)
}

func _Guess_GuessBet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GuessGameBet)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GuessServer).GuessBet(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.guess/GuessBet",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GuessServer).GuessBet(ctx, req.(*GuessGameBet))
	}
	return interceptor(ctx, in, info, handler)
}

func _Guess_GuessStopBet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GuessGameStopBet)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GuessServer).GuessStopBet(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.guess/GuessStopBet",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GuessServer).GuessStopBet(ctx, req.(*GuessGameStopBet))
	}
	return interceptor(ctx, in, info, handler)
}

func _Guess_GuessAbort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GuessGameAbort)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GuessServer).GuessAbort(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.guess/GuessAbort",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GuessServer).GuessAbort(ctx, req.(*GuessGameAbort))
	}
	return interceptor(ctx, in, info, handler)
}

func _Guess_GuessPublish_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GuessGamePublish)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GuessServer).GuessPublish(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.guess/GuessPublish",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GuessServer).GuessPublish(ctx, req.(*GuessGamePublish))
	}
	return interceptor(ctx, in, info, handler)
}

var _Guess_serviceDesc = grpc.ServiceDesc{
	ServiceName: "types.guess",
	HandlerType: (*GuessServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GuessStart",
			Handler:    _Guess_GuessStart_Handler,
		},
		{
			MethodName: "GuessBet",
			Handler:    _Guess_GuessBet_Handler,
		},
		{
			MethodName: "GuessStopBet",
			Handler:    _Guess_GuessStopBet_Handler,
		},
		{
			MethodName: "GuessAbort",
			Handler:    _Guess_GuessAbort_Handler,
		},
		{
			MethodName: "GuessPublish",
			Handler:    _Guess_GuessPublish_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "guess.proto",
}
